From 53973696f7e4211d9f94a2d80be98165af13bafc Mon Sep 17 00:00:00 2001 From: yuetloo Date: Thu, 1 Jun 2023 11:56:37 -0400 Subject: [PATCH 001/338] temporary checkin --- contracts/contracts/AnyOldERC20Token.sol | 3 +- contracts/contracts/ClrFund.sol | 114 ++++++++++---- contracts/contracts/ClrFundDeployer.sol | 56 +++++-- contracts/contracts/FundingRound.sol | 145 +++++++----------- contracts/contracts/MACIFactory.sol | 140 ++--------------- .../contracts/MessageAqFactoryDeployer.sol | 21 +++ contracts/contracts/OwnableUpgradeable.sol | 2 +- contracts/contracts/PollFactoryDeployer.sol | 23 +++ contracts/contracts/TopupCreditDeployer.sol | 24 +++ contracts/contracts/VkRegistryDeployer.sol | 24 +++ .../BaseRecipientRegistry.sol | 2 +- .../recipientRegistry/IKlerosGTCR.sol | 2 +- .../recipientRegistry/IRecipientRegistry.sol | 2 +- .../recipientRegistry/KlerosGTCRAdapter.sol | 3 +- .../recipientRegistry/KlerosGTCRMock.sol | 4 +- .../OptimisticRecipientRegistry.sol | 7 +- .../PermissionedRecipientRegistry.sol | 7 +- .../SimpleRecipientRegistry.sol | 3 +- .../userRegistry/BrightIdSponsor.sol | 2 +- .../userRegistry/BrightIdUserRegistry.sol | 4 +- .../contracts/userRegistry/IUserRegistry.sol | 2 +- .../userRegistry/SimpleUserRegistry.sol | 2 +- contracts/hardhat.config.ts | 23 ++- contracts/package.json | 7 +- 24 files changed, 329 insertions(+), 293 deletions(-) create mode 100644 contracts/contracts/MessageAqFactoryDeployer.sol create mode 100644 contracts/contracts/PollFactoryDeployer.sol create mode 100644 contracts/contracts/TopupCreditDeployer.sol create mode 100644 contracts/contracts/VkRegistryDeployer.sol diff --git a/contracts/contracts/AnyOldERC20Token.sol b/contracts/contracts/AnyOldERC20Token.sol index cbc6e058c..3d88c9508 100644 --- a/contracts/contracts/AnyOldERC20Token.sol +++ b/contracts/contracts/AnyOldERC20Token.sol @@ -1,12 +1,11 @@ // SPDX-License-Identifier: GPL-3.0 -pragma solidity ^0.6.12; +pragma solidity ^0.8.10; import '@openzeppelin/contracts/token/ERC20/ERC20.sol'; contract AnyOldERC20Token is ERC20 { constructor(uint256 initialSupply) - public ERC20('Any old ERC20 token', 'AOE') { _mint(msg.sender, initialSupply); diff --git a/contracts/contracts/ClrFund.sol b/contracts/contracts/ClrFund.sol index 07604f387..7221f1d10 100644 --- a/contracts/contracts/ClrFund.sol +++ b/contracts/contracts/ClrFund.sol @@ -1,26 +1,27 @@ // SPDX-License-Identifier: GPL-3.0 -pragma solidity ^0.6.12; -pragma experimental ABIEncoderV2; +pragma solidity ^0.8.10; -import '@openzeppelin/contracts/token/ERC20/ERC20.sol'; -import '@openzeppelin/contracts/token/ERC20/SafeERC20.sol'; -import '@openzeppelin/contracts/utils/EnumerableSet.sol'; +import {ERC20} from '@openzeppelin/contracts/token/ERC20/ERC20.sol'; +import {SafeERC20} from '@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol'; +import {EnumerableSet} from '@openzeppelin/contracts/utils/structs/EnumerableSet.sol'; // Import ownable from OpenZeppelin contracts -import 'maci-contracts/sol/MACI.sol'; -import 'maci-contracts/sol/MACISharedObjs.sol'; -import 'maci-contracts/sol/gatekeepers/SignUpGatekeeper.sol'; -import 'maci-contracts/sol/initialVoiceCreditProxy/InitialVoiceCreditProxy.sol'; +import {MACI} from 'maci-contracts/contracts/MACI.sol'; +import {SignUpGatekeeper} from 'maci-contracts/contracts/gatekeepers/SignUpGatekeeper.sol'; +import {InitialVoiceCreditProxy} from 'maci-contracts/contracts/initialVoiceCreditProxy/InitialVoiceCreditProxy.sol'; +import {VkRegistry} from "maci-contracts/contracts/VkRegistry.sol"; +import {TopupCredit} from "maci-contracts/contracts/TopupCredit.sol"; +import {Params} from 'maci-contracts/contracts/Params.sol'; import './userRegistry/IUserRegistry.sol'; import './recipientRegistry/IRecipientRegistry.sol'; import './MACIFactory.sol'; import './FundingRound.sol'; -import './OwnableUpgradeable.sol'; +import "./OwnableUpgradeable.sol"; -contract ClrFund is OwnableUpgradeable, MACISharedObjs { +contract ClrFund is OwnableUpgradeable, DomainObjs, Params, SignUpGatekeeper, InitialVoiceCreditProxy { using EnumerableSet for EnumerableSet.AddressSet; using SafeERC20 for ERC20; @@ -28,13 +29,15 @@ contract ClrFund is OwnableUpgradeable, MACISharedObjs { address public coordinator; ERC20 public nativeToken; - MACIFactory public maciFactory; + MACI public maci; + IUserRegistry public userRegistry; IRecipientRegistry public recipientRegistry; PubKey public coordinatorPubKey; EnumerableSet.AddressSet private fundingSources; FundingRound[] private rounds; + mapping(address => bool) public contributors; // Events event FundingSourceAdded(address _source); @@ -45,12 +48,16 @@ contract ClrFund is OwnableUpgradeable, MACISharedObjs { event CoordinatorChanged(address _coordinator); function init( - MACIFactory _maciFactory + MACI _maci, + VkRegistry vkRegistry, + MessageAqFactory messageAqFactory, + TopupCredit topupCredit ) external { __Ownable_init(); - maciFactory = _maciFactory; + maci = _maci; + maci.init(vkRegistry, messageAqFactory, topupCredit); } /** @@ -67,13 +74,13 @@ contract ClrFund is OwnableUpgradeable, MACISharedObjs { /** * @dev Set recipient registry. * @param _recipientRegistry Address of a recipient registry. + * @param maxVoteOptions Maximum number of recipients to accept */ - function setRecipientRegistry(IRecipientRegistry _recipientRegistry) + function setRecipientRegistry(IRecipientRegistry _recipientRegistry, uint256 maxVoteOptions) external onlyOwner { recipientRegistry = _recipientRegistry; - (,, uint256 maxVoteOptions) = maciFactory.maxValues(); recipientRegistry.setMaxRecipients(maxVoteOptions); } @@ -114,6 +121,7 @@ contract ClrFund is OwnableUpgradeable, MACISharedObjs { return rounds[rounds.length - 1]; } +/* TODO - init vkRegistry here.. function setMaciParameters( uint8 _stateTreeDepth, uint8 _messageTreeDepth, @@ -140,15 +148,21 @@ contract ClrFund is OwnableUpgradeable, MACISharedObjs { _votingDuration ); } +*/ /** * @dev Deploy new funding round. */ - function deployNewRound() + function deployNewRound( + uint256 maxVoteOptions, + uint256 duration, + MaxValues memory maxValues, + TreeDepths memory treeDepths + ) external onlyOwner { - require(maciFactory.owner() == address(this), 'Factory: MACI factory is not owned by FR factory'); + require(address(maci) != address(0), 'Factory: MACI not deployed'); require(address(userRegistry) != address(0), 'Factory: User registry is not set'); require(address(recipientRegistry) != address(0), 'Factory: Recipient registry is not set'); require(address(nativeToken) != address(0), 'Factory: Native token is not set'); @@ -159,9 +173,18 @@ contract ClrFund is OwnableUpgradeable, MACISharedObjs { 'Factory: Current round is not finalized' ); // Make sure that the max number of recipients is set correctly - (,, uint256 maxVoteOptions) = maciFactory.maxValues(); recipientRegistry.setMaxRecipients(maxVoteOptions); - // Deploy funding round and MACI contracts + + // deploy a new poll in MACI + // TODO set the poll later after retrieving the address from the event + maci.deployPoll( + duration, + maxValues, + treeDepths, + coordinatorPubKey + ); + + // Deploy funding round FundingRound newRound = new FundingRound( nativeToken, userRegistry, @@ -169,13 +192,6 @@ contract ClrFund is OwnableUpgradeable, MACISharedObjs { coordinator ); rounds.push(newRound); - MACI maci = maciFactory.deployMaci( - SignUpGatekeeper(newRound), - InitialVoiceCreditProxy(newRound), - coordinator, - coordinatorPubKey - ); - newRound.setMaci(maci); emit RoundStarted(address(newRound)); } @@ -251,7 +267,7 @@ contract ClrFund is OwnableUpgradeable, MACISharedObjs { * @param _token Address of the token contract. */ function setToken(address _token) - external + internal onlyOwner { nativeToken = ERC20(_token); @@ -295,4 +311,46 @@ contract ClrFund is OwnableUpgradeable, MACISharedObjs { require(msg.sender == coordinator, 'Factory: Sender is not the coordinator'); _; } + + /** + * @dev Register user for voting. + * This function is part of SignUpGatekeeper interface. + * @param _data Encoded address of a contributor. + */ + function register( + address /* _caller */, + bytes memory _data + ) + public + override + { + require(address(userRegistry) != address(0), 'FundingRound: User registry not deployed'); + require(msg.sender == address(maci), 'FundingRound: Only MACI contract can register voters'); + address user = abi.decode(_data, (address)); + bool verified = userRegistry.isVerifiedUser(user); + require(verified, 'FundingRound: User has not been verified'); + require(!contributors[user], 'FundingRound: User already registered'); + contributors[user] = true; + // maci.signup(); + } + + /** + * @dev Get the amount of voice credits for a given address. + * This function is a part of the InitialVoiceCreditProxy interface. + * + */ + function getVoiceCredits( + address /* _caller */, + bytes memory /* _data // Encoded address of contributor */ + ) + public + override + pure + returns (uint256) + { + // always zero as users do not contribute on signup. + // They only contribute during a funding round when they are ready to vote, + // via the MACI topup function + return 0; + } } diff --git a/contracts/contracts/ClrFundDeployer.sol b/contracts/contracts/ClrFundDeployer.sol index 4c93617bc..94f78022c 100644 --- a/contracts/contracts/ClrFundDeployer.sol +++ b/contracts/contracts/ClrFundDeployer.sol @@ -1,3 +1,5 @@ +// SPDX-License-Identifier: GPL-3.0 + /* The MIT License (MIT) Copyright (c) 2018 Murray Software, LLC. @@ -19,9 +21,16 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -pragma solidity ^0.6.12; +pragma solidity ^0.8.10; import './MACIFactory.sol'; +import './PollFactoryDeployer.sol'; +import './VkRegistryDeployer.sol'; +import './TopupCreditDeployer.sol'; +import './MessageAqFactoryDeployer.sol'; import './ClrFund.sol'; +import {MessageAqFactory, PollFactory} from 'maci-contracts/contracts/Poll.sol'; +import {SignUpGatekeeper} from 'maci-contracts/contracts/gatekeepers/SignUpGatekeeper.sol'; +import {InitialVoiceCreditProxy} from 'maci-contracts/contracts/initialVoiceCreditProxy/InitialVoiceCreditProxy.sol'; contract CloneFactory { // implementation of eip-1167 - see https://eips.ethereum.org/EIPS/eip-1167 function createClone(address target) internal returns (address result) { @@ -36,29 +45,45 @@ contract CloneFactory { // implementation of eip-1167 - see https://eips.ethereu } } -contract ClrFundDeployer is CloneFactory { +contract ClrFundParams { + struct Templates { + address clrfund; + address pollFactory; + } +} + +contract ClrFundDeployer is CloneFactory, ClrFundParams { address public template; mapping (address => bool) public clrfunds; uint clrId = 0; ClrFund private clrfund; // funding factory contract - constructor(address _template) public { + constructor(address _template) { template = _template; } event NewInstance(address indexed clrfund); event Register(address indexed clrfund, string metadata); - function deployFund( - MACIFactory _maciFactory + function deployClrFund( + MACIFactory _maciFactory, + PollFactoryDeployer _pollFactoryDeployer, + VkRegistryDeployer _vkRegistryDeployer, + TopupCreditDeployer _topupCreditDeployer, + MessageAqFactoryDeployer _messageAqFactoryDeployer ) public returns (address) { - ClrFund clrfund = ClrFund(createClone(template)); - - clrfund.init( - _maciFactory - ); - + + clrfund = ClrFund(createClone(template)); + + PollFactory pollFactory = _pollFactoryDeployer.deploy(address(clrfund)); + VkRegistry vkRegistry = _vkRegistryDeployer.deploy(address(clrfund)); + TopupCredit topupCredit = _topupCreditDeployer.deploy(address(clrfund)); + MessageAqFactory messageAqFactory = _messageAqFactoryDeployer.deploy(address(clrfund)); + + MACI maci = _maciFactory.deployMaci(pollFactory, clrfund, clrfund); + clrfund.init(maci, vkRegistry, messageAqFactory, topupCredit); + emit NewInstance(address(clrfund)); return address(clrfund); @@ -68,17 +93,16 @@ contract ClrFundDeployer is CloneFactory { address _clrFundAddress, string memory _metadata ) public returns (bool) { - + clrfund = ClrFund(_clrFundAddress); - + require(clrfunds[_clrFundAddress] == false, 'ClrFund: metadata already registered'); clrfunds[_clrFundAddress] = true; - + clrId = clrId + 1; emit Register(_clrFundAddress, _metadata); return true; - } -} \ No newline at end of file +} diff --git a/contracts/contracts/FundingRound.sol b/contracts/contracts/FundingRound.sol index 1b3370533..509224b7e 100644 --- a/contracts/contracts/FundingRound.sol +++ b/contracts/contracts/FundingRound.sol @@ -1,22 +1,22 @@ // SPDX-License-Identifier: GPL-3.0 -pragma solidity ^0.6.12; -pragma experimental ABIEncoderV2; +pragma solidity ^0.8.10; import '@openzeppelin/contracts/access/Ownable.sol'; import '@openzeppelin/contracts/token/ERC20/ERC20.sol'; -import '@openzeppelin/contracts/token/ERC20/SafeERC20.sol'; +import '@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol'; -import 'maci-contracts/sol/MACI.sol'; -import 'maci-contracts/sol/MACISharedObjs.sol'; -import 'maci-contracts/sol/gatekeepers/SignUpGatekeeper.sol'; -import 'maci-contracts/sol/initialVoiceCreditProxy/InitialVoiceCreditProxy.sol'; +import {DomainObjs} from 'maci-contracts/contracts/DomainObjs.sol'; +import 'maci-contracts/contracts/MACI.sol'; +import 'maci-contracts/contracts/gatekeepers/SignUpGatekeeper.sol'; +import 'maci-contracts/contracts/initialVoiceCreditProxy/InitialVoiceCreditProxy.sol'; import './userRegistry/IUserRegistry.sol'; import './recipientRegistry/IRecipientRegistry.sol'; -contract FundingRound is Ownable, MACISharedObjs, SignUpGatekeeper, InitialVoiceCreditProxy { +contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, DomainObjs { using SafeERC20 for ERC20; + error VOTING_PERIOD_NOT_PASSED(); // Constants uint256 private constant MAX_VOICE_CREDITS = 10 ** 9; // MACI allows 2 ** 32 voice credits max @@ -27,7 +27,6 @@ contract FundingRound is Ownable, MACISharedObjs, SignUpGatekeeper, InitialVoice // Structs struct ContributorStatus { uint256 voiceCredits; - bool isRegistered; } struct RecipientStatus { @@ -48,8 +47,8 @@ contract FundingRound is Ownable, MACISharedObjs, SignUpGatekeeper, InitialVoice bool public isFinalized = false; bool public isCancelled = false; + Poll public poll; address public coordinator; - MACI public maci; ERC20 public nativeToken; IUserRegistry public userRegistry; IRecipientRegistry public recipientRegistry; @@ -90,7 +89,6 @@ contract FundingRound is Ownable, MACISharedObjs, SignUpGatekeeper, InitialVoice IRecipientRegistry _recipientRegistry, address _coordinator ) - public { nativeToken = _nativeToken; voiceCreditFactor = (MAX_CONTRIBUTION_AMOUNT * uint256(10) ** nativeToken.decimals()) / MAX_VOICE_CREDITS; @@ -101,93 +99,60 @@ contract FundingRound is Ownable, MACISharedObjs, SignUpGatekeeper, InitialVoice } /** - * @dev Link MACI instance to this funding round. + * @dev Have the votes been tallied + */ + function isTallied() internal view returns (bool) { + return poll.stateAqMerged(); + } + + function votingPeriodOver() internal view { + (uint256 deployTime, uint256 duration) = poll + .getDeployTimeAndDuration(); + // Require that the voting period is over + uint256 secondsPassed = block.timestamp - deployTime; + if (secondsPassed <= duration ) { + revert VOTING_PERIOD_NOT_PASSED(); + } + } + + /** + * @dev Set MACI poll. + * @param _poll Address of MACI poll. */ - function setMaci( - MACI _maci - ) + function setPoll(Poll _poll) external - onlyOwner + onlyCoordinator { - require(address(maci) == address(0), 'FundingRound: Already linked to MACI instance'); - require( - _maci.calcSignUpDeadline() > block.timestamp, - 'FundingRound: Signup deadline must be in the future' - ); - maci = _maci; + require(address(_poll) != address(0), 'FundingRound: Invalid poll'); + require(address(poll) == address(0), 'FundingRound: Poll was already set'); + poll = _poll; } + /** * @dev Contribute tokens to this funding round. * @param pubKey Contributor's public key. * @param amount Contribution amount. */ function contribute( + uint256 contributorIndex, PubKey calldata pubKey, uint256 amount ) external { - require(address(maci) != address(0), 'FundingRound: MACI not deployed'); - require(contributorCount < maci.maxUsers(), 'FundingRound: Contributor limit reached'); - require(block.timestamp < maci.calcSignUpDeadline(), 'FundingRound: Contribution period ended'); + require(address(poll) != address(0), 'FundingRound: Poll not deployed'); require(!isFinalized, 'FundingRound: Round finalized'); require(amount > 0, 'FundingRound: Contribution amount must be greater than zero'); require(amount <= MAX_VOICE_CREDITS * voiceCreditFactor, 'FundingRound: Contribution amount is too large'); - require(contributors[msg.sender].voiceCredits == 0, 'FundingRound: Already contributed'); uint256 voiceCredits = amount / voiceCreditFactor; - contributors[msg.sender] = ContributorStatus(voiceCredits, false); + uint256 currentVoiceCredits = contributors[msg.sender].voiceCredits; + contributors[msg.sender] = ContributorStatus(voiceCredits + currentVoiceCredits); contributorCount += 1; - bytes memory signUpGatekeeperData = abi.encode(msg.sender, voiceCredits); - bytes memory initialVoiceCreditProxyData = abi.encode(msg.sender); nativeToken.safeTransferFrom(msg.sender, address(this), amount); - maci.signUp( - pubKey, - signUpGatekeeperData, - initialVoiceCreditProxyData - ); - emit Contribution(msg.sender, amount); - } - /** - * @dev Register user for voting. - * This function is part of SignUpGatekeeper interface. - * @param _data Encoded address of a contributor. - */ - function register( - address /* _caller */, - bytes memory _data - ) - override - public - { - require(msg.sender == address(maci), 'FundingRound: Only MACI contract can register voters'); - address user = abi.decode(_data, (address)); - bool verified = userRegistry.isVerifiedUser(user); - require(verified, 'FundingRound: User has not been verified'); - require(contributors[user].voiceCredits > 0, 'FundingRound: User has not contributed'); - require(!contributors[user].isRegistered, 'FundingRound: User already registered'); - contributors[user].isRegistered = true; - } - - /** - * @dev Get the amount of voice credits for a given address. - * This function is a part of the InitialVoiceCreditProxy interface. - * @param _data Encoded address of a user. - */ - function getVoiceCredits( - address /* _caller */, - bytes memory _data - ) - override - public - view - returns (uint256) - { - address user = abi.decode(_data, (address)); - uint256 initialVoiceCredits = contributors[user].voiceCredits; - require(initialVoiceCredits > 0, 'FundingRound: User does not have any voice credits'); - return initialVoiceCredits; + poll.topup(contributorIndex, voiceCredits); + emit Contribution(msg.sender, amount); } /** @@ -201,7 +166,7 @@ contract FundingRound is Ownable, MACISharedObjs, SignUpGatekeeper, InitialVoice { uint256 batchSize = _messages.length; for (uint8 i = 0; i < batchSize; i++) { - maci.publishMessage(_messages[i], _encPubKeys[i]); + poll.publishMessage(_messages[i], _encPubKeys[i]); } emit Voted(msg.sender); } @@ -301,21 +266,23 @@ contract FundingRound is Ownable, MACISharedObjs, SignUpGatekeeper, InitialVoice onlyOwner { require(!isFinalized, 'FundingRound: Already finalized'); - require(address(maci) != address(0), 'FundingRound: MACI not deployed'); - require(maci.calcVotingDeadline() < block.timestamp, 'FundingRound: Voting has not been finished'); - require(!maci.hasUntalliedStateLeaves(), 'FundingRound: Votes has not been tallied'); + require(address(poll) != address(0), 'FundingRound: MACI not deployed'); + votingPeriodOver(); + require(isTallied(), 'FundingRound: Votes has not been tallied'); require(bytes(tallyHash).length != 0, 'FundingRound: Tally hash has not been published'); // make sure we have received all the tally results - (,, uint8 voteOptionTreeDepth) = maci.treeDepths(); + (,,, uint8 voteOptionTreeDepth) = poll.treeDepths(); uint256 totalResults = uint256(LEAVES_PER_NODE) ** uint256(voteOptionTreeDepth); require(totalTallyResults == totalResults, 'FundingRound: Incomplete tally results'); +/* TODO fix this totalVotes = maci.totalVotes(); // If nobody voted, the round should be cancelled to avoid locking of matching funds require(totalVotes > 0, 'FundingRound: No votes'); bool verified = maci.verifySpentVoiceCredits(_totalSpent, _totalSpentSalt); require(verified, 'FundingRound: Incorrect total amount of spent voice credits'); + */ totalSpent = _totalSpent; // Total amount of spent voice credits is the size of the pool of direct rewards. // Everything else, including unspent voice credits and downscaling error, @@ -381,22 +348,24 @@ contract FundingRound is Ownable, MACISharedObjs, SignUpGatekeeper, InitialVoice { // create scope to avoid 'stack too deep' error - (,, uint8 voteOptionTreeDepth) = maci.treeDepths(); - bool spentVerified = maci.verifyPerVOSpentVoiceCredits( + (,,, uint8 voteOptionTreeDepth) = poll.treeDepths(); + /* TODO fix this + bool spentVerified = tally.computeMerkleRootFromPath( voteOptionTreeDepth, _voteOptionIndex, _spent, - _spentProof, - _spentSalt + _spentProof ); + */ + bool spentVerified = true; require(spentVerified, 'FundingRound: Incorrect amount of spent voice credits'); } - uint256 startTime = maci.signUpTimestamp(); + (uint256 startTime, uint256 duration) = poll.getDeployTimeAndDuration(); address recipient = recipientRegistry.getRecipientAddress( _voteOptionIndex, startTime, - startTime + maci.signUpDurationSeconds() + maci.votingDurationSeconds() + startTime + duration ); if (recipient == address(0)) { // Send funds back to the matching pool @@ -428,6 +397,7 @@ contract FundingRound is Ownable, MACISharedObjs, SignUpGatekeeper, InitialVoice RecipientStatus storage recipient = recipients[_voteOptionIndex]; require(!recipient.tallyVerified, 'FundingRound: Vote results already verified'); +/* TODO fix this bool resultVerified = maci.verifyTallyResult( _voteOptionTreeDepth, _voteOptionIndex, @@ -436,6 +406,7 @@ contract FundingRound is Ownable, MACISharedObjs, SignUpGatekeeper, InitialVoice _tallyResultSalt ); require(resultVerified, 'FundingRound: Incorrect tally result'); +*/ recipient.tallyVerified = true; recipient.tallyResult = _tallyResult; @@ -462,7 +433,7 @@ contract FundingRound is Ownable, MACISharedObjs, SignUpGatekeeper, InitialVoice external onlyCoordinator { - require(!maci.hasUntalliedStateLeaves(), 'FundingRound: Votes have not been tallied'); + require(isTallied(), 'FundingRound: Votes have not been tallied'); require(!isFinalized, 'FundingRound: Already finalized'); for (uint256 i = 0; i < _voteOptionIndices.length; i++) { diff --git a/contracts/contracts/MACIFactory.sol b/contracts/contracts/MACIFactory.sol index 59451d1b4..ef76ceb45 100644 --- a/contracts/contracts/MACIFactory.sol +++ b/contracts/contracts/MACIFactory.sol @@ -1,146 +1,30 @@ // SPDX-License-Identifier: GPL-3.0 -pragma solidity ^0.6.12; -pragma experimental ABIEncoderV2; +pragma solidity ^0.8.10; -import '@openzeppelin/contracts/access/Ownable.sol'; -import 'maci-contracts/sol/MACI.sol'; -import 'maci-contracts/sol/MACIParameters.sol'; -import 'maci-contracts/sol/MACISharedObjs.sol'; -import 'maci-contracts/sol/gatekeepers/SignUpGatekeeper.sol'; -import 'maci-contracts/sol/initialVoiceCreditProxy/InitialVoiceCreditProxy.sol'; +import 'maci-contracts/contracts/MACI.sol'; +import {PollFactory} from 'maci-contracts/contracts/Poll.sol'; +import {SignUpGatekeeper} from 'maci-contracts/contracts/gatekeepers/SignUpGatekeeper.sol'; +import {InitialVoiceCreditProxy} from 'maci-contracts/contracts/initialVoiceCreditProxy/InitialVoiceCreditProxy.sol'; -contract MACIFactory is Ownable, MACIParameters, MACISharedObjs { - // Constants - uint256 private constant STATE_TREE_BASE = 2; - uint256 private constant MESSAGE_TREE_BASE = 2; - uint256 private constant VOTE_OPTION_TREE_BASE = 5; - - // State - TreeDepths public treeDepths; - BatchSizes public batchSizes; - MaxValues public maxValues; - SnarkVerifier public batchUstVerifier; - SnarkVerifier public qvtVerifier; - uint256 public signUpDuration; - uint256 public votingDuration; - - // Events - event MaciParametersChanged(); +contract MACIFactory { event MaciDeployed(address _maci); - constructor( - uint8 _stateTreeDepth, - uint8 _messageTreeDepth, - uint8 _voteOptionTreeDepth, - uint8 _tallyBatchSize, - uint8 _messageBatchSize, - SnarkVerifier _batchUstVerifier, - SnarkVerifier _qvtVerifier, - uint256 _signUpDuration, - uint256 _votingDuration - ) - public - { - _setMaciParameters( - _stateTreeDepth, - _messageTreeDepth, - _voteOptionTreeDepth, - _tallyBatchSize, - _messageBatchSize, - _batchUstVerifier, - _qvtVerifier, - _signUpDuration, - _votingDuration - ); - } - - function _setMaciParameters( - uint8 _stateTreeDepth, - uint8 _messageTreeDepth, - uint8 _voteOptionTreeDepth, - uint8 _tallyBatchSize, - uint8 _messageBatchSize, - SnarkVerifier _batchUstVerifier, - SnarkVerifier _qvtVerifier, - uint256 _signUpDuration, - uint256 _votingDuration - ) - internal - { - treeDepths = TreeDepths(_stateTreeDepth, _messageTreeDepth, _voteOptionTreeDepth); - batchSizes = BatchSizes(_tallyBatchSize, _messageBatchSize); - maxValues = MaxValues( - STATE_TREE_BASE ** treeDepths.stateTreeDepth - 1, - MESSAGE_TREE_BASE ** treeDepths.messageTreeDepth - 1, - VOTE_OPTION_TREE_BASE ** treeDepths.voteOptionTreeDepth - 1 - ); - batchUstVerifier = _batchUstVerifier; - qvtVerifier = _qvtVerifier; - signUpDuration = _signUpDuration; - votingDuration = _votingDuration; - } - - /** - * @dev Set MACI parameters. - */ - function setMaciParameters( - uint8 _stateTreeDepth, - uint8 _messageTreeDepth, - uint8 _voteOptionTreeDepth, - uint8 _tallyBatchSize, - uint8 _messageBatchSize, - SnarkVerifier _batchUstVerifier, - SnarkVerifier _qvtVerifier, - uint256 _signUpDuration, - uint256 _votingDuration - ) - external - onlyOwner - { - require( - _voteOptionTreeDepth >= treeDepths.voteOptionTreeDepth, - 'MACIFactory: Vote option tree depth can not be decreased' - ); - _setMaciParameters( - _stateTreeDepth, - _messageTreeDepth, - _voteOptionTreeDepth, - _tallyBatchSize, - _messageBatchSize, - _batchUstVerifier, - _qvtVerifier, - _signUpDuration, - _votingDuration - ); - emit MaciParametersChanged(); - } - /** * @dev Deploy new MACI instance. */ function deployMaci( - SignUpGatekeeper _signUpGatekeeper, - InitialVoiceCreditProxy _initialVoiceCreditProxy, - address _coordinator, - PubKey calldata _coordinatorPubKey + PollFactory pollFactory, + SignUpGatekeeper signUpGatekeeper, + InitialVoiceCreditProxy initialVoiceCreditProxy ) external - onlyOwner returns (MACI _maci) { _maci = new MACI( - treeDepths, - batchSizes, - maxValues, - _signUpGatekeeper, - batchUstVerifier, - qvtVerifier, - signUpDuration, - votingDuration, - _initialVoiceCreditProxy, - _coordinatorPubKey, - _coordinator + pollFactory, + signUpGatekeeper, + initialVoiceCreditProxy ); emit MaciDeployed(address(_maci)); } diff --git a/contracts/contracts/MessageAqFactoryDeployer.sol b/contracts/contracts/MessageAqFactoryDeployer.sol new file mode 100644 index 000000000..fdea45eed --- /dev/null +++ b/contracts/contracts/MessageAqFactoryDeployer.sol @@ -0,0 +1,21 @@ +// SPDX-License-Identifier: GPL-3.0 + +pragma solidity ^0.8.10; + +import {MessageAqFactory} from 'maci-contracts/contracts/Poll.sol'; + +contract MessageAqFactoryDeployer { + event MessageAqFactoryDeployed(address _messageAqFactory); + + /** + * @dev Deploy new MessageAqFactory instance. + */ + function deploy(address owner) + external + returns (MessageAqFactory _messageAqFactory) + { + _messageAqFactory = new MessageAqFactory(); + _messageAqFactory.transferOwnership(owner); + emit MessageAqFactoryDeployed(address(_messageAqFactory)); + } +} diff --git a/contracts/contracts/OwnableUpgradeable.sol b/contracts/contracts/OwnableUpgradeable.sol index 5c120db56..63d587c3a 100644 --- a/contracts/contracts/OwnableUpgradeable.sol +++ b/contracts/contracts/OwnableUpgradeable.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.6.12; +pragma solidity ^0.8.10; // NOTE: had to copy contracts over since OZ uses a higher pragma than we do in the one's they maintain. diff --git a/contracts/contracts/PollFactoryDeployer.sol b/contracts/contracts/PollFactoryDeployer.sol new file mode 100644 index 000000000..52c56bbea --- /dev/null +++ b/contracts/contracts/PollFactoryDeployer.sol @@ -0,0 +1,23 @@ +// SPDX-License-Identifier: GPL-3.0 + +pragma solidity ^0.8.10; + +import {PollFactory} from 'maci-contracts/contracts/Poll.sol'; + +contract PollFactoryDeployer { + event PollFactoryDeployed(address _pollFactory); + + /** + * @dev Deploy new PollFactory instance. + * @param owner Address of the owner for the new PollFactory instance + */ + function deploy(address owner) + external + returns (PollFactory _pollFactory) + { + _pollFactory = new PollFactory(); + _pollFactory.transferOwnership(owner); + + emit PollFactoryDeployed(address(_pollFactory)); + } +} diff --git a/contracts/contracts/TopupCreditDeployer.sol b/contracts/contracts/TopupCreditDeployer.sol new file mode 100644 index 000000000..c07c4707b --- /dev/null +++ b/contracts/contracts/TopupCreditDeployer.sol @@ -0,0 +1,24 @@ +// SPDX-License-Identifier: GPL-3.0 + +pragma solidity ^0.8.10; + +import 'maci-contracts/contracts/TopupCredit.sol'; + +contract TopupCreditDeployer { + event TopupCreditDeployed(address _topupCredit); + + /** + * @dev Deploy new TopupCredit instance. + */ + function deploy(address owner) + external + returns (TopupCredit _topupCredit) + { + require(owner != address(0), 'Invalid owner'); + + _topupCredit = new TopupCredit(); + _topupCredit.transferOwnership(owner); + + emit TopupCreditDeployed(address(_topupCredit)); + } +} diff --git a/contracts/contracts/VkRegistryDeployer.sol b/contracts/contracts/VkRegistryDeployer.sol new file mode 100644 index 000000000..7c3bac9b4 --- /dev/null +++ b/contracts/contracts/VkRegistryDeployer.sol @@ -0,0 +1,24 @@ +// SPDX-License-Identifier: GPL-3.0 + +pragma solidity ^0.8.10; + +import 'maci-contracts/contracts/VkRegistry.sol'; + +contract VkRegistryDeployer { + event VkRegistryDeployed(address _vkRegistry); + + /** + * @dev Deploy new VkRegistry instance. + */ + function deploy(address owner) + external + returns (VkRegistry _registry) + { + require(owner != address(0), 'Invalid owner'); + + _registry = new VkRegistry(); + _registry.transferOwnership(owner); + + emit VkRegistryDeployed(address(_registry)); + } +} diff --git a/contracts/contracts/recipientRegistry/BaseRecipientRegistry.sol b/contracts/contracts/recipientRegistry/BaseRecipientRegistry.sol index dcf66048e..9c462b728 100644 --- a/contracts/contracts/recipientRegistry/BaseRecipientRegistry.sol +++ b/contracts/contracts/recipientRegistry/BaseRecipientRegistry.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-3.0 -pragma solidity 0.6.12; +pragma solidity ^0.8.10; import './IRecipientRegistry.sol'; diff --git a/contracts/contracts/recipientRegistry/IKlerosGTCR.sol b/contracts/contracts/recipientRegistry/IKlerosGTCR.sol index 68ab08acc..6eda6f7cb 100644 --- a/contracts/contracts/recipientRegistry/IKlerosGTCR.sol +++ b/contracts/contracts/recipientRegistry/IKlerosGTCR.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-3.0 -pragma solidity ^0.6.12; +pragma solidity ^0.8.10; /** * @dev Interface for Kleros Generalized TCR. diff --git a/contracts/contracts/recipientRegistry/IRecipientRegistry.sol b/contracts/contracts/recipientRegistry/IRecipientRegistry.sol index 1ccea8561..3f139948e 100644 --- a/contracts/contracts/recipientRegistry/IRecipientRegistry.sol +++ b/contracts/contracts/recipientRegistry/IRecipientRegistry.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-3.0 -pragma solidity ^0.6.12; +pragma solidity ^0.8.10; /** * @dev Interface of the recipient registry. diff --git a/contracts/contracts/recipientRegistry/KlerosGTCRAdapter.sol b/contracts/contracts/recipientRegistry/KlerosGTCRAdapter.sol index 344b981ef..2bf70bd6d 100644 --- a/contracts/contracts/recipientRegistry/KlerosGTCRAdapter.sol +++ b/contracts/contracts/recipientRegistry/KlerosGTCRAdapter.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-3.0 -pragma solidity ^0.6.12; +pragma solidity ^0.8.10; import 'solidity-rlp/contracts/RLPReader.sol'; @@ -43,7 +43,6 @@ contract KlerosGTCRAdapter is BaseRecipientRegistry { IKlerosGTCR _tcr, address _controller ) - public { tcr = _tcr; controller = _controller; diff --git a/contracts/contracts/recipientRegistry/KlerosGTCRMock.sol b/contracts/contracts/recipientRegistry/KlerosGTCRMock.sol index 88505c3c6..abbc9bd16 100644 --- a/contracts/contracts/recipientRegistry/KlerosGTCRMock.sol +++ b/contracts/contracts/recipientRegistry/KlerosGTCRMock.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.6.12; +pragma solidity ^0.8.10; import '@openzeppelin/contracts/access/Ownable.sol'; @@ -77,7 +77,7 @@ contract KlerosGTCRMock is Ownable { constructor( string memory _registrationMetaEvidence, string memory _clearingMetaEvidence - ) public { + ) { emit MetaEvidence(0, _registrationMetaEvidence); emit MetaEvidence(1, _clearingMetaEvidence); } diff --git a/contracts/contracts/recipientRegistry/OptimisticRecipientRegistry.sol b/contracts/contracts/recipientRegistry/OptimisticRecipientRegistry.sol index 9b479ebf3..9f6b5bfed 100644 --- a/contracts/contracts/recipientRegistry/OptimisticRecipientRegistry.sol +++ b/contracts/contracts/recipientRegistry/OptimisticRecipientRegistry.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-3.0 -pragma solidity 0.6.12; +pragma solidity ^0.8.10; import '@openzeppelin/contracts/access/Ownable.sol'; @@ -59,7 +59,6 @@ contract OptimisticRecipientRegistry is Ownable, BaseRecipientRegistry { uint256 _challengePeriodDuration, address _controller ) - public { baseDeposit = _baseDeposit; challengePeriodDuration = _challengePeriodDuration; @@ -103,7 +102,7 @@ contract OptimisticRecipientRegistry is Ownable, BaseRecipientRegistry { require(msg.value == baseDeposit, 'RecipientRegistry: Incorrect deposit amount'); requests[recipientId] = Request( RequestType.Registration, - msg.sender, + payable(msg.sender), block.timestamp, msg.value, _recipient, @@ -132,7 +131,7 @@ contract OptimisticRecipientRegistry is Ownable, BaseRecipientRegistry { require(msg.value == baseDeposit, 'RecipientRegistry: Incorrect deposit amount'); requests[_recipientId] = Request( RequestType.Removal, - msg.sender, + payable(msg.sender), block.timestamp, msg.value, address(0), diff --git a/contracts/contracts/recipientRegistry/PermissionedRecipientRegistry.sol b/contracts/contracts/recipientRegistry/PermissionedRecipientRegistry.sol index 02265f2d5..4ab64a735 100644 --- a/contracts/contracts/recipientRegistry/PermissionedRecipientRegistry.sol +++ b/contracts/contracts/recipientRegistry/PermissionedRecipientRegistry.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-3.0 -pragma solidity 0.6.12; +pragma solidity ^0.8.10; import '@openzeppelin/contracts/access/Ownable.sol'; @@ -59,7 +59,6 @@ contract PermissionedRecipientRegistry is Ownable, BaseRecipientRegistry { uint256 _challengePeriodDuration, address _controller ) - public { baseDeposit = _baseDeposit; challengePeriodDuration = _challengePeriodDuration; @@ -103,7 +102,7 @@ contract PermissionedRecipientRegistry is Ownable, BaseRecipientRegistry { require(msg.value == baseDeposit, 'RecipientRegistry: Incorrect deposit amount'); requests[recipientId] = Request( RequestType.Registration, - msg.sender, + payable(msg.sender), block.timestamp, msg.value, _recipient, @@ -132,7 +131,7 @@ contract PermissionedRecipientRegistry is Ownable, BaseRecipientRegistry { require(msg.value == baseDeposit, 'RecipientRegistry: Incorrect deposit amount'); requests[_recipientId] = Request( RequestType.Removal, - msg.sender, + payable(msg.sender), block.timestamp, msg.value, address(0), diff --git a/contracts/contracts/recipientRegistry/SimpleRecipientRegistry.sol b/contracts/contracts/recipientRegistry/SimpleRecipientRegistry.sol index 9f37215e8..881f54dea 100644 --- a/contracts/contracts/recipientRegistry/SimpleRecipientRegistry.sol +++ b/contracts/contracts/recipientRegistry/SimpleRecipientRegistry.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-3.0 -pragma solidity ^0.6.12; +pragma solidity ^0.8.10; import '@openzeppelin/contracts/access/Ownable.sol'; @@ -31,7 +31,6 @@ contract SimpleRecipientRegistry is Ownable, BaseRecipientRegistry { constructor( address _controller ) - public { controller = _controller; } diff --git a/contracts/contracts/userRegistry/BrightIdSponsor.sol b/contracts/contracts/userRegistry/BrightIdSponsor.sol index 312e1e7b4..302a80b13 100644 --- a/contracts/contracts/userRegistry/BrightIdSponsor.sol +++ b/contracts/contracts/userRegistry/BrightIdSponsor.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-3.0 -pragma solidity ^0.6.12; +pragma solidity ^0.8.10; contract BrightIdSponsor { event Sponsor(address indexed addr); diff --git a/contracts/contracts/userRegistry/BrightIdUserRegistry.sol b/contracts/contracts/userRegistry/BrightIdUserRegistry.sol index e47bfd059..09557af3a 100644 --- a/contracts/contracts/userRegistry/BrightIdUserRegistry.sol +++ b/contracts/contracts/userRegistry/BrightIdUserRegistry.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-3.0 -pragma solidity ^0.6.12; +pragma solidity ^0.8.10; import './IUserRegistry.sol'; import './BrightIdSponsor.sol'; @@ -32,7 +32,7 @@ contract BrightIdUserRegistry is Ownable, IUserRegistry { * @param _verifier BrightID verifier address that signs BrightID verifications * @param _sponsor Contract address that emits BrightID sponsor event */ - constructor(bytes32 _context, address _verifier, address _sponsor) public { + constructor(bytes32 _context, address _verifier, address _sponsor) { // ecrecover returns zero on error require(_verifier != address(0), ERROR_INVALID_VERIFIER); require(_sponsor != address(0), ERROR_INVALID_SPONSOR); diff --git a/contracts/contracts/userRegistry/IUserRegistry.sol b/contracts/contracts/userRegistry/IUserRegistry.sol index 14b56c7ad..cce90ae42 100644 --- a/contracts/contracts/userRegistry/IUserRegistry.sol +++ b/contracts/contracts/userRegistry/IUserRegistry.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-3.0 -pragma solidity ^0.6.12; +pragma solidity ^0.8.10; /** * @dev Interface of the registry of verified users. diff --git a/contracts/contracts/userRegistry/SimpleUserRegistry.sol b/contracts/contracts/userRegistry/SimpleUserRegistry.sol index 5e4520650..4f4a7ff00 100644 --- a/contracts/contracts/userRegistry/SimpleUserRegistry.sol +++ b/contracts/contracts/userRegistry/SimpleUserRegistry.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-3.0 -pragma solidity ^0.6.12; +pragma solidity ^0.8.10; import '@openzeppelin/contracts/access/Ownable.sol'; diff --git a/contracts/hardhat.config.ts b/contracts/hardhat.config.ts index e9b5b931e..b25d4ed08 100644 --- a/contracts/hardhat.config.ts +++ b/contracts/hardhat.config.ts @@ -2,7 +2,8 @@ import fs from 'fs' import path from 'path' import dotenv from 'dotenv' -import { HardhatUserConfig, task } from 'hardhat/config' +import { TASK_COMPILE_SOLIDITY_GET_SOURCE_PATHS } from 'hardhat/builtin-tasks/task-names' +import { HardhatUserConfig, subtask, task } from 'hardhat/config' import '@nomiclabs/hardhat-waffle' import '@nomiclabs/hardhat-ganache' import 'hardhat-contract-sizer' @@ -81,7 +82,7 @@ const config: HardhatUserConfig = { disambiguatePaths: false, }, solidity: { - version: '0.6.12', + version: '0.8.10', settings: { optimizer: { enabled: true, @@ -156,18 +157,30 @@ const config: HardhatUserConfig = { }, } +// filter out files that we don't want to compile +subtask(TASK_COMPILE_SOLIDITY_GET_SOURCE_PATHS, async (_, __, runSuper) => { + const paths = await runSuper() + + return paths.filter((filePath: string) => { + return !( + filePath.includes('snarkVerifiers') || + filePath.includes('FundingRoundFactory.sol') + ) + }) +}) + task( 'compile', 'Compiles the entire project, building all artifacts', async (_, { config }, runSuper) => { await runSuper() // Copy Poseidon artifacts - const poseidons = ['PoseidonT3', 'PoseidonT6'] - for (const contractName of poseidons) { + const externalContracts: Array = [] + for (const contractName of externalContracts) { const artifact = JSON.parse( fs .readFileSync( - `../node_modules/maci-contracts/compiled/${contractName}.json` + `../node_modules/maci-contracts/artifacts/contracts/${contractName}.sol/${contractName}.json` ) .toString() ) diff --git a/contracts/package.json b/contracts/package.json index 8104f9acb..c7b09883b 100644 --- a/contracts/package.json +++ b/contracts/package.json @@ -22,10 +22,10 @@ "clean": "rm -rf cache && rm -rf build" }, "dependencies": { - "@openzeppelin/contracts": "3.2.0", + "@openzeppelin/contracts": "4.9.0", "dotenv": "^8.2.0", - "maci-contracts": "0.10.1", - "solidity-rlp": "2.0.3" + "maci-contracts": "1.1.1", + "solidity-rlp": "2.0.8" }, "devDependencies": { "@clrfund/maci-utils": "^0.0.1", @@ -48,7 +48,6 @@ "hardhat": "^2.12.5", "hardhat-contract-sizer": "^2.6.1", "ipfs-only-hash": "^2.0.1", - "maci-cli": "npm:@clrfund/maci-cli@0.10.2", "solhint": "^3.3.2", "ts-generator": "^0.0.8", "ts-node": "^8.8.1", From 78ecd24726d062c73587fb8d0af77c7304c30619 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Thu, 1 Jun 2023 12:03:31 -0400 Subject: [PATCH 002/338] fix contract abi location change --- vue-app/src/api/abi.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vue-app/src/api/abi.ts b/vue-app/src/api/abi.ts index f8ffc89d8..d282ca529 100644 --- a/vue-app/src/api/abi.ts +++ b/vue-app/src/api/abi.ts @@ -1,8 +1,8 @@ import { abi as ERC20 } from '../../../contracts/build/contracts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json' -import { abi as FundingRoundFactory } from '../../../contracts/build/contracts/contracts/FundingRoundFactory.sol/FundingRoundFactory.json' +import { abi as FundingRoundFactory } from '../../../contracts/build/contracts/contracts/Clrfund.sol/Clrfund.json' import { abi as FundingRound } from '../../../contracts/build/contracts/contracts/FundingRound.sol/FundingRound.json' import { abi as MACIFactory } from '../../../contracts/build/contracts/contracts/MACIFactory.sol/MACIFactory.json' -import { abi as MACI } from '../../../contracts/build/contracts/maci-contracts/sol/MACI.sol/MACI.json' +import { abi as MACI } from '../../../contracts/build/contracts/maci-contracts/contracts/MACI.sol/MACI.json' import { abi as UserRegistry } from '../../../contracts/build/contracts/contracts/userRegistry/IUserRegistry.sol/IUserRegistry.json' import { abi as BrightIdUserRegistry } from '../../../contracts/build/contracts/contracts/userRegistry/BrightIdUserRegistry.sol/BrightIdUserRegistry.json' import { abi as SimpleRecipientRegistry } from '../../../contracts/build/contracts/contracts/recipientRegistry/SimpleRecipientRegistry.sol/SimpleRecipientRegistry.json' From ee83a6f86aa063149dcffb8d9da6de1d4a3d204e Mon Sep 17 00:00:00 2001 From: yuetloo Date: Thu, 1 Jun 2023 12:05:24 -0400 Subject: [PATCH 003/338] add updated yarn.lock --- yarn.lock | 2612 ++++++++++++++++++++++------------------------------- 1 file changed, 1063 insertions(+), 1549 deletions(-) diff --git a/yarn.lock b/yarn.lock index 99f311b09..512b5ac08 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,11 @@ # yarn lockfile v1 +"@alloc/quick-lru@^5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz#7bf68b20c0a350f936915fcae06f58e32007ce30" + integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw== + "@ampproject/remapping@^2.2.0": version "2.2.1" resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" @@ -45,24 +50,19 @@ dependencies: node-fetch "^2.6.1" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.18.6", "@babel/code-frame@^7.21.4": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.21.4": version "7.21.4" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.21.4.tgz#d0fa9e4413aca81f2b23b9442797bda1826edb39" integrity sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g== dependencies: "@babel/highlight" "^7.18.6" -"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.5", "@babel/compat-data@^7.21.4": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.21.4.tgz#457ffe647c480dff59c2be092fc3acf71195c87f" - integrity sha512-/DYyDpeCfaVinT40FPGdkkb+lYSKvsVuMjDAG7jPOWWiM1ibOaB9CXJAlc4d1QpP/U2q2P9jbrSlClKSErd55g== - -"@babel/compat-data@^7.21.5": - version "7.21.7" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.21.7.tgz#61caffb60776e49a57ba61a88f02bedd8714f6bc" - integrity sha512-KYMqFYTaenzMK4yUtf4EW9wc4N9ef80FsbMtkwool5zpwl4YrT1SdWYSTRcT94KO4hannogdS+LxY7L+arP3gA== +"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.5", "@babel/compat-data@^7.21.5": + version "7.21.9" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.21.9.tgz#10a2e7fda4e51742c907938ac3b7229426515514" + integrity sha512-FUGed8kfhyWvbYug/Un/VPJD41rDIgoVVcR+FuzhzOYyRz5uED+Gd3SLZml0Uw2l2aHFb7ZgdW5mGA3G2cCCnQ== -"@babel/core@^7.10.4": +"@babel/core@^7.10.4", "@babel/core@^7.14.0": version "7.21.8" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.21.8.tgz#2a8c7f0f53d60100ba4c32470ba0281c92aa9aa4" integrity sha512-YeM22Sondbo523Sz0+CirSPnbj9bG3P0CdHcBZdqUuaeOaYEFbOLoGU7lebvGP6P5J/WE9wOn7u7C4J9HvS1xQ== @@ -83,41 +83,10 @@ json5 "^2.2.2" semver "^6.3.0" -"@babel/core@^7.14.0": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.21.4.tgz#c6dc73242507b8e2a27fd13a9c1814f9fa34a659" - integrity sha512-qt/YV149Jman/6AfmlxJ04LMIu8bMoyl3RB91yTFrxQmgbrSvQMy7cI8Q62FHx1t8wJ8B5fu0UDoLwHAhUo1QA== - dependencies: - "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.21.4" - "@babel/generator" "^7.21.4" - "@babel/helper-compilation-targets" "^7.21.4" - "@babel/helper-module-transforms" "^7.21.2" - "@babel/helpers" "^7.21.0" - "@babel/parser" "^7.21.4" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.21.4" - "@babel/types" "^7.21.4" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.2" - semver "^6.3.0" - -"@babel/generator@^7.14.0", "@babel/generator@^7.18.13", "@babel/generator@^7.21.4": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.21.4.tgz#64a94b7448989f421f919d5239ef553b37bb26bc" - integrity sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA== - dependencies: - "@babel/types" "^7.21.4" - "@jridgewell/gen-mapping" "^0.3.2" - "@jridgewell/trace-mapping" "^0.3.17" - jsesc "^2.5.1" - -"@babel/generator@^7.21.5": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.21.5.tgz#c0c0e5449504c7b7de8236d99338c3e2a340745f" - integrity sha512-SrKK/sRv8GesIW1bDagf9cCG38IOMYZusoe1dfg0D8aiUe3Amvoj1QtjTPAWcfrZFvIwlleLb0gxzQidL9w14w== +"@babel/generator@^7.14.0", "@babel/generator@^7.18.13", "@babel/generator@^7.21.5": + version "7.21.9" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.21.9.tgz#3a1b706e07d836e204aee0650e8ee878d3aaa241" + integrity sha512-F3fZga2uv09wFdEjEQIJxXALXfz0+JaOb7SabvVMmjHxeVTuGW8wgE8Vp1Hd7O+zMTYtcfEISGRzPkeiaPPsvg== dependencies: "@babel/types" "^7.21.5" "@jridgewell/gen-mapping" "^0.3.2" @@ -138,18 +107,7 @@ dependencies: "@babel/types" "^7.21.5" -"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.21.4": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.4.tgz#770cd1ce0889097ceacb99418ee6934ef0572656" - integrity sha512-Fa0tTuOXZ1iL8IeDFUWCzjZcn+sJGd9RZdH9esYVjEejGmzf+FFYQpMi/kZUk2kPy/q1H3/GPw7np8qar/stfg== - dependencies: - "@babel/compat-data" "^7.21.4" - "@babel/helper-validator-option" "^7.21.0" - browserslist "^4.21.3" - lru-cache "^5.1.1" - semver "^6.3.0" - -"@babel/helper-compilation-targets@^7.21.5": +"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.21.5": version "7.21.5" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.5.tgz#631e6cc784c7b660417421349aac304c94115366" integrity sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w== @@ -160,21 +118,7 @@ lru-cache "^5.1.1" semver "^6.3.0" -"@babel/helper-create-class-features-plugin@^7.18.6": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.4.tgz#3a017163dc3c2ba7deb9a7950849a9586ea24c18" - integrity sha512-46QrX2CQlaFRF4TkwfTt6nJD7IHq8539cCL7SDpqWSDeJKY1xylKKY5F/33mJhLZ3mFvKv2gGrVS6NkyF6qs+Q== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.21.0" - "@babel/helper-member-expression-to-functions" "^7.21.0" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/helper-replace-supers" "^7.20.7" - "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" - "@babel/helper-split-export-declaration" "^7.18.6" - -"@babel/helper-create-class-features-plugin@^7.21.0": +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0": version "7.21.8" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.8.tgz#205b26330258625ef8869672ebca1e0dee5a0f02" integrity sha512-+THiN8MqiH2AczyuZrnrKL6cAxFRRQDKW9h1YkBvbgKmAm6mwiacig1qT73DHIWMGo40GRnsEfN3LA+E6NtmSw== @@ -210,12 +154,7 @@ resolve "^1.14.2" semver "^6.1.2" -"@babel/helper-environment-visitor@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" - integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== - -"@babel/helper-environment-visitor@^7.21.5": +"@babel/helper-environment-visitor@^7.18.9", "@babel/helper-environment-visitor@^7.21.5": version "7.21.5" resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.21.5.tgz#c769afefd41d171836f7cb63e295bedf689d48ba" integrity sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ== @@ -235,13 +174,6 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-member-expression-to-functions@^7.20.7", "@babel/helper-member-expression-to-functions@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz#319c6a940431a133897148515877d2f3269c3ba5" - integrity sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q== - dependencies: - "@babel/types" "^7.21.0" - "@babel/helper-member-expression-to-functions@^7.21.5": version "7.21.5" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.5.tgz#3b1a009af932e586af77c1030fba9ee0bde396c0" @@ -270,20 +202,6 @@ "@babel/traverse" "^7.21.5" "@babel/types" "^7.21.5" -"@babel/helper-module-transforms@^7.21.2": - version "7.21.2" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz#160caafa4978ac8c00ac66636cb0fa37b024e2d2" - integrity sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ== - dependencies: - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-simple-access" "^7.20.2" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/helper-validator-identifier" "^7.19.1" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.21.2" - "@babel/types" "^7.21.2" - "@babel/helper-optimise-call-expression@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe" @@ -291,16 +209,11 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.21.5", "@babel/helper-plugin-utils@^7.8.3": +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.21.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.21.5" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.21.5.tgz#345f2377d05a720a4e5ecfa39cbf4474a4daed56" integrity sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg== -"@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.8.0": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz#d1b9000752b18d0877cff85a5c376ce5c3121629" - integrity sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ== - "@babel/helper-remap-async-to-generator@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz#997458a0e3357080e54e1d79ec347f8a8cd28519" @@ -311,19 +224,7 @@ "@babel/helper-wrap-function" "^7.18.9" "@babel/types" "^7.18.9" -"@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz#243ecd2724d2071532b2c8ad2f0f9f083bcae331" - integrity sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A== - dependencies: - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-member-expression-to-functions" "^7.20.7" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.20.7" - "@babel/types" "^7.20.7" - -"@babel/helper-replace-supers@^7.21.5": +"@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.20.7", "@babel/helper-replace-supers@^7.21.5": version "7.21.5" resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.21.5.tgz#a6ad005ba1c7d9bc2973dfde05a1bba7065dde3c" integrity sha512-/y7vBgsr9Idu4M6MprbOVUfH3vs7tsIfnVWv/Ml2xgwvyH6LTngdfbf5AdsKwkJy4zgy1X/kuNrEKvhhK28Yrg== @@ -335,13 +236,6 @@ "@babel/traverse" "^7.21.5" "@babel/types" "^7.21.5" -"@babel/helper-simple-access@^7.20.2": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz#0ab452687fe0c2cfb1e2b9e0015de07fc2d62dd9" - integrity sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA== - dependencies: - "@babel/types" "^7.20.2" - "@babel/helper-simple-access@^7.21.5": version "7.21.5" resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz#d697a7971a5c39eac32c7e63c0921c06c8a249ee" @@ -363,11 +257,6 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-string-parser@^7.19.4": - version "7.19.4" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63" - integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== - "@babel/helper-string-parser@^7.21.5": version "7.21.5" resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz#2b3eea65443c6bdc31c22d037c65f6d323b6b2bd" @@ -393,15 +282,6 @@ "@babel/traverse" "^7.20.5" "@babel/types" "^7.20.5" -"@babel/helpers@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.21.0.tgz#9dd184fb5599862037917cdc9eecb84577dc4e7e" - integrity sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA== - dependencies: - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.21.0" - "@babel/types" "^7.21.0" - "@babel/helpers@^7.21.5": version "7.21.5" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.21.5.tgz#5bac66e084d7a4d2d9696bdf0175a93f7fb63c08" @@ -420,15 +300,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.14.0", "@babel/parser@^7.16.4", "@babel/parser@^7.16.8", "@babel/parser@^7.20.7", "@babel/parser@^7.21.4": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.4.tgz#94003fdfc520bbe2875d4ae557b43ddb6d880f17" - integrity sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw== - -"@babel/parser@^7.21.5", "@babel/parser@^7.21.8": - version "7.21.8" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.8.tgz#642af7d0333eab9c0ad70b14ac5e76dbde7bfdf8" - integrity sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA== +"@babel/parser@^7.14.0", "@babel/parser@^7.16.8", "@babel/parser@^7.20.15", "@babel/parser@^7.21.3", "@babel/parser@^7.21.5", "@babel/parser@^7.21.8", "@babel/parser@^7.21.9": + version "7.21.9" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.9.tgz#ab18ea3b85b4bc33ba98a8d4c2032c557d23cf14" + integrity sha512-q5PNg/Bi1OpGgx5jYlvWZwAorZepEudDMCLtj967aeS7WMont7dUZI46M2XwcIQqvUlMxWfdLFu4S/qSxeUu5g== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": version "7.18.6" @@ -617,7 +492,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.20.2" -"@babel/plugin-syntax-import-assertions@7.20.0", "@babel/plugin-syntax-import-assertions@^7.20.0": +"@babel/plugin-syntax-import-assertions@^7.20.0": version "7.20.0" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz#bb50e0d4bea0957235390641209394e87bdb9cc4" integrity sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ== @@ -638,7 +513,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.18.6": +"@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.21.4": version "7.21.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.21.4.tgz#f264ed7bf40ffc9ec239edabc17a50c4f5b6fea2" integrity sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ== @@ -701,14 +576,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-arrow-functions@^7.0.0": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz#bea332b0e8b2dab3dafe55a163d8227531ab0551" - integrity sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - -"@babel/plugin-transform-arrow-functions@^7.21.5": +"@babel/plugin-transform-arrow-functions@^7.0.0", "@babel/plugin-transform-arrow-functions@^7.21.5": version "7.21.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.21.5.tgz#9bb42a53de447936a57ba256fbf537fc312b6929" integrity sha512-wb1mhwGOCaXHDTcsRYMKF9e5bbMgqwxtqa2Y1ifH96dXJPwbuLX9qHy3clhrxVqgMz7nyNXs8VkxdH8UBcjKqA== @@ -753,15 +621,7 @@ "@babel/helper-split-export-declaration" "^7.18.6" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.0.0": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz#704cc2fd155d1c996551db8276d55b9d46e4d0aa" - integrity sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/template" "^7.20.7" - -"@babel/plugin-transform-computed-properties@^7.21.5": +"@babel/plugin-transform-computed-properties@^7.0.0", "@babel/plugin-transform-computed-properties@^7.21.5": version "7.21.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.21.5.tgz#3a2d8bb771cd2ef1cd736435f6552fe502e11b44" integrity sha512-TR653Ki3pAwxBxUe8srfF3e4Pe3FTA46uaNHYyQwIoM4oWKSoOZiDNyHJ0oIoDIUPSRQbQG7jzgVBX3FPVne1Q== @@ -807,14 +667,7 @@ "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-syntax-flow" "^7.18.6" -"@babel/plugin-transform-for-of@^7.0.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.0.tgz#964108c9988de1a60b4be2354a7d7e245f36e86e" - integrity sha512-LlUYlydgDkKpIY7mcBWvyPPmMcOphEyYA27Ef4xpbh1IiDNLr0kZsos2nf92vz3IccvJI25QUwp86Eo5s6HmBQ== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - -"@babel/plugin-transform-for-of@^7.21.5": +"@babel/plugin-transform-for-of@^7.0.0", "@babel/plugin-transform-for-of@^7.21.5": version "7.21.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.5.tgz#e890032b535f5a2e237a18535f56a9fdaa7b83fc" integrity sha512-nYWpjKW/7j/I/mZkGVgHJXh4bA1sfdFnJoOXwJuj4m3Q2EraO/8ZyrkCau9P5tbHQk01RMSt6KYLCsW7730SXQ== @@ -852,16 +705,7 @@ "@babel/helper-module-transforms" "^7.20.11" "@babel/helper-plugin-utils" "^7.20.2" -"@babel/plugin-transform-modules-commonjs@^7.0.0": - version "7.21.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.2.tgz#6ff5070e71e3192ef2b7e39820a06fb78e3058e7" - integrity sha512-Cln+Yy04Gxua7iPdj6nOV96smLGjpElir5YwzF0LBPKoPlLDNJePNlrGGaybAJkd0zKRnOVXOgizSqPYMNYkzA== - dependencies: - "@babel/helper-module-transforms" "^7.21.2" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-simple-access" "^7.20.2" - -"@babel/plugin-transform-modules-commonjs@^7.21.5": +"@babel/plugin-transform-modules-commonjs@^7.0.0", "@babel/plugin-transform-modules-commonjs@^7.21.5": version "7.21.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.5.tgz#d69fb947eed51af91de82e4708f676864e5e47bc" integrity sha512-OVryBEgKUbtqMoB7eG2rs6UFexJi6Zj6FDXx+esBLPTCxCNxAY9o+8Di7IsUGJ+AVhp5ncK0fxWUBd0/1gPhrQ== @@ -940,15 +784,15 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-react-jsx@^7.0.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.21.0.tgz#656b42c2fdea0a6d8762075d58ef9d4e3c4ab8a2" - integrity sha512-6OAWljMvQrZjR2DaNhVfRz6dkCAVV+ymcLUmaf8bccGOHn2v5rHJK3tTpij0BuhdYWP4LLaqj5lwcdlpAAPuvg== + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.21.5.tgz#bd98f3b429688243e4fa131fe1cbb2ef31ce6f38" + integrity sha512-ELdlq61FpoEkHO6gFRpfj0kUgSwQTGoaEU8eMRoS8Dv3v6e7BjEAj5WMtIBRdHUeAioMhKP5HyxNzNnP+heKbA== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-jsx" "^7.18.6" - "@babel/types" "^7.21.0" + "@babel/helper-module-imports" "^7.21.4" + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/plugin-syntax-jsx" "^7.21.4" + "@babel/types" "^7.21.5" "@babel/plugin-transform-regenerator@^7.21.5": version "7.21.5" @@ -1126,14 +970,7 @@ resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== -"@babel/runtime@^7.0.0", "@babel/runtime@^7.5.5": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.21.0.tgz#5b55c9d394e5fcf304909a8b00c07dc217b56673" - integrity sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw== - dependencies: - regenerator-runtime "^0.13.11" - -"@babel/runtime@^7.8.4": +"@babel/runtime@^7.0.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4": version "7.21.5" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.21.5.tgz#8492dddda9644ae3bda3b45eabe87382caee7200" integrity sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q== @@ -1141,31 +978,15 @@ regenerator-runtime "^0.13.11" "@babel/template@^7.18.10", "@babel/template@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8" - integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw== - dependencies: - "@babel/code-frame" "^7.18.6" - "@babel/parser" "^7.20.7" - "@babel/types" "^7.20.7" - -"@babel/traverse@^7.14.0", "@babel/traverse@^7.16.8", "@babel/traverse@^7.20.7", "@babel/traverse@^7.21.0", "@babel/traverse@^7.21.2", "@babel/traverse@^7.21.4": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.21.4.tgz#a836aca7b116634e97a6ed99976236b3282c9d36" - integrity sha512-eyKrRHKdyZxqDm+fV1iqL9UAHMoIg0nDaGqfIOd8rKH17m5snv7Gn4qgjBoFfLz9APvjFU/ICT00NVCv1Epp8Q== + version "7.21.9" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.21.9.tgz#bf8dad2859130ae46088a99c1f265394877446fb" + integrity sha512-MK0X5k8NKOuWRamiEfc3KEJiHMTkGZNUjzMipqCGDDc6ijRl/B7RGSKVGncu4Ro/HdyzzY6cmoXuKI2Gffk7vQ== dependencies: "@babel/code-frame" "^7.21.4" - "@babel/generator" "^7.21.4" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.21.0" - "@babel/helper-hoist-variables" "^7.18.6" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.21.4" - "@babel/types" "^7.21.4" - debug "^4.1.0" - globals "^11.1.0" + "@babel/parser" "^7.21.9" + "@babel/types" "^7.21.5" -"@babel/traverse@^7.20.5", "@babel/traverse@^7.21.5": +"@babel/traverse@^7.14.0", "@babel/traverse@^7.16.8", "@babel/traverse@^7.20.5", "@babel/traverse@^7.21.5": version "7.21.5" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.21.5.tgz#ad22361d352a5154b498299d523cf72998a4b133" integrity sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw== @@ -1181,16 +1002,7 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.16.8", "@babel/types@^7.18.13", "@babel/types@^7.18.6", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.21.2", "@babel/types@^7.21.4": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.21.4.tgz#2d5d6bb7908699b3b416409ffd3b5daa25b030d4" - integrity sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA== - dependencies: - "@babel/helper-string-parser" "^7.19.4" - "@babel/helper-validator-identifier" "^7.19.1" - to-fast-properties "^2.0.0" - -"@babel/types@^7.18.9", "@babel/types@^7.20.5", "@babel/types@^7.21.5", "@babel/types@^7.4.4": +"@babel/types@^7.0.0", "@babel/types@^7.16.8", "@babel/types@^7.18.13", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.20.0", "@babel/types@^7.20.5", "@babel/types@^7.21.0", "@babel/types@^7.21.4", "@babel/types@^7.21.5", "@babel/types@^7.4.4": version "7.21.5" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.21.5.tgz#18dfbd47c39d3904d5db3d3dc2cc80bedb60e5b6" integrity sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q== @@ -1275,125 +1087,125 @@ resolved "https://registry.yarnpkg.com/@ensdomains/resolver/-/resolver-0.2.4.tgz#c10fe28bf5efbf49bff4666d909aed0265efbc89" integrity sha512-bvaTH34PMCbv6anRa9I/0zjLJgY4EuznbEMgbV77JBCQ9KNC46rzi0avuxpOfu+xDjPEtSFGqVEOr5GlUSGudA== -"@esbuild/android-arm64@0.17.17": - version "0.17.17" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.17.tgz#164b054d58551f8856285f386e1a8f45d9ba3a31" - integrity sha512-jaJ5IlmaDLFPNttv0ofcwy/cfeY4bh/n705Tgh+eLObbGtQBK3EPAu+CzL95JVE4nFAliyrnEu0d32Q5foavqg== +"@esbuild/android-arm64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz#bafb75234a5d3d1b690e7c2956a599345e84a2fd" + integrity sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA== "@esbuild/android-arm@0.15.18": version "0.15.18" resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.15.18.tgz#266d40b8fdcf87962df8af05b76219bc786b4f80" integrity sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw== -"@esbuild/android-arm@0.17.17": - version "0.17.17" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.17.tgz#1b3b5a702a69b88deef342a7a80df4c894e4f065" - integrity sha512-E6VAZwN7diCa3labs0GYvhEPL2M94WLF8A+czO8hfjREXxba8Ng7nM5VxV+9ihNXIY1iQO1XxUU4P7hbqbICxg== - -"@esbuild/android-x64@0.17.17": - version "0.17.17" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.17.tgz#6781527e3c4ea4de532b149d18a2167f06783e7f" - integrity sha512-446zpfJ3nioMC7ASvJB1pszHVskkw4u/9Eu8s5yvvsSDTzYh4p4ZIRj0DznSl3FBF0Z/mZfrKXTtt0QCoFmoHA== - -"@esbuild/darwin-arm64@0.17.17": - version "0.17.17" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.17.tgz#c5961ef4d3c1cc80dafe905cc145b5a71d2ac196" - integrity sha512-m/gwyiBwH3jqfUabtq3GH31otL/0sE0l34XKpSIqR7NjQ/XHQ3lpmQHLHbG8AHTGCw8Ao059GvV08MS0bhFIJQ== - -"@esbuild/darwin-x64@0.17.17": - version "0.17.17" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.17.tgz#b81f3259cc349691f67ae30f7b333a53899b3c20" - integrity sha512-4utIrsX9IykrqYaXR8ob9Ha2hAY2qLc6ohJ8c0CN1DR8yWeMrTgYFjgdeQ9LIoTOfLetXjuCu5TRPHT9yKYJVg== - -"@esbuild/freebsd-arm64@0.17.17": - version "0.17.17" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.17.tgz#db846ad16cf916fd3acdda79b85ea867cb100e87" - integrity sha512-4PxjQII/9ppOrpEwzQ1b0pXCsFLqy77i0GaHodrmzH9zq2/NEhHMAMJkJ635Ns4fyJPFOlHMz4AsklIyRqFZWA== - -"@esbuild/freebsd-x64@0.17.17": - version "0.17.17" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.17.tgz#4dd99acbaaba00949d509e7c144b1b6ef9e1815b" - integrity sha512-lQRS+4sW5S3P1sv0z2Ym807qMDfkmdhUYX30GRBURtLTrJOPDpoU0kI6pVz1hz3U0+YQ0tXGS9YWveQjUewAJw== - -"@esbuild/linux-arm64@0.17.17": - version "0.17.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.17.tgz#7f9274140b2bb9f4230dbbfdf5dc2761215e30f6" - integrity sha512-2+pwLx0whKY1/Vqt8lyzStyda1v0qjJ5INWIe+d8+1onqQxHLLi3yr5bAa4gvbzhZqBztifYEu8hh1La5+7sUw== - -"@esbuild/linux-arm@0.17.17": - version "0.17.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.17.tgz#5c8e44c2af056bb2147cf9ad13840220bcb8948b" - integrity sha512-biDs7bjGdOdcmIk6xU426VgdRUpGg39Yz6sT9Xp23aq+IEHDb/u5cbmu/pAANpDB4rZpY/2USPhCA+w9t3roQg== - -"@esbuild/linux-ia32@0.17.17": - version "0.17.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.17.tgz#18a6b3798658be7f46e9873fa0c8d4bec54c9212" - integrity sha512-IBTTv8X60dYo6P2t23sSUYym8fGfMAiuv7PzJ+0LcdAndZRzvke+wTVxJeCq4WgjppkOpndL04gMZIFvwoU34Q== +"@esbuild/android-arm@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.19.tgz#5898f7832c2298bc7d0ab53701c57beb74d78b4d" + integrity sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A== + +"@esbuild/android-x64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.19.tgz#658368ef92067866d95fb268719f98f363d13ae1" + integrity sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww== + +"@esbuild/darwin-arm64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz#584c34c5991b95d4d48d333300b1a4e2ff7be276" + integrity sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg== + +"@esbuild/darwin-x64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz#7751d236dfe6ce136cce343dce69f52d76b7f6cb" + integrity sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw== + +"@esbuild/freebsd-arm64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz#cacd171665dd1d500f45c167d50c6b7e539d5fd2" + integrity sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ== + +"@esbuild/freebsd-x64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz#0769456eee2a08b8d925d7c00b79e861cb3162e4" + integrity sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ== + +"@esbuild/linux-arm64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz#38e162ecb723862c6be1c27d6389f48960b68edb" + integrity sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg== + +"@esbuild/linux-arm@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz#1a2cd399c50040184a805174a6d89097d9d1559a" + integrity sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA== + +"@esbuild/linux-ia32@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz#e28c25266b036ce1cabca3c30155222841dc035a" + integrity sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ== "@esbuild/linux-loong64@0.15.18": version "0.15.18" resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.18.tgz#128b76ecb9be48b60cf5cfc1c63a4f00691a3239" integrity sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ== -"@esbuild/linux-loong64@0.17.17": - version "0.17.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.17.tgz#a8d93514a47f7b4232716c9f02aeb630bae24c40" - integrity sha512-WVMBtcDpATjaGfWfp6u9dANIqmU9r37SY8wgAivuKmgKHE+bWSuv0qXEFt/p3qXQYxJIGXQQv6hHcm7iWhWjiw== - -"@esbuild/linux-mips64el@0.17.17": - version "0.17.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.17.tgz#4784efb1c3f0eac8133695fa89253d558149ee1b" - integrity sha512-2kYCGh8589ZYnY031FgMLy0kmE4VoGdvfJkxLdxP4HJvWNXpyLhjOvxVsYjYZ6awqY4bgLR9tpdYyStgZZhi2A== - -"@esbuild/linux-ppc64@0.17.17": - version "0.17.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.17.tgz#ef6558ec5e5dd9dc16886343e0ccdb0699d70d3c" - integrity sha512-KIdG5jdAEeAKogfyMTcszRxy3OPbZhq0PPsW4iKKcdlbk3YE4miKznxV2YOSmiK/hfOZ+lqHri3v8eecT2ATwQ== - -"@esbuild/linux-riscv64@0.17.17": - version "0.17.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.17.tgz#13a87fdbcb462c46809c9d16bcf79817ecf9ce6f" - integrity sha512-Cj6uWLBR5LWhcD/2Lkfg2NrkVsNb2sFM5aVEfumKB2vYetkA/9Uyc1jVoxLZ0a38sUhFk4JOVKH0aVdPbjZQeA== - -"@esbuild/linux-s390x@0.17.17": - version "0.17.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.17.tgz#83cb16d1d3ac0dca803b3f031ba3dc13f1ec7ade" - integrity sha512-lK+SffWIr0XsFf7E0srBjhpkdFVJf3HEgXCwzkm69kNbRar8MhezFpkIwpk0qo2IOQL4JE4mJPJI8AbRPLbuOQ== - -"@esbuild/linux-x64@0.17.17": - version "0.17.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.17.tgz#7bc400568690b688e20a0c94b2faabdd89ae1a79" - integrity sha512-XcSGTQcWFQS2jx3lZtQi7cQmDYLrpLRyz1Ns1DzZCtn898cWfm5Icx/DEWNcTU+T+tyPV89RQtDnI7qL2PObPg== - -"@esbuild/netbsd-x64@0.17.17": - version "0.17.17" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.17.tgz#1b5dcfbc4bfba80e67a11e9148de836af5b58b6c" - integrity sha512-RNLCDmLP5kCWAJR+ItLM3cHxzXRTe4N00TQyQiimq+lyqVqZWGPAvcyfUBM0isE79eEZhIuGN09rAz8EL5KdLA== - -"@esbuild/openbsd-x64@0.17.17": - version "0.17.17" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.17.tgz#e275098902291149a5dcd012c9ea0796d6b7adff" - integrity sha512-PAXswI5+cQq3Pann7FNdcpSUrhrql3wKjj3gVkmuz6OHhqqYxKvi6GgRBoaHjaG22HV/ZZEgF9TlS+9ftHVigA== - -"@esbuild/sunos-x64@0.17.17": - version "0.17.17" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.17.tgz#10603474866f64986c0370a2d4fe5a2bb7fee4f5" - integrity sha512-V63egsWKnx/4V0FMYkr9NXWrKTB5qFftKGKuZKFIrAkO/7EWLFnbBZNM1CvJ6Sis+XBdPws2YQSHF1Gqf1oj/Q== - -"@esbuild/win32-arm64@0.17.17": - version "0.17.17" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.17.tgz#521a6d97ee0f96b7c435930353cc4e93078f0b54" - integrity sha512-YtUXLdVnd6YBSYlZODjWzH+KzbaubV0YVd6UxSfoFfa5PtNJNaW+1i+Hcmjpg2nEe0YXUCNF5bkKy1NnBv1y7Q== - -"@esbuild/win32-ia32@0.17.17": - version "0.17.17" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.17.tgz#56f88462ebe82dad829dc2303175c0e0ccd8e38e" - integrity sha512-yczSLRbDdReCO74Yfc5tKG0izzm+lPMYyO1fFTcn0QNwnKmc3K+HdxZWLGKg4pZVte7XVgcFku7TIZNbWEJdeQ== - -"@esbuild/win32-x64@0.17.17": - version "0.17.17" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.17.tgz#2b577b976e6844106715bbe0cdc57cd1528063f9" - integrity sha512-FNZw7H3aqhF9OyRQbDDnzUApDXfC1N6fgBhkqEO2jvYCJ+DxMTfZVqg3AX0R1khg1wHTBRD5SdcibSJ+XF6bFg== +"@esbuild/linux-loong64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz#0f887b8bb3f90658d1a0117283e55dbd4c9dcf72" + integrity sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ== + +"@esbuild/linux-mips64el@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz#f5d2a0b8047ea9a5d9f592a178ea054053a70289" + integrity sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A== + +"@esbuild/linux-ppc64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz#876590e3acbd9fa7f57a2c7d86f83717dbbac8c7" + integrity sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg== + +"@esbuild/linux-riscv64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz#7f49373df463cd9f41dc34f9b2262d771688bf09" + integrity sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA== + +"@esbuild/linux-s390x@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz#e2afd1afcaf63afe2c7d9ceacd28ec57c77f8829" + integrity sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q== + +"@esbuild/linux-x64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz#8a0e9738b1635f0c53389e515ae83826dec22aa4" + integrity sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw== + +"@esbuild/netbsd-x64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz#c29fb2453c6b7ddef9a35e2c18b37bda1ae5c462" + integrity sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q== + +"@esbuild/openbsd-x64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz#95e75a391403cb10297280d524d66ce04c920691" + integrity sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g== + +"@esbuild/sunos-x64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz#722eaf057b83c2575937d3ffe5aeb16540da7273" + integrity sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg== + +"@esbuild/win32-arm64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz#9aa9dc074399288bdcdd283443e9aeb6b9552b6f" + integrity sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag== + +"@esbuild/win32-ia32@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz#95ad43c62ad62485e210f6299c7b2571e48d2b03" + integrity sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw== + +"@esbuild/win32-x64@0.17.19": + version "0.17.19" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz#8cfaf2ff603e9aabb910e9c0558c26cf32744061" + integrity sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA== "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.3.0": version "4.4.0" @@ -1403,18 +1215,18 @@ eslint-visitor-keys "^3.3.0" "@eslint-community/regexpp@^4.4.0": - version "4.5.0" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.5.0.tgz#f6f729b02feee2c749f57e334b7a1b5f40a81724" - integrity sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ== + version "4.5.1" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.5.1.tgz#cdd35dce4fa1a89a4fd42b1599eb35b3af408884" + integrity sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ== -"@eslint/eslintrc@^2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.2.tgz#01575e38707add677cf73ca1589abba8da899a02" - integrity sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ== +"@eslint/eslintrc@^2.0.3": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.3.tgz#4910db5505f4d503f27774bf356e3704818a0331" + integrity sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ== dependencies: ajv "^6.12.4" debug "^4.3.2" - espree "^9.5.1" + espree "^9.5.2" globals "^13.19.0" ignore "^5.2.0" import-fresh "^3.2.1" @@ -1422,15 +1234,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.38.0": - version "8.38.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.38.0.tgz#73a8a0d8aa8a8e6fe270431c5e72ae91b5337892" - integrity sha512-IoD2MfUnOV58ghIHCiil01PcohxjbYR/qCxsoC+xNgUwh1EY8jOOrYmu3d3a71+tJJ23uscEV4X2HJWMsPJu4g== - -"@eslint/js@8.39.0": - version "8.39.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.39.0.tgz#58b536bcc843f4cd1e02a7e6171da5c040f4d44b" - integrity sha512-kf9RB0Fg7NZfap83B3QOqOGg9QmD9yBudqQXzzOtn3i4y7ZUXe5ONeW34Gwi+TxhH4mvj72R1Zc300KUMa9Bng== +"@eslint/js@8.41.0": + version "8.41.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.41.0.tgz#080321c3b68253522f7646b55b577dd99d2950b3" + integrity sha512-LxcyMGxwmTh2lY9FwHPGWOHmYFCZvbrFCBZL4FzSSsxsRPuhrYUg/49/0KDfW8tnIEaEHtfmn6+NPN+1DqaNmA== "@ethereum-waffle/chai@^3.4.4": version "3.4.4" @@ -1943,9 +1750,9 @@ assemblyscript "0.19.10" "@graphql-codegen/cli@^3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@graphql-codegen/cli/-/cli-3.3.0.tgz#12755b6b20b5a24eca7514a6fa00507b61406bef" - integrity sha512-KRQoAG0stor/ztMsBxHqxnwQzcM1DEZigwzah1LFej8bh6TT1WpUt37zt6PH0EdlMpelmeN3keY4Pq6GMd4ADw== + version "3.3.1" + resolved "https://registry.yarnpkg.com/@graphql-codegen/cli/-/cli-3.3.1.tgz#103e7a2263126fdde168a1ce623fc2bdc05352f0" + integrity sha512-4Es8Y9zFeT0Zx2qRL7L3qXDbbqvXK6aID+8v8lP6gaYD+uWx3Jd4Hsq5vxwVBR+6flm0BW/C85Qm0cvmT7O6LA== dependencies: "@babel/generator" "^7.18.13" "@babel/template" "^7.18.10" @@ -2049,24 +1856,24 @@ tslib "~2.4.0" "@graphql-codegen/typescript-operations@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@graphql-codegen/typescript-operations/-/typescript-operations-3.0.3.tgz#35b2dabd7d7d243ad7be7edccc605826aa305a9d" - integrity sha512-RtMRFpZ8nyXxwurdxklWVIHX9U6/fGWYWEpvarNIIci17BKajZPzdBPKP2GKhUEWzZVGNESqH3RX38jt0onLqQ== + version "3.0.4" + resolved "https://registry.yarnpkg.com/@graphql-codegen/typescript-operations/-/typescript-operations-3.0.4.tgz#60163c07f0ef73655779ece450d02c1172c44027" + integrity sha512-6yE2OL2+WJ1vd5MwFEGXpaxsFGzjAGUytPVHDML3Bi3TwP1F3lnQlIko4untwvHW0JhZEGQ7Ck30H9HjcxpdKA== dependencies: "@graphql-codegen/plugin-helpers" "^4.2.0" - "@graphql-codegen/typescript" "^3.0.3" - "@graphql-codegen/visitor-plugin-common" "3.1.0" + "@graphql-codegen/typescript" "^3.0.4" + "@graphql-codegen/visitor-plugin-common" "3.1.1" auto-bind "~4.0.0" tslib "~2.5.0" -"@graphql-codegen/typescript@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@graphql-codegen/typescript/-/typescript-3.0.3.tgz#3732e2072ba27970006db14b22d412ac4c943628" - integrity sha512-oVV4/RPs3Lmr2XqywlNDmLhNBCIhefA8rYcuxoWcnd/WRc6GNRm1b2NOIzDhhF4xriVluMyk3QQVRepkdj9enw== +"@graphql-codegen/typescript@^3.0.3", "@graphql-codegen/typescript@^3.0.4": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@graphql-codegen/typescript/-/typescript-3.0.4.tgz#e12dc106a2722ebc7d18556980ccf47fa9d0805f" + integrity sha512-x4O47447DZrWNtE/l5CU9QzzW4m1RbmCEdijlA3s2flG/y1Ckqdemob4CWfilSm5/tZ3w1junVDY616RDTSvZw== dependencies: "@graphql-codegen/plugin-helpers" "^4.2.0" "@graphql-codegen/schema-ast" "^3.0.1" - "@graphql-codegen/visitor-plugin-common" "3.1.0" + "@graphql-codegen/visitor-plugin-common" "3.1.1" auto-bind "~4.0.0" tslib "~2.5.0" @@ -2086,10 +1893,10 @@ parse-filepath "^1.0.2" tslib "~2.4.0" -"@graphql-codegen/visitor-plugin-common@3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-3.1.0.tgz#93172d64440b103edfe8b63ea3ac8842a5277a54" - integrity sha512-S4BO/xP38eoEDULwbem5QeV7yWA8DpbcSGkvwrnMfVQW08nL6uHliCSV8hiuAi7Mhx7snVir4Iumk8uIDRVu6Q== +"@graphql-codegen/visitor-plugin-common@3.1.1": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-3.1.1.tgz#50c2aa3c537a805ce68d2f115d0a9811b151428c" + integrity sha512-uAfp+zu/009R3HUAuTK2AamR1bxIltM6rrYYI6EXSmkM3rFtFsLTuJhjUDj98HcUCszJZrADppz8KKLGRUVlNg== dependencies: "@graphql-codegen/plugin-helpers" "^4.2.0" "@graphql-tools/optimize" "^1.3.0" @@ -2112,35 +1919,35 @@ "@whatwg-node/fetch" "^0.8.0" tslib "^2.4.0" -"@graphql-tools/batch-execute@^8.5.19": - version "8.5.19" - resolved "https://registry.yarnpkg.com/@graphql-tools/batch-execute/-/batch-execute-8.5.19.tgz#b204cc5bded1b1d12088b399d3b72eaf38d63132" - integrity sha512-eqofTMYPygg9wVPdA+p8lk4NBpaPTcDut6SlnDk9IiYdY23Yfo6pY7mzZ3b27GugI7HDtB2OZUxzZJSGsk6Qew== +"@graphql-tools/batch-execute@^8.5.22": + version "8.5.22" + resolved "https://registry.yarnpkg.com/@graphql-tools/batch-execute/-/batch-execute-8.5.22.tgz#a742aa9d138fe794e786d8fb6429665dc7df5455" + integrity sha512-hcV1JaY6NJQFQEwCKrYhpfLK8frSXDbtNMoTur98u10Cmecy1zrqNKSqhEyGetpgHxaJRqszGzKeI3RuroDN6A== dependencies: "@graphql-tools/utils" "^9.2.1" - dataloader "2.2.2" + dataloader "^2.2.2" tslib "^2.4.0" - value-or-promise "1.0.12" + value-or-promise "^1.0.12" "@graphql-tools/code-file-loader@^7.3.17": - version "7.3.22" - resolved "https://registry.yarnpkg.com/@graphql-tools/code-file-loader/-/code-file-loader-7.3.22.tgz#e2495c4697da19dec2ba880b82f3ce4b1d5e72ba" - integrity sha512-Dq38L0UTjWlGKaV8pTfOAHB/hhhNVuVOApBhpqMBSuE20B9vFslSWJvDXQzbCcSPNMAeuvq0JNjIeIec0O4qyw== + version "7.3.23" + resolved "https://registry.yarnpkg.com/@graphql-tools/code-file-loader/-/code-file-loader-7.3.23.tgz#33793f9a1f8e74981f8ae6ec4ab7061f9713db15" + integrity sha512-8Wt1rTtyTEs0p47uzsPJ1vAtfAx0jmxPifiNdmo9EOCuUPyQGEbMaik/YkqZ7QUFIEYEQu+Vgfo8tElwOPtx5Q== dependencies: - "@graphql-tools/graphql-tag-pluck" "7.5.1" + "@graphql-tools/graphql-tag-pluck" "7.5.2" "@graphql-tools/utils" "^9.2.1" globby "^11.0.3" tslib "^2.4.0" unixify "^1.0.0" "@graphql-tools/delegate@^9.0.31": - version "9.0.32" - resolved "https://registry.yarnpkg.com/@graphql-tools/delegate/-/delegate-9.0.32.tgz#c8d6c3d93e36aa48b51915161852f2eb72427249" - integrity sha512-ZleId1mDSca4cjHQidIDv4HQR7B7B+nazF3nsWm2IIps40suR/hkADVgfJNegYbn8KhA3C9b1qEjcltP/Do3Ag== + version "9.0.35" + resolved "https://registry.yarnpkg.com/@graphql-tools/delegate/-/delegate-9.0.35.tgz#94683f4bcec63520b4a6c8b2abf2e2e9324ea4f1" + integrity sha512-jwPu8NJbzRRMqi4Vp/5QX1vIUeUPpWmlQpOkXQD2r1X45YsVceyUUBnktCrlJlDB4jPRVy7JQGwmYo3KFiOBMA== dependencies: - "@graphql-tools/batch-execute" "^8.5.19" - "@graphql-tools/executor" "^0.0.18" - "@graphql-tools/schema" "^9.0.18" + "@graphql-tools/batch-execute" "^8.5.22" + "@graphql-tools/executor" "^0.0.20" + "@graphql-tools/schema" "^9.0.19" "@graphql-tools/utils" "^9.2.1" dataloader "^2.2.2" tslib "^2.5.0" @@ -2160,9 +1967,9 @@ ws "8.13.0" "@graphql-tools/executor-http@^0.1.7", "@graphql-tools/executor-http@^0.1.9": - version "0.1.9" - resolved "https://registry.yarnpkg.com/@graphql-tools/executor-http/-/executor-http-0.1.9.tgz#ddd74ef376b4a2ed59c622acbcca068890854a30" - integrity sha512-tNzMt5qc1ptlHKfpSv9wVBVKCZ7gks6Yb/JcYJluxZIT4qRV+TtOFjpptfBU63usgrGVOVcGjzWc/mt7KhmmpQ== + version "0.1.10" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor-http/-/executor-http-0.1.10.tgz#faf48e18e62a925796c9653c2f50cf2095bc8e6f" + integrity sha512-hnAfbKv0/lb9s31LhWzawQ5hghBfHS+gYWtqxME6Rl0Aufq9GltiiLBcl7OVVOnkLF0KhwgbYP1mB5VKmgTGpg== dependencies: "@graphql-tools/utils" "^9.2.1" "@repeaterjs/repeater" "^3.0.4" @@ -2184,23 +1991,23 @@ tslib "^2.4.0" ws "8.13.0" -"@graphql-tools/executor@^0.0.18": - version "0.0.18" - resolved "https://registry.yarnpkg.com/@graphql-tools/executor/-/executor-0.0.18.tgz#5b9f881d59484ea55278de3b4743ece8d68bc6e7" - integrity sha512-xZC0C+/npXoSHBB5bsJdwxDLgtl1Gu4fL9J2TPQmXoZC3L2N506KJoppf9LgWdHU/xK04luJrhP6WjhfkIN0pQ== +"@graphql-tools/executor@^0.0.20": + version "0.0.20" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor/-/executor-0.0.20.tgz#d51d159696e839522dd49d936636af251670e425" + integrity sha512-GdvNc4vszmfeGvUqlcaH1FjBoguvMYzxAfT6tDd4/LgwymepHhinqLNA5otqwVLW+JETcDaK7xGENzFomuE6TA== dependencies: "@graphql-tools/utils" "^9.2.1" "@graphql-typed-document-node/core" "3.2.0" - "@repeaterjs/repeater" "3.0.4" + "@repeaterjs/repeater" "^3.0.4" tslib "^2.4.0" - value-or-promise "1.0.12" + value-or-promise "^1.0.12" "@graphql-tools/git-loader@^7.2.13": - version "7.2.21" - resolved "https://registry.yarnpkg.com/@graphql-tools/git-loader/-/git-loader-7.2.21.tgz#9ebe7029bdb0d4b31c279fe462faaf832c945aa2" - integrity sha512-m9pZrhkc92iq7WRuZxA4NctNofQfhA34QoCLFCnm9krrvFUvzNZHhUvrfW5x3e63NTreu4+CFDPItBHeGZjoGA== + version "7.3.0" + resolved "https://registry.yarnpkg.com/@graphql-tools/git-loader/-/git-loader-7.3.0.tgz#ca10c17d4f58c4592432d9d2ac1c2b393aebad16" + integrity sha512-gcGAK+u16eHkwsMYqqghZbmDquh8QaO24Scsxq+cVR+vx1ekRlsEiXvu+yXVDbZdcJ6PBIbeLcQbEu+xhDLmvQ== dependencies: - "@graphql-tools/graphql-tag-pluck" "7.5.1" + "@graphql-tools/graphql-tag-pluck" "7.5.2" "@graphql-tools/utils" "^9.2.1" is-glob "4.0.3" micromatch "^4.0.4" @@ -2231,13 +2038,13 @@ tslib "^2.4.0" unixify "^1.0.0" -"@graphql-tools/graphql-tag-pluck@7.5.1", "@graphql-tools/graphql-tag-pluck@^7.4.6": - version "7.5.1" - resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-7.5.1.tgz#6be7958ecbe8c3be2e918c110a77b61a0751e09f" - integrity sha512-TgKcSvs2sdFHMbUzyhR9bnYfwFHxqdpotX5Q0OcMmJkuieQe1q60+eEANWlCrjuEqr2giw528Ydq57MIWLKlNA== +"@graphql-tools/graphql-tag-pluck@7.5.2", "@graphql-tools/graphql-tag-pluck@^7.4.6": + version "7.5.2" + resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-7.5.2.tgz#502f1e066e19d832ebdeba5f571d7636dc27572d" + integrity sha512-RW+H8FqOOLQw0BPXaahYepVSRjuOHw+7IL8Opaa5G5uYGOBxoXR7DceyQ7BcpMgktAOOmpDNQ2WtcboChOJSRA== dependencies: "@babel/parser" "^7.16.8" - "@babel/plugin-syntax-import-assertions" "7.20.0" + "@babel/plugin-syntax-import-assertions" "^7.20.0" "@babel/traverse" "^7.16.8" "@babel/types" "^7.16.8" "@graphql-tools/utils" "^9.2.1" @@ -2273,9 +2080,9 @@ tslib "^2.4.0" "@graphql-tools/merge@^8.2.6", "@graphql-tools/merge@^8.4.1": - version "8.4.1" - resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-8.4.1.tgz#52879e5f73565f504ceea04fcd9ef90a6e733c62" - integrity sha512-hssnPpZ818mxgl5+GfyOOSnnflAxiaTn1A1AojZcIbh4J52sS1Q0gSuBR5VrnUDjuxiqoCotpXdAQl+K+U6KLQ== + version "8.4.2" + resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-8.4.2.tgz#95778bbe26b635e8d2f60ce9856b388f11fe8288" + integrity sha512-XbrHAaj8yDuINph+sAfuq3QCZ/tKblrTLOpirK0+CAgNlZUCHs0Fa+xtMUURgwCVThLle1AF7svJCxFizygLsw== dependencies: "@graphql-tools/utils" "^9.2.1" tslib "^2.4.0" @@ -2288,9 +2095,9 @@ tslib "^2.4.0" "@graphql-tools/prisma-loader@^7.2.49": - version "7.2.71" - resolved "https://registry.yarnpkg.com/@graphql-tools/prisma-loader/-/prisma-loader-7.2.71.tgz#7540bfabcc9717c10c1ebdb359d265f721205199" - integrity sha512-FuIvhRrkduqPdj3QX0/anCxGViEETfoZ/1NvotfM6iVO1XxR75VXvP/iyKGbK6XvYRXwSstgj2DetlQnqdgXhA== + version "7.2.72" + resolved "https://registry.yarnpkg.com/@graphql-tools/prisma-loader/-/prisma-loader-7.2.72.tgz#6304fc23600458396f3ede713d8e2371df7850e3" + integrity sha512-0a7uV7Fky6yDqd0tI9+XMuvgIo6GAqiVzzzFV4OSLry4AwiQlI3igYseBV7ZVOGhedOTqj/URxjpiv07hRcwag== dependencies: "@graphql-tools/url-loader" "^7.17.18" "@graphql-tools/utils" "^9.2.1" @@ -2301,8 +2108,8 @@ debug "^4.3.1" dotenv "^16.0.0" graphql-request "^6.0.0" - http-proxy-agent "^5.0.0" - https-proxy-agent "^5.0.0" + http-proxy-agent "^6.0.0" + https-proxy-agent "^6.0.0" jose "^4.11.4" js-yaml "^4.0.0" json-stable-stringify "^1.0.1" @@ -2320,15 +2127,15 @@ "@graphql-tools/utils" "^9.2.1" tslib "^2.4.0" -"@graphql-tools/schema@^9.0.0", "@graphql-tools/schema@^9.0.18": - version "9.0.18" - resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-9.0.18.tgz#f66dd5e76e1aba85904cb649fde88ae01718c45c" - integrity sha512-Kckb+qoo36o5RSIVfBNU5XR5fOg4adNa1xuhhUgbQejDaI684tIJbTWwYbrDPVEGL/dqJJX3rrsq7RLufjNFoQ== +"@graphql-tools/schema@^9.0.0", "@graphql-tools/schema@^9.0.18", "@graphql-tools/schema@^9.0.19": + version "9.0.19" + resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-9.0.19.tgz#c4ad373b5e1b8a0cf365163435b7d236ebdd06e7" + integrity sha512-oBRPoNBtCkk0zbUsyP4GaIzCt8C0aCI4ycIRUL67KK5pOHljKLBBtGT+Jr6hkzA74C8Gco8bpZPe7aWFjiaK2w== dependencies: "@graphql-tools/merge" "^8.4.1" "@graphql-tools/utils" "^9.2.1" tslib "^2.4.0" - value-or-promise "1.0.12" + value-or-promise "^1.0.12" "@graphql-tools/url-loader@^7.13.2", "@graphql-tools/url-loader@^7.17.18", "@graphql-tools/url-loader@^7.9.7": version "7.17.18" @@ -2404,14 +2211,6 @@ resolved "https://registry.yarnpkg.com/@iden3/bigarray/-/bigarray-0.0.2.tgz#6fc4ba5be18daf8a26ee393f2fb62b80d98c05e9" integrity sha512-Xzdyxqm1bOFF6pdIsiHLLl3HkSLjbhqJHVyqaTxXt3RqXBEnmsUmEW47H7VOi/ak7TdkRpNkxjyK5Zbkm+y52g== -"@iden3/binfileutils@0.0.8": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@iden3/binfileutils/-/binfileutils-0.0.8.tgz#d1d349bdbaa9f0a99644232c7d75ea0db98ea1c7" - integrity sha512-/GqTsujUssGuQY+sd/XaLrA+OiCwzm+6yH28C57QQDWCHET2Logry9fGxU10n6XKdhCQBjZ7T/YMQkLwwkpRTQ== - dependencies: - fastfile "0.0.19" - ffjavascript "^0.2.30" - "@intlify/bundle-utils@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@intlify/bundle-utils/-/bundle-utils-4.0.0.tgz#29c1d602c7e4e33b516581496a7c6740ed7e2585" @@ -2584,9 +2383,9 @@ rlp "^2.2.5" "@libp2p/interfaces@^3.3.1": - version "3.3.1" - resolved "https://registry.yarnpkg.com/@libp2p/interfaces/-/interfaces-3.3.1.tgz#519c77c030b10d776250bbebf65990af53ccb2ee" - integrity sha512-3N+goQt74SmaVOjwpwMPKLNgh1uDQGw8GD12c40Kc86WOq0qvpm3NfACW+H8Su2X6KmWjCSMzk9JWs9+8FtUfg== + version "3.3.2" + resolved "https://registry.yarnpkg.com/@libp2p/interfaces/-/interfaces-3.3.2.tgz#5d8079be845b0960939b5b18880e785a4714465a" + integrity sha512-p/M7plbrxLzuQchvNwww1Was7ZeGE2NaOFulMaZBYIihU8z3fhaV+a033OqnC/0NTX/yhfdNOG7znhYq3XoR/g== "@metamask/eth-sig-util@^4.0.0": version "4.0.1" @@ -2624,9 +2423,9 @@ varint "^6.0.0" "@multiformats/multiaddr@^12.0.0": - version "12.1.2" - resolved "https://registry.yarnpkg.com/@multiformats/multiaddr/-/multiaddr-12.1.2.tgz#816654413a88f2c5c929ac4e12a54743511312c3" - integrity sha512-EYYUEAddjWoyig5Dcu+JGq2JdpEpT2tW/K4sefdDWVSQW+rfnABfz1rx/KnrituB20jC8aPBcT62kISTZ3oL5A== + version "12.1.3" + resolved "https://registry.yarnpkg.com/@multiformats/multiaddr/-/multiaddr-12.1.3.tgz#aff5aa61ec19c5320f0b756e88c3bbaac8d1c7af" + integrity sha512-rNcS3njkkSwuGF4x58L47jGH5kBXBfJPNsWnrt0gujhNYn6ReDt1je7vEU5/ddrVj0TStgxw+Hm+TkYDK0b60w== dependencies: "@chainsafe/is-ip" "^2.0.1" "@chainsafe/netmask" "^2.0.0" @@ -2898,9 +2697,9 @@ ts-interface-checker "^0.1.9" "@nomiclabs/hardhat-waffle@^2.0.3": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-waffle/-/hardhat-waffle-2.0.5.tgz#97c217f1db795395c04404291937edb528f3f218" - integrity sha512-U1RH9OQ1mWYQfb+moX5aTgGjpVVlOcpiFI47wwnaGG4kLhcTy90cNiapoqZenxcRAITVbr0/+QSduINL5EsUIQ== + version "2.0.6" + resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-waffle/-/hardhat-waffle-2.0.6.tgz#d11cb063a5f61a77806053e54009c40ddee49a54" + integrity sha512-+Wz0hwmJGSI17B+BhU/qFRZ1l6/xMW82QGXE/Gi+WTmwgJrQefuBs1lIf7hzQ1hLk6hpkvb/zwcNkpVKRYTQYg== "@oclif/core@2.8.0": version "2.8.0" @@ -2942,10 +2741,10 @@ resolved "https://registry.yarnpkg.com/@openfonts/inter_all/-/inter_all-1.0.2.tgz#87fc59c58926d2e5e63022a0960f12be82915d00" integrity sha512-hdB3gPFLztuDbEDLImVRTQyH4EHHrX9iEsw6wZW+VuwUoTwMJEhOV9dWliM6WZtJYF/cqYuiMK+Bqdd2XztnDg== -"@openzeppelin/contracts@3.2.0", "@openzeppelin/contracts@~3.2.0": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-3.2.0.tgz#3e6b3a7662d8ed64271ade96ef42655db983fd9d" - integrity sha512-bUOmkSoPkjnUyMiKo6RYnb0VHBk5D9KKDAgNLzF41aqAM3TeE0yGdFF5dVRcV60pZdJLlyFT/jjXIZCWyyEzAQ== +"@openzeppelin/contracts@4.9.0", "@openzeppelin/contracts@^4.8.0": + version "4.9.0" + resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-4.9.0.tgz#683f33b6598970051bc5f0806fd8660da9e018dd" + integrity sha512-DUP74AFGKlic2sQb/CmgrN2aUPMFGxRrmCTUxLHsiU2RzwWqVuMPZBxiAyvlff6Pea77uylAX6B5x9W6evEbhA== "@parcel/watcher@^2.1.0": version "2.1.0" @@ -3111,9 +2910,9 @@ picomatch "^2.3.1" "@rushstack/eslint-patch@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.2.0.tgz#8be36a1f66f3265389e90b5f9c9962146758f728" - integrity sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg== + version "1.3.0" + resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.3.0.tgz#f5635b36fc0dad96ef1e542a302cd914230188c0" + integrity sha512-IthPJsJR85GhOkp3Hvp8zFOPK5ynKn6STyHa/WZpioK7E1aYDiBzpqQPrngc14DszIUkIrdd3k9Iu0XSzlP/1w== "@scure/base@~1.1.0": version "1.1.1" @@ -3264,9 +3063,9 @@ integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== "@tsconfig/node16@^1.0.2": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.3.tgz#472eaab5f15c1ffdd7f8628bd4c4f753995ec79e" - integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ== + version "1.0.4" + resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" + integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== "@typechain/ethers-v5@^2.0.0": version "2.0.0" @@ -3307,9 +3106,9 @@ "@types/chai" "*" "@types/chai@*", "@types/chai@^4.2.11", "@types/chai@^4.3.4": - version "4.3.4" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.4.tgz#e913e8175db8307d78b4e8fa690408ba6b65dee4" - integrity sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw== + version "4.3.5" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.5.tgz#ae69bcbb1bebb68c4ac0b11e9d8ed04526b3562b" + integrity sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng== "@types/cli-progress@^3.11.0": version "3.11.0" @@ -3333,9 +3132,9 @@ "@types/node" "*" "@types/estree@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2" - integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ== + version "1.0.1" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194" + integrity sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA== "@types/form-data@0.0.33": version "0.0.33" @@ -3414,17 +3213,17 @@ integrity sha512-ZvO2tAcjmMi8V/5Z3JsyofMe3hasRcaw88cto5etSVMwVQfeivGAlEYmaQgceUSVYFofVjT+ioHsATjdWcFt1w== "@types/node-fetch@^2.5.5": - version "2.6.3" - resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.3.tgz#175d977f5e24d93ad0f57602693c435c57ad7e80" - integrity sha512-ETTL1mOEdq/sxUtgtOhKjyB2Irra4cjxksvcMUR5Zr4n+PxVhsCD9WS46oPbHL3et9Zde7CNRr+WUNlcHvsX+w== + version "2.6.4" + resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.4.tgz#1bc3a26de814f6bf466b25aeb1473fa1afe6a660" + integrity sha512-1ZX9fcN4Rvkvgv4E6PAY5WXUFWFcRWxZa3EW83UjycOB9ljJCedb2CupIP4RZMEwF/M3eTcCihbBRgwtGbg5Rg== dependencies: "@types/node" "*" form-data "^3.0.0" "@types/node@*", "@types/node@>=13.7.0": - version "18.15.11" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.11.tgz#b3b790f09cb1696cffcec605de025b088fa4225f" - integrity sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q== + version "20.2.3" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.2.3.tgz#b31eb300610c3835ac008d690de6f87e28f9b878" + integrity sha512-pg9d0yC4rVNWQzX8U7xb4olIOFuuVL9za3bzMT2pu2SU0SNEi66i2qrvhE2qt0HvkhuCaWJu7pLNOt/Pj8BIrw== "@types/node@^10.0.3": version "10.17.60" @@ -3515,9 +3314,9 @@ "@types/node" "*" "@types/semver@^7.3.12": - version "7.3.13" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.13.tgz#da4bfd73f49bd541d28920ab0e2bf0ee80f71c91" - integrity sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw== + version "7.5.0" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.0.tgz#591c1ce3a702c45ee15f47a42ade72c2fd78978a" + integrity sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw== "@types/web-bluetooth@^0.0.16": version "0.0.16" @@ -3538,15 +3337,15 @@ dependencies: "@types/node" "*" -"@typescript-eslint/eslint-plugin@^5.0.0", "@typescript-eslint/eslint-plugin@^5.44.0": - version "5.59.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.0.tgz#c0e10eeb936debe5d1c3433cf36206a95befefd0" - integrity sha512-p0QgrEyrxAWBecR56gyn3wkG15TJdI//eetInP3zYRewDh0XS+DhB3VUAd3QqvziFsfaQIoIuZMxZRB7vXYaYw== +"@typescript-eslint/eslint-plugin@^5.44.0", "@typescript-eslint/eslint-plugin@^5.59.1": + version "5.59.7" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.7.tgz#e470af414f05ecfdc05a23e9ce6ec8f91db56fe2" + integrity sha512-BL+jYxUFIbuYwy+4fF86k5vdT9lT0CNJ6HtwrIvGh0PhH8s0yy5rjaKH2fDCrz5ITHy07WCzVGNvAmjJh4IJFA== dependencies: "@eslint-community/regexpp" "^4.4.0" - "@typescript-eslint/scope-manager" "5.59.0" - "@typescript-eslint/type-utils" "5.59.0" - "@typescript-eslint/utils" "5.59.0" + "@typescript-eslint/scope-manager" "5.59.7" + "@typescript-eslint/type-utils" "5.59.7" + "@typescript-eslint/utils" "5.59.7" debug "^4.3.4" grapheme-splitter "^1.0.4" ignore "^5.2.0" @@ -3554,171 +3353,166 @@ semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/parser@^5.0.0", "@typescript-eslint/parser@^5.44.0": - version "5.59.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.59.0.tgz#0ad7cd019346cc5d150363f64869eca10ca9977c" - integrity sha512-qK9TZ70eJtjojSUMrrEwA9ZDQ4N0e/AuoOIgXuNBorXYcBDk397D2r5MIe1B3cok/oCtdNC5j+lUUpVB+Dpb+w== +"@typescript-eslint/parser@^5.44.0", "@typescript-eslint/parser@^5.59.1": + version "5.59.7" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.59.7.tgz#02682554d7c1028b89aa44a48bf598db33048caa" + integrity sha512-VhpsIEuq/8i5SF+mPg9jSdIwgMBBp0z9XqjiEay+81PYLJuroN+ET1hM5IhkiYMJd9MkTz8iJLt7aaGAgzWUbQ== dependencies: - "@typescript-eslint/scope-manager" "5.59.0" - "@typescript-eslint/types" "5.59.0" - "@typescript-eslint/typescript-estree" "5.59.0" + "@typescript-eslint/scope-manager" "5.59.7" + "@typescript-eslint/types" "5.59.7" + "@typescript-eslint/typescript-estree" "5.59.7" debug "^4.3.4" -"@typescript-eslint/scope-manager@5.59.0": - version "5.59.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.59.0.tgz#86501d7a17885710b6716a23be2e93fc54a4fe8c" - integrity sha512-tsoldKaMh7izN6BvkK6zRMINj4Z2d6gGhO2UsI8zGZY3XhLq1DndP3Ycjhi1JwdwPRwtLMW4EFPgpuKhbCGOvQ== +"@typescript-eslint/scope-manager@5.59.7": + version "5.59.7" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.59.7.tgz#0243f41f9066f3339d2f06d7f72d6c16a16769e2" + integrity sha512-FL6hkYWK9zBGdxT2wWEd2W8ocXMu3K94i3gvMrjXpx+koFYdYV7KprKfirpgY34vTGzEPPuKoERpP8kD5h7vZQ== dependencies: - "@typescript-eslint/types" "5.59.0" - "@typescript-eslint/visitor-keys" "5.59.0" + "@typescript-eslint/types" "5.59.7" + "@typescript-eslint/visitor-keys" "5.59.7" -"@typescript-eslint/type-utils@5.59.0": - version "5.59.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.59.0.tgz#8e8d1420fc2265989fa3a0d897bde37f3851e8c9" - integrity sha512-d/B6VSWnZwu70kcKQSCqjcXpVH+7ABKH8P1KNn4K7j5PXXuycZTPXF44Nui0TEm6rbWGi8kc78xRgOC4n7xFgA== +"@typescript-eslint/type-utils@5.59.7": + version "5.59.7" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.59.7.tgz#89c97291371b59eb18a68039857c829776f1426d" + integrity sha512-ozuz/GILuYG7osdY5O5yg0QxXUAEoI4Go3Do5xeu+ERH9PorHBPSdvD3Tjp2NN2bNLh1NJQSsQu2TPu/Ly+HaQ== dependencies: - "@typescript-eslint/typescript-estree" "5.59.0" - "@typescript-eslint/utils" "5.59.0" + "@typescript-eslint/typescript-estree" "5.59.7" + "@typescript-eslint/utils" "5.59.7" debug "^4.3.4" tsutils "^3.21.0" -"@typescript-eslint/types@5.59.0": - version "5.59.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.59.0.tgz#3fcdac7dbf923ec5251545acdd9f1d42d7c4fe32" - integrity sha512-yR2h1NotF23xFFYKHZs17QJnB51J/s+ud4PYU4MqdZbzeNxpgUr05+dNeCN/bb6raslHvGdd6BFCkVhpPk/ZeA== +"@typescript-eslint/types@5.59.7": + version "5.59.7" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.59.7.tgz#6f4857203fceee91d0034ccc30512d2939000742" + integrity sha512-UnVS2MRRg6p7xOSATscWkKjlf/NDKuqo5TdbWck6rIRZbmKpVNTLALzNvcjIfHBE7736kZOFc/4Z3VcZwuOM/A== -"@typescript-eslint/typescript-estree@5.59.0": - version "5.59.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.0.tgz#8869156ee1dcfc5a95be3ed0e2809969ea28e965" - integrity sha512-sUNnktjmI8DyGzPdZ8dRwW741zopGxltGs/SAPgGL/AAgDpiLsCFLcMNSpbfXfmnNeHmK9h3wGmCkGRGAoUZAg== +"@typescript-eslint/typescript-estree@5.59.7": + version "5.59.7" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.7.tgz#b887acbd4b58e654829c94860dbff4ac55c5cff8" + integrity sha512-4A1NtZ1I3wMN2UGDkU9HMBL+TIQfbrh4uS0WDMMpf3xMRursDbqEf1ahh6vAAe3mObt8k3ZATnezwG4pdtWuUQ== dependencies: - "@typescript-eslint/types" "5.59.0" - "@typescript-eslint/visitor-keys" "5.59.0" + "@typescript-eslint/types" "5.59.7" + "@typescript-eslint/visitor-keys" "5.59.7" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/utils@5.59.0": - version "5.59.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.59.0.tgz#063d066b3bc4850c18872649ed0da9ee72d833d5" - integrity sha512-GGLFd+86drlHSvPgN/el6dRQNYYGOvRSDVydsUaQluwIW3HvbXuxyuD5JETvBt/9qGYe+lOrDk6gRrWOHb/FvA== +"@typescript-eslint/utils@5.59.7": + version "5.59.7" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.59.7.tgz#7adf068b136deae54abd9a66ba5a8780d2d0f898" + integrity sha512-yCX9WpdQKaLufz5luG4aJbOpdXf/fjwGMcLFXZVPUz3QqLirG5QcwwnIHNf8cjLjxK4qtzTO8udUtMQSAToQnQ== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@types/json-schema" "^7.0.9" "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.59.0" - "@typescript-eslint/types" "5.59.0" - "@typescript-eslint/typescript-estree" "5.59.0" + "@typescript-eslint/scope-manager" "5.59.7" + "@typescript-eslint/types" "5.59.7" + "@typescript-eslint/typescript-estree" "5.59.7" eslint-scope "^5.1.1" semver "^7.3.7" -"@typescript-eslint/visitor-keys@5.59.0": - version "5.59.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.0.tgz#a59913f2bf0baeb61b5cfcb6135d3926c3854365" - integrity sha512-qZ3iXxQhanchCeaExlKPV3gDQFxMUmU35xfd5eCXB6+kUw1TUAbIy2n7QIrwz9s98DQLzNWyHp61fY0da4ZcbA== +"@typescript-eslint/visitor-keys@5.59.7": + version "5.59.7" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.7.tgz#09c36eaf268086b4fbb5eb9dc5199391b6485fc5" + integrity sha512-tyN+X2jvMslUszIiYbF0ZleP+RqQsFVpGrKI6e0Eet1w8WmhsAtmzaqm8oM8WJQ1ysLwhnsK/4hYHJjOgJVfQQ== dependencies: - "@typescript-eslint/types" "5.59.0" + "@typescript-eslint/types" "5.59.7" eslint-visitor-keys "^3.3.0" -"@ungap/promise-all-settled@1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44" - integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q== - "@vitejs/plugin-vue@3.2.0": version "3.2.0" resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-3.2.0.tgz#a1484089dd85d6528f435743f84cdd0d215bbb54" integrity sha512-E0tnaL4fr+qkdCNxJ+Xd0yM31UwMkQje76fsDVBBUCoGOUPexu2VDUYHL8P4CwV+zMvWw6nlRw19OnRKmYAJpw== -"@volar/language-core@1.3.0-alpha.0": - version "1.3.0-alpha.0" - resolved "https://registry.yarnpkg.com/@volar/language-core/-/language-core-1.3.0-alpha.0.tgz#4924b4cbc37dbce5f3845c1d2b2811938223a980" - integrity sha512-W3uMzecHPcbwddPu4SJpUcPakRBK/y/BP+U0U6NiPpUX1tONLC4yCawt+QBJqtgJ+sfD6ztf5PyvPL3hQRqfOA== +"@volar/language-core@1.4.1": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@volar/language-core/-/language-core-1.4.1.tgz#66b5758252e35c4e5e71197ca7fa0344d306442c" + integrity sha512-EIY+Swv+TjsWpxOxujjMf1ZXqOjg9MT2VMXZ+1dKva0wD8W0L6EtptFFcCJdBbcKmGMFkr57Qzz9VNMWhs3jXQ== dependencies: - "@volar/source-map" "1.3.0-alpha.0" + "@volar/source-map" "1.4.1" -"@volar/source-map@1.3.0-alpha.0": - version "1.3.0-alpha.0" - resolved "https://registry.yarnpkg.com/@volar/source-map/-/source-map-1.3.0-alpha.0.tgz#c45d51ecb9759604d29fb80211d2fc9765e5559c" - integrity sha512-jSdizxWFvDTvkPYZnO6ew3sBZUnS0abKCbuopkc0JrIlFbznWC/fPH3iPFIMS8/IIkRxq1Jh9VVG60SmtsdaMQ== +"@volar/source-map@1.4.1": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@volar/source-map/-/source-map-1.4.1.tgz#e3b561775c742508e5e1f28609a4787c98056715" + integrity sha512-bZ46ad72dsbzuOWPUtJjBXkzSQzzSejuR3CT81+GvTEI2E994D8JPXzM3tl98zyCNnjgs4OkRyliImL1dvJ5BA== dependencies: muggle-string "^0.2.2" -"@volar/typescript@1.3.0-alpha.0": - version "1.3.0-alpha.0" - resolved "https://registry.yarnpkg.com/@volar/typescript/-/typescript-1.3.0-alpha.0.tgz#f79bbc9939016700812b18191c47eb035913c6c3" - integrity sha512-5UItyW2cdH2mBLu4RrECRNJRgtvvzKrSCn2y3v/D61QwIDkGx4aeil6x8RFuUL5TFtV6QvVHXnsOHxNgd+sCow== - dependencies: - "@volar/language-core" "1.3.0-alpha.0" - -"@volar/vue-language-core@1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@volar/vue-language-core/-/vue-language-core-1.2.0.tgz#a600aa93c6a4e89bf2b525b7e876b39e3afdfb9b" - integrity sha512-w7yEiaITh2WzKe6u8ZdeLKCUz43wdmY/OqAmsB/PGDvvhTcVhCJ6f0W/RprZL1IhqH8wALoWiwEh/Wer7ZviMQ== - dependencies: - "@volar/language-core" "1.3.0-alpha.0" - "@volar/source-map" "1.3.0-alpha.0" - "@vue/compiler-dom" "^3.2.47" - "@vue/compiler-sfc" "^3.2.47" - "@vue/reactivity" "^3.2.47" - "@vue/shared" "^3.2.47" - minimatch "^6.1.6" +"@volar/typescript@1.4.1-patch.2": + version "1.4.1-patch.2" + resolved "https://registry.yarnpkg.com/@volar/typescript/-/typescript-1.4.1-patch.2.tgz#89f4bd199ca81a832d86d1449b01f49f2b72137c" + integrity sha512-lPFYaGt8OdMEzNGJJChF40uYqMO4Z/7Q9fHPQC/NRVtht43KotSXLrkPandVVMf9aPbiJ059eAT+fwHGX16k4w== + dependencies: + "@volar/language-core" "1.4.1" + +"@volar/vue-language-core@1.6.5": + version "1.6.5" + resolved "https://registry.yarnpkg.com/@volar/vue-language-core/-/vue-language-core-1.6.5.tgz#db42520f1a29737c7e40fbb3e6aead8def85ba75" + integrity sha512-IF2b6hW4QAxfsLd5mePmLgtkXzNi+YnH6ltCd80gb7+cbdpFMjM1I+w+nSg2kfBTyfu+W8useCZvW89kPTBpzg== + dependencies: + "@volar/language-core" "1.4.1" + "@volar/source-map" "1.4.1" + "@vue/compiler-dom" "^3.3.0" + "@vue/compiler-sfc" "^3.3.0" + "@vue/reactivity" "^3.3.0" + "@vue/shared" "^3.3.0" + minimatch "^9.0.0" muggle-string "^0.2.2" vue-template-compiler "^2.7.14" -"@volar/vue-typescript@1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@volar/vue-typescript/-/vue-typescript-1.2.0.tgz#825dab4624a116d8be21efbf0c4a7bd6dec51d37" - integrity sha512-zjmRi9y3J1EkG+pfuHp8IbHmibihrKK485cfzsHjiuvJMGrpkWvlO5WVEk8oslMxxeGC5XwBFE9AOlvh378EPA== +"@volar/vue-typescript@1.6.5": + version "1.6.5" + resolved "https://registry.yarnpkg.com/@volar/vue-typescript/-/vue-typescript-1.6.5.tgz#6ca9bfefa5dc64ff97fcdbc74249e5e7da44e533" + integrity sha512-er9rVClS4PHztMUmtPMDTl+7c7JyrxweKSAEe/o/Noeq2bQx6v3/jZHVHBe8ZNUti5ubJL/+Tg8L3bzmlalV8A== dependencies: - "@volar/typescript" "1.3.0-alpha.0" - "@volar/vue-language-core" "1.2.0" + "@volar/typescript" "1.4.1-patch.2" + "@volar/vue-language-core" "1.6.5" -"@vue/compiler-core@3.2.47": - version "3.2.47" - resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.2.47.tgz#3e07c684d74897ac9aa5922c520741f3029267f8" - integrity sha512-p4D7FDnQb7+YJmO2iPEv0SQNeNzcbHdGByJDsT4lynf63AFkOTFN07HsiRSvjGo0QrxR/o3d0hUyNCUnBU2Tig== +"@vue/compiler-core@3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.3.4.tgz#7fbf591c1c19e1acd28ffd284526e98b4f581128" + integrity sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g== dependencies: - "@babel/parser" "^7.16.4" - "@vue/shared" "3.2.47" + "@babel/parser" "^7.21.3" + "@vue/shared" "3.3.4" estree-walker "^2.0.2" - source-map "^0.6.1" + source-map-js "^1.0.2" -"@vue/compiler-dom@3.2.47", "@vue/compiler-dom@^3.2.47": - version "3.2.47" - resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.2.47.tgz#a0b06caf7ef7056939e563dcaa9cbde30794f305" - integrity sha512-dBBnEHEPoftUiS03a4ggEig74J2YBZ2UIeyfpcRM2tavgMWo4bsEfgCGsu+uJIL/vax9S+JztH8NmQerUo7shQ== - dependencies: - "@vue/compiler-core" "3.2.47" - "@vue/shared" "3.2.47" - -"@vue/compiler-sfc@3.2.47", "@vue/compiler-sfc@^3.2.45", "@vue/compiler-sfc@^3.2.47": - version "3.2.47" - resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.47.tgz#1bdc36f6cdc1643f72e2c397eb1a398f5004ad3d" - integrity sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ== - dependencies: - "@babel/parser" "^7.16.4" - "@vue/compiler-core" "3.2.47" - "@vue/compiler-dom" "3.2.47" - "@vue/compiler-ssr" "3.2.47" - "@vue/reactivity-transform" "3.2.47" - "@vue/shared" "3.2.47" +"@vue/compiler-dom@3.3.4", "@vue/compiler-dom@^3.3.0": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz#f56e09b5f4d7dc350f981784de9713d823341151" + integrity sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w== + dependencies: + "@vue/compiler-core" "3.3.4" + "@vue/shared" "3.3.4" + +"@vue/compiler-sfc@3.3.4", "@vue/compiler-sfc@^3.2.45", "@vue/compiler-sfc@^3.3.0": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz#b19d942c71938893535b46226d602720593001df" + integrity sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ== + dependencies: + "@babel/parser" "^7.20.15" + "@vue/compiler-core" "3.3.4" + "@vue/compiler-dom" "3.3.4" + "@vue/compiler-ssr" "3.3.4" + "@vue/reactivity-transform" "3.3.4" + "@vue/shared" "3.3.4" estree-walker "^2.0.2" - magic-string "^0.25.7" + magic-string "^0.30.0" postcss "^8.1.10" - source-map "^0.6.1" + source-map-js "^1.0.2" -"@vue/compiler-ssr@3.2.47": - version "3.2.47" - resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.2.47.tgz#35872c01a273aac4d6070ab9d8da918ab13057ee" - integrity sha512-wVXC+gszhulcMD8wpxMsqSOpvDZ6xKXSVWkf50Guf/S+28hTAXPDYRTbLQ3EDkOP5Xz/+SY37YiwDquKbJOgZw== +"@vue/compiler-ssr@3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz#9d1379abffa4f2b0cd844174ceec4a9721138777" + integrity sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ== dependencies: - "@vue/compiler-dom" "3.2.47" - "@vue/shared" "3.2.47" + "@vue/compiler-dom" "3.3.4" + "@vue/shared" "3.3.4" -"@vue/devtools-api@^6.2.1", "@vue/devtools-api@^6.4.5", "@vue/devtools-api@^6.5.0": +"@vue/devtools-api@^6.2.1", "@vue/devtools-api@^6.5.0": version "6.5.0" resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.5.0.tgz#98b99425edee70b4c992692628fa1ea2c1e57d07" integrity sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q== @@ -3732,61 +3526,61 @@ eslint-plugin-prettier "^4.0.0" "@vue/eslint-config-typescript@^11.0.2": - version "11.0.2" - resolved "https://registry.yarnpkg.com/@vue/eslint-config-typescript/-/eslint-config-typescript-11.0.2.tgz#03353f404d4472900794e653450bb6623de3c642" - integrity sha512-EiKud1NqlWmSapBFkeSrE994qpKx7/27uCGnhdqzllYDpQZroyX/O6bwjEpeuyKamvLbsGdO6PMR2faIf+zFnw== - dependencies: - "@typescript-eslint/eslint-plugin" "^5.0.0" - "@typescript-eslint/parser" "^5.0.0" - vue-eslint-parser "^9.0.0" - -"@vue/reactivity-transform@3.2.47": - version "3.2.47" - resolved "https://registry.yarnpkg.com/@vue/reactivity-transform/-/reactivity-transform-3.2.47.tgz#e45df4d06370f8abf29081a16afd25cffba6d84e" - integrity sha512-m8lGXw8rdnPVVIdIFhf0LeQ/ixyHkH5plYuS83yop5n7ggVJU+z5v0zecwEnX7fa7HNLBhh2qngJJkxpwEEmYA== - dependencies: - "@babel/parser" "^7.16.4" - "@vue/compiler-core" "3.2.47" - "@vue/shared" "3.2.47" + version "11.0.3" + resolved "https://registry.yarnpkg.com/@vue/eslint-config-typescript/-/eslint-config-typescript-11.0.3.tgz#c720efa657d102cd2945bc54b4a79f35d57f6307" + integrity sha512-dkt6W0PX6H/4Xuxg/BlFj5xHvksjpSlVjtkQCpaYJBIEuKj2hOVU7r+TIe+ysCwRYFz/lGqvklntRkCAibsbPw== + dependencies: + "@typescript-eslint/eslint-plugin" "^5.59.1" + "@typescript-eslint/parser" "^5.59.1" + vue-eslint-parser "^9.1.1" + +"@vue/reactivity-transform@3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz#52908476e34d6a65c6c21cd2722d41ed8ae51929" + integrity sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw== + dependencies: + "@babel/parser" "^7.20.15" + "@vue/compiler-core" "3.3.4" + "@vue/shared" "3.3.4" estree-walker "^2.0.2" - magic-string "^0.25.7" + magic-string "^0.30.0" -"@vue/reactivity@3.2.47", "@vue/reactivity@^3.2.47": - version "3.2.47" - resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.2.47.tgz#1d6399074eadfc3ed35c727e2fd707d6881140b6" - integrity sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ== +"@vue/reactivity@3.3.4", "@vue/reactivity@^3.3.0": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.3.4.tgz#a27a29c6cd17faba5a0e99fbb86ee951653e2253" + integrity sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ== dependencies: - "@vue/shared" "3.2.47" + "@vue/shared" "3.3.4" -"@vue/runtime-core@3.2.47": - version "3.2.47" - resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.2.47.tgz#406ebade3d5551c00fc6409bbc1eeb10f32e121d" - integrity sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA== +"@vue/runtime-core@3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.3.4.tgz#4bb33872bbb583721b340f3088888394195967d1" + integrity sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA== dependencies: - "@vue/reactivity" "3.2.47" - "@vue/shared" "3.2.47" + "@vue/reactivity" "3.3.4" + "@vue/shared" "3.3.4" -"@vue/runtime-dom@3.2.47": - version "3.2.47" - resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.2.47.tgz#93e760eeaeab84dedfb7c3eaf3ed58d776299382" - integrity sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA== +"@vue/runtime-dom@3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz#992f2579d0ed6ce961f47bbe9bfe4b6791251566" + integrity sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ== dependencies: - "@vue/runtime-core" "3.2.47" - "@vue/shared" "3.2.47" - csstype "^2.6.8" + "@vue/runtime-core" "3.3.4" + "@vue/shared" "3.3.4" + csstype "^3.1.1" -"@vue/server-renderer@3.2.47": - version "3.2.47" - resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.2.47.tgz#8aa1d1871fc4eb5a7851aa7f741f8f700e6de3c0" - integrity sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA== +"@vue/server-renderer@3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.3.4.tgz#ea46594b795d1536f29bc592dd0f6655f7ea4c4c" + integrity sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ== dependencies: - "@vue/compiler-ssr" "3.2.47" - "@vue/shared" "3.2.47" + "@vue/compiler-ssr" "3.3.4" + "@vue/shared" "3.3.4" -"@vue/shared@3.2.47", "@vue/shared@^3.2.47": - version "3.2.47" - resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.47.tgz#e597ef75086c6e896ff5478a6bfc0a7aa4bbd14c" - integrity sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ== +"@vue/shared@3.3.4", "@vue/shared@^3.3.0": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.3.4.tgz#06e83c5027f464eef861c329be81454bc8b70780" + integrity sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ== "@vue/tsconfig@^0.1.3": version "0.1.3" @@ -3915,21 +3709,21 @@ "@walletconnect/types" "^1.8.0" "@walletconnect/utils" "^1.8.0" -"@walletconnect/jsonrpc-types@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.2.tgz#b79519f679cd6a5fa4a1bea888f27c1916689a20" - integrity sha512-CZe8tjJX73OWdHjrBHy7HtAapJ2tT0Q3TYhPBhRxi3643lwPIQWC9En45ldY14TZwgSewkbZ0FtGBZK0G7Bbyg== +"@walletconnect/jsonrpc-types@^1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.3.tgz#65e3b77046f1a7fa8347ae02bc1b841abe6f290c" + integrity sha512-iIQ8hboBl3o5ufmJ8cuduGad0CQm3ZlsHtujv9Eu16xq89q+BG7Nh5VLxxUgmtpnrePgFkTwXirCTkwJH1v+Yw== dependencies: keyvaluestorage-interface "^1.0.0" tslib "1.14.1" "@walletconnect/jsonrpc-utils@^1.0.3": - version "1.0.7" - resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.7.tgz#1812d17c784f1ec0735bf03d0884287f60bfa2ce" - integrity sha512-zJziApzUF/Il4VcwabnaU+0yo1QI4eUkYX99zmCVTHJvZOf2l0zjADf/OpKqWyeNFC3Io56Z/8uJHVtcNVvyFA== + version "1.0.8" + resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.8.tgz#82d0cc6a5d6ff0ecc277cb35f71402c91ad48d72" + integrity sha512-vdeb03bD8VzJUL6ZtzRYsFMq1eZQcM3EAzT0a3st59dyLfJ0wq+tKMpmGH7HlB7waD858UWgfIcudbPFsbzVdw== dependencies: "@walletconnect/environment" "^1.0.1" - "@walletconnect/jsonrpc-types" "^1.0.2" + "@walletconnect/jsonrpc-types" "^1.0.3" tslib "1.14.1" "@walletconnect/mobile-registry@^1.4.0": @@ -4167,28 +3961,28 @@ "@webassemblyjs/wast-parser" "1.9.0" "@xtuc/long" "4.2.2" -"@whatwg-node/events@^0.0.2": - version "0.0.2" - resolved "https://registry.yarnpkg.com/@whatwg-node/events/-/events-0.0.2.tgz#7b7107268d2982fc7b7aff5ee6803c64018f84dd" - integrity sha512-WKj/lI4QjnLuPrim0cfO7i+HsDSXHxNv1y0CrJhdntuO3hxWZmnXCwNDnwOvry11OjRin6cgWNF+j/9Pn8TN4w== +"@whatwg-node/events@^0.0.3": + version "0.0.3" + resolved "https://registry.yarnpkg.com/@whatwg-node/events/-/events-0.0.3.tgz#13a65dd4f5893f55280f766e29ae48074927acad" + integrity sha512-IqnKIDWfXBJkvy/k6tzskWTc2NK3LcqHlb+KHGCrjOCH4jfQckRX0NAiIcC/vIqQkzLYw2r2CTSwAxcrtcD6lA== "@whatwg-node/fetch@^0.8.0", "@whatwg-node/fetch@^0.8.1", "@whatwg-node/fetch@^0.8.2", "@whatwg-node/fetch@^0.8.4": - version "0.8.5" - resolved "https://registry.yarnpkg.com/@whatwg-node/fetch/-/fetch-0.8.5.tgz#441936a43d9ec421d42396a7ab5337f034b8271f" - integrity sha512-pNvoYGPa0hjbVqs+r0blMjaWlrMeb0snwRCTAEdng5Jm00PY9wO4K8m99BmfLn6WED0FKOXTlF53+en/3xybqw== + version "0.8.8" + resolved "https://registry.yarnpkg.com/@whatwg-node/fetch/-/fetch-0.8.8.tgz#48c6ad0c6b7951a73e812f09dd22d75e9fa18cae" + integrity sha512-CdcjGC2vdKhc13KKxgsc6/616BQ7ooDIgPeTuAiE8qfCnS0mGzcfCOoZXypQSz73nxI+GWc7ZReIAVhxoE1KCg== dependencies: "@peculiar/webcrypto" "^1.4.0" - "@whatwg-node/node-fetch" "^0.3.3" + "@whatwg-node/node-fetch" "^0.3.6" busboy "^1.6.0" - urlpattern-polyfill "^7.0.0" + urlpattern-polyfill "^8.0.0" web-streams-polyfill "^3.2.1" -"@whatwg-node/node-fetch@^0.3.3": - version "0.3.5" - resolved "https://registry.yarnpkg.com/@whatwg-node/node-fetch/-/node-fetch-0.3.5.tgz#a0e76ef72c33b0c81728421ce6d7d97257541ecb" - integrity sha512-96crxTZn6L+xFefEKkeAZrGmZ7WUXDYUzAfBf1VtrdS5YozLnFbj9/CNZ8S2LdRS2iL3pMSCvE1xD1wiIAXkAA== +"@whatwg-node/node-fetch@^0.3.6": + version "0.3.6" + resolved "https://registry.yarnpkg.com/@whatwg-node/node-fetch/-/node-fetch-0.3.6.tgz#e28816955f359916e2d830b68a64493124faa6d0" + integrity sha512-w9wKgDO4C95qnXZRwZTfCmLWqyRnooGjcIwG0wADWjw9/HN0p7dtvtgSvItZtUyNteEvgTrd8QojNEqV6DAGTA== dependencies: - "@whatwg-node/events" "^0.0.2" + "@whatwg-node/events" "^0.0.3" busboy "^1.6.0" fast-querystring "^1.1.1" fast-url-parser "^1.1.3" @@ -4376,6 +4170,13 @@ agent-base@6: dependencies: debug "4" +agent-base@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.0.2.tgz#d6c854c21fe5b8c8f1c69ac12a7d21a3d1be2859" + integrity sha512-k2/tQ1+8Zf50dEUJWklUP80LcE/+Ph+OJ6cf2Ff2fD/c/TtCe6ofnCoNMz9UnyxOQYlaAALZtEWETzn+1JjfHg== + dependencies: + debug "^4.3.4" + aggregate-error@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" @@ -4486,9 +4287,9 @@ ansicolors@~0.3.2: integrity sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg== antlr4@^4.11.0: - version "4.12.0" - resolved "https://registry.yarnpkg.com/antlr4/-/antlr4-4.12.0.tgz#e2323fbb057c77068a174914b0533398aeaba56a" - integrity sha512-23iB5IzXJZRZeK9TigzUyrNc9pSmNqAerJRBcNq1ETrmttMWRgaYZzC561IgEO3ygKsDJTYDTozABXa4b/fTQQ== + version "4.13.0" + resolved "https://registry.yarnpkg.com/antlr4/-/antlr4-4.13.0.tgz#25c0b17f0d9216de114303d38bafd6f181d5447f" + integrity sha512-zooUbt+UscjnWyOrsuY/tVFL4rwrAGwOivpQmvmUDE22hy/lUA467Rc1rcixyRwcRUIXFYBwv7+dClDSHdmmew== antlr4ts@^0.5.0-alpha.4: version "0.5.0-alpha.4" @@ -4521,7 +4322,7 @@ anymatch@^2.0.0: micromatch "^3.1.4" normalize-path "^2.1.1" -anymatch@~3.1.1, anymatch@~3.1.2: +anymatch@~3.1.2: version "3.1.3" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== @@ -4847,9 +4648,9 @@ axios@^0.21.1, axios@^0.21.2, axios@^0.21.4: follow-redirects "^1.14.0" b4a@^1.0.1: - version "1.6.3" - resolved "https://registry.yarnpkg.com/b4a/-/b4a-1.6.3.tgz#cce6e8a2f0d0774e5fe8062086827e979970266d" - integrity sha512-aX6/FqpWQve8VN9kyTExy7GlmwNShvxcCWWD5QVR3ZbRlyBGtCrG5Autu95xxSPH4CRs+5PSV4d7PRnWpmqFlA== + version "1.6.4" + resolved "https://registry.yarnpkg.com/b4a/-/b4a-1.6.4.tgz#ef1c1422cae5ce6535ec191baeed7567443f36c9" + integrity sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw== babel-code-frame@^6.26.0: version "6.26.0" @@ -5611,12 +5412,6 @@ blake2b-wasm@^2.4.0: b4a "^1.0.1" nanoassert "^2.0.0" -"blake2b-wasm@https://github.com/jbaylina/blake2b-wasm.git": - version "2.1.0" - resolved "https://github.com/jbaylina/blake2b-wasm.git#0d5f024b212429c7f50a7f533aa3a2406b5b42b3" - dependencies: - nanoassert "^1.0.0" - blake2b@^2.1.3: version "2.1.4" resolved "https://registry.yarnpkg.com/blake2b/-/blake2b-2.1.4.tgz#817d278526ddb4cd673bfb1af16d1ad61e393ba3" @@ -6138,9 +5933,9 @@ camelcase@^6.0.0: integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30001449, caniuse-lite@^1.0.30001464: - version "1.0.30001480" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001480.tgz#9bbd35ee44c2480a1e3a3b9f4496f5066817164a" - integrity sha512-q7cpoPPvZYgtyC4VaBSN0Bt+PJ4c4EYRf0DrduInOz2SkFpHD5p3LnvEpqBp7UnJn+8x1Ogl1s38saUxe+ihQQ== + version "1.0.30001489" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001489.tgz#ca82ee2d4e4dbf2bd2589c9360d3fcc2c7ba3bd8" + integrity sha512-x1mgZEXK8jHIfAxm+xgdpHpk50IN3z3q3zP261/WS+uvePxW8izXuCu6AHz0lkuYTlATDehiZ/tNyYBdSQsOUQ== capital-case@^1.0.4: version "1.0.4" @@ -6182,9 +5977,9 @@ cbor@^8.1.0: nofilter "^3.1.0" cborg@^1.5.4, cborg@^1.6.0: - version "1.10.1" - resolved "https://registry.yarnpkg.com/cborg/-/cborg-1.10.1.tgz#24cfe52c69ec0f66f95e23dc57f2086954c8d718" - integrity sha512-et6Qm8MOUY2kCWa5GKk2MlBVoPjHv0hQBmlzI/Z7+5V3VJCeIkGehIB3vWknNsm2kOkAIs6wEKJFJo8luWQQ/w== + version "1.10.2" + resolved "https://registry.yarnpkg.com/cborg/-/cborg-1.10.2.tgz#83cd581b55b3574c816f82696307c7512db759a1" + integrity sha512-b3tFPA9pUr2zCUiCfRd2+wok2/LBSNUMKOuRRok+WlvvAgEt/PlbgPTsZUcwCOs53IJvLgTp0eotwtosE6njug== chai@^4.2.0, chai@^4.3.7: version "4.3.7" @@ -6302,21 +6097,6 @@ checkpoint-store@^1.1.0: dependencies: functional-red-black-tree "^1.0.1" -chokidar@3.5.1: - version "3.5.1" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" - integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== - 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.5.0" - optionalDependencies: - fsevents "~2.3.1" - chokidar@3.5.3, "chokidar@>=3.0.0 <4.0.0", chokidar@^3.4.0, chokidar@^3.4.1, chokidar@^3.5.3: version "3.5.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" @@ -6417,38 +6197,6 @@ circom@0.5.33: tmp-promise "^2.0.2" wasmbuilder "0.0.10" -circom@0.5.38: - version "0.5.38" - resolved "https://registry.yarnpkg.com/circom/-/circom-0.5.38.tgz#c099fb196085837575fb266f37b0516b1ec56eb5" - integrity sha512-PFlXto8gDysUlwk6z/GYbn1Mv5BtW9BI4769N9gSP0/7KDNSqLNyVmL4DgMLc67/EpG4qJLGch3SdgzQD+/cfw== - dependencies: - chai "^4.2.0" - circom_runtime "0.1.12" - fastfile "0.0.18" - ffiasm "0.1.1" - ffjavascript "0.2.22" - ffwasm "0.0.7" - fnv-plus "^1.3.1" - r1csfile "0.0.16" - tmp-promise "^2.0.2" - wasmbuilder "0.0.10" - -circom_runtime@0.1.12: - version "0.1.12" - resolved "https://registry.yarnpkg.com/circom_runtime/-/circom_runtime-0.1.12.tgz#e1a302c6fe8cec390f035c2e7a8496cfa7cfb4a2" - integrity sha512-R+QT9HS9w71cmGmWIn+PSyD3aHyR5JZBiVvxOjCfn12wwnpuFwBjdMG7he+v8h/oQD1mDRAu2KrBeL4mAt5s4A== - dependencies: - ffjavascript "0.2.34" - fnv-plus "^1.3.1" - -circom_runtime@0.1.13: - version "0.1.13" - resolved "https://registry.yarnpkg.com/circom_runtime/-/circom_runtime-0.1.13.tgz#90f86f35d989c48d4c27595b94664ea6918fbede" - integrity sha512-vmv19/0p5OTe5uCI7PWqPtB5vPoYWjczqKYnabaC5HOxX99R4K1MuNqEXsNEAoEfZrmfAQd7vXLcATN9NVnsPA== - dependencies: - ffjavascript "0.2.35" - fnv-plus "^1.3.1" - circom_runtime@0.1.8: version "0.1.8" resolved "https://registry.yarnpkg.com/circom_runtime/-/circom_runtime-0.1.8.tgz#d967a1618fe5290849f9c0bbffb6b97b95c0f1c8" @@ -6468,6 +6216,11 @@ circomlib@0.5.1: ffjavascript "0.1.0" web3-utils "^1.3.0" +circomlib@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/circomlib/-/circomlib-2.0.5.tgz#183c703e53ed7d011811842dbeeeb9819f4cc1d6" + integrity sha512-O7NQ8OS+J4eshBuoy36z/TwQU0YHw8W3zxZcs4hVwpEll3e4hDm3mgkIPqItN8FDeLEKZFK3YeT/+k8TiLF3/A== + circomlibjs@0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/circomlibjs/-/circomlibjs-0.0.2.tgz#f52b564b3b81fbf3c99478fa7d5d220d0a82cbf4" @@ -6490,6 +6243,16 @@ circomlibjs@0.0.8: web3 "^1.6.0" web3-utils "^1.6.0" +circomlibjs@^0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/circomlibjs/-/circomlibjs-0.1.7.tgz#9f5a7d9a23323744b11ee456b05b0cd81f48b554" + integrity sha512-GRAUoAlKAsiiTa+PA725G9RmEmJJRc8tRFxw/zKktUxlQISGznT4hH4ESvW8FNTsrGg/nNd06sGP/Wlx0LUHVg== + dependencies: + blake-hash "^2.0.0" + blake2b "^2.1.3" + ethers "^5.5.1" + ffjavascript "^0.2.45" + class-is@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/class-is/-/class-is-1.1.0.tgz#9d3c0fba0440d211d843cec3dedfa48055005825" @@ -6543,9 +6306,9 @@ cli-progress@^3.12.0: string-width "^4.2.3" cli-spinners@^2.2.0, cli-spinners@^2.5.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.8.0.tgz#e97a3e2bd00e6d85aa0c13d7f9e3ce236f7787fc" - integrity sha512-/eG5sJcvEIwxcdYM86k5tPwn0MUzkX5YY3eImTGpJOZgVe4SdTMY14vQpcxgBzJ0wXwAYrS8E+c3uHeK4JNyzQ== + version "2.9.0" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.0.tgz#5881d0ad96381e117bbe07ad91f2008fe6ffd8db" + integrity sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g== cli-table3@^0.6.0: version "0.6.3" @@ -6673,7 +6436,7 @@ color-name@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, color-name@~1.1.4: +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== @@ -6779,13 +6542,6 @@ concat-stream@^1.5.0, concat-stream@^1.5.1, concat-stream@^1.6.0, concat-stream@ readable-stream "^2.2.2" typedarray "^0.0.6" -config@^3.2.4: - version "3.3.9" - resolved "https://registry.yarnpkg.com/config/-/config-3.3.9.tgz#27fae95b43e0e1d5723e54143c090954d8e49572" - integrity sha512-G17nfe+cY7kR0wVpc49NCYvNtelm/pPy8czHoFkAgtV1lkmcp7DHtWCdDu+C9Z7gb2WVqa9Tm3uF9aKaPbCfhg== - dependencies: - json5 "^2.2.3" - console-browserify@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" @@ -6876,16 +6632,16 @@ copy-to-clipboard@^3.3.1: toggle-selection "^1.0.6" core-js-compat@^3.25.1: - version "3.30.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.30.1.tgz#961541e22db9c27fc48bfc13a3cafa8734171dfe" - integrity sha512-d690npR7MC6P0gq4npTl5n2VQeNAmUrJ90n+MHiKS7W2+xno4o3F5GDEuylSdi6EJ3VssibSGXOa1r3YXD3Mhw== + version "3.30.2" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.30.2.tgz#83f136e375babdb8c80ad3c22d67c69098c1dd8b" + integrity sha512-nriW1nuJjUgvkEjIot1Spwakz52V9YkYHZAQG6A1eCgC8AA1p0zngrQEP9R0+V6hji5XilWKG1Bd0YRppmGimA== dependencies: browserslist "^4.21.5" core-js-pure@^3.0.1: - version "3.30.1" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.30.1.tgz#7d93dc89e7d47b8ef05d7e79f507b0e99ea77eec" - integrity sha512-nXBEVpmUnNRhz83cHd9JRQC52cTMcuXAmR56+9dSMpRdpeA4I1PX6yjmhd71Eyc/wXNsdBdUDIj1QTIeZpU5Tg== + version "3.30.2" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.30.2.tgz#005a82551f4af3250dcfb46ed360fad32ced114e" + integrity sha512-p/npFUJXXBkCCTIlEGBdghofn00jWG6ZOtdoIXSJmAu2QBvN0IqpZXWweOytcwE6cfx8ZvVUy1vw8zxhe4Y2vg== core-js@^2.4.0, core-js@^2.5.0: version "2.6.12" @@ -7002,11 +6758,11 @@ cross-fetch@^2.1.0, cross-fetch@^2.1.1: whatwg-fetch "^2.0.4" cross-fetch@^3.1.4, cross-fetch@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f" - integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw== + version "3.1.6" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.6.tgz#bae05aa31a4da760969756318feeee6e70f15d6c" + integrity sha512-riRvo06crlE8HiqOwIpQhxwdOk4fOeR7FVM/wXoxchFEqMNUjvbs3bfo4OTgMEMHzppd4DxFBDbyySj8Cv781g== dependencies: - node-fetch "2.6.7" + node-fetch "^2.6.11" cross-spawn@^6.0.5: version "6.0.5" @@ -7072,10 +6828,10 @@ cssstyle@^2.3.0: dependencies: cssom "~0.3.6" -csstype@^2.6.8: - version "2.6.21" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.21.tgz#2efb85b7cc55c80017c66a5ad7cbd931fda3a90e" - integrity sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w== +csstype@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" + integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== cyclist@^1.0.1: version "1.0.1" @@ -7106,7 +6862,7 @@ data-urls@^3.0.2: whatwg-mimetype "^3.0.0" whatwg-url "^11.0.0" -dataloader@2.2.2, dataloader@^2.2.2: +dataloader@^2.2.2: version "2.2.2" resolved "https://registry.yarnpkg.com/dataloader/-/dataloader-2.2.2.tgz#216dc509b5abe39d43a9b9d97e6e5e473dfbe3e0" integrity sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g== @@ -7179,13 +6935,6 @@ debug@4, debug@4.3.4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, de dependencies: ms "2.1.2" -debug@4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" - integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== - dependencies: - ms "2.1.2" - debug@^3.1.0, debug@^3.2.6: version "3.2.7" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" @@ -7299,7 +7048,7 @@ deferred-leveldown@~5.3.0: abstract-leveldown "~6.2.1" inherits "^2.0.3" -define-properties@^1.1.3, define-properties@^1.1.4: +define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5" integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA== @@ -7597,9 +7346,9 @@ electron-fetch@^1.7.2: encoding "^0.1.13" electron-to-chromium@^1.3.47, electron-to-chromium@^1.4.284: - version "1.4.368" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.368.tgz#75901f97d3e23da2e66feb1e61fbb8e70ac96430" - integrity sha512-e2aeCAixCj9M7nJxdB/wDjO6mbYX+lJJxSJCXDzlr5YPGYVofuJwGN9nKg2o6wWInjX6XmxRinn3AeJMK81ltw== + version "1.4.404" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.404.tgz#16baf653a7a2613e221da61480ad02fe84e40231" + integrity sha512-te57sWvQdpxmyd1GiswaodKdXdPgn9cN4ht8JlNa04QgtrfnUdWEo1261rY2vaC6TKaiHn0E7QerJWPKFCvMVw== elliptic@6.5.4, elliptic@^6.4.0, elliptic@^6.5.2, elliptic@^6.5.3, elliptic@^6.5.4: version "6.5.4" @@ -7741,7 +7490,7 @@ error-ex@^1.2.0, error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.19.0, es-abstract@^1.20.4: +es-abstract@^1.19.0, es-abstract@^1.20.4, es-abstract@^1.21.2: version "1.21.2" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.21.2.tgz#a56b9695322c8a185dc25975aa3b8ec31d0e7eff" integrity sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg== @@ -7976,32 +7725,32 @@ esbuild@^0.15.9: esbuild-windows-arm64 "0.15.18" esbuild@^0.17.5: - version "0.17.17" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.17.tgz#fa906ab11b11d2ed4700f494f4f764229b25c916" - integrity sha512-/jUywtAymR8jR4qsa2RujlAF7Krpt5VWi72Q2yuLD4e/hvtNcFQ0I1j8m/bxq238pf3/0KO5yuXNpuLx8BE1KA== + version "0.17.19" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.19.tgz#087a727e98299f0462a3d0bcdd9cd7ff100bd955" + integrity sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw== optionalDependencies: - "@esbuild/android-arm" "0.17.17" - "@esbuild/android-arm64" "0.17.17" - "@esbuild/android-x64" "0.17.17" - "@esbuild/darwin-arm64" "0.17.17" - "@esbuild/darwin-x64" "0.17.17" - "@esbuild/freebsd-arm64" "0.17.17" - "@esbuild/freebsd-x64" "0.17.17" - "@esbuild/linux-arm" "0.17.17" - "@esbuild/linux-arm64" "0.17.17" - "@esbuild/linux-ia32" "0.17.17" - "@esbuild/linux-loong64" "0.17.17" - "@esbuild/linux-mips64el" "0.17.17" - "@esbuild/linux-ppc64" "0.17.17" - "@esbuild/linux-riscv64" "0.17.17" - "@esbuild/linux-s390x" "0.17.17" - "@esbuild/linux-x64" "0.17.17" - "@esbuild/netbsd-x64" "0.17.17" - "@esbuild/openbsd-x64" "0.17.17" - "@esbuild/sunos-x64" "0.17.17" - "@esbuild/win32-arm64" "0.17.17" - "@esbuild/win32-ia32" "0.17.17" - "@esbuild/win32-x64" "0.17.17" + "@esbuild/android-arm" "0.17.19" + "@esbuild/android-arm64" "0.17.19" + "@esbuild/android-x64" "0.17.19" + "@esbuild/darwin-arm64" "0.17.19" + "@esbuild/darwin-x64" "0.17.19" + "@esbuild/freebsd-arm64" "0.17.19" + "@esbuild/freebsd-x64" "0.17.19" + "@esbuild/linux-arm" "0.17.19" + "@esbuild/linux-arm64" "0.17.19" + "@esbuild/linux-ia32" "0.17.19" + "@esbuild/linux-loong64" "0.17.19" + "@esbuild/linux-mips64el" "0.17.19" + "@esbuild/linux-ppc64" "0.17.19" + "@esbuild/linux-riscv64" "0.17.19" + "@esbuild/linux-s390x" "0.17.19" + "@esbuild/linux-x64" "0.17.19" + "@esbuild/netbsd-x64" "0.17.19" + "@esbuild/openbsd-x64" "0.17.19" + "@esbuild/sunos-x64" "0.17.19" + "@esbuild/win32-arm64" "0.17.19" + "@esbuild/win32-ia32" "0.17.19" + "@esbuild/win32-x64" "0.17.19" escalade@^3.1.1: version "3.1.1" @@ -8053,16 +7802,16 @@ eslint-plugin-prettier@^4.0.0: prettier-linter-helpers "^1.0.0" eslint-plugin-vue@^9.8.0: - version "9.11.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.11.0.tgz#99a247455c02181f24d9240d422380fd16dd630c" - integrity sha512-bBCJAZnkBV7ATH4Z1E7CvN3nmtS4H7QUU3UBxPdo8WohRU+yHjnQRALpTbxMVcz0e4Mx3IyxIdP5HYODMxK9cQ== + version "9.14.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.14.0.tgz#73004a62d794e276a60d471114d81ed8887efcb8" + integrity sha512-4O7EuiqPGVQA1wYCzLvCzsBTv9JIPHLHhrf0k55DLzbwtmJbSw2TKS0G/l7pOwi9RWMSkjIT7ftChU5gZpgnJw== dependencies: "@eslint-community/eslint-utils" "^4.3.0" natural-compare "^1.4.0" nth-check "^2.0.1" postcss-selector-parser "^6.0.9" semver "^7.3.5" - vue-eslint-parser "^9.0.1" + vue-eslint-parser "^9.3.0" xml-name-validator "^4.0.0" eslint-scope@^4.0.3: @@ -8101,20 +7850,20 @@ eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^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@^3.3.0, eslint-visitor-keys@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz#c7f0f956124ce677047ddbc192a68f999454dedc" - integrity sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ== +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz#c22c48f48942d08ca824cc526211ae400478a994" + integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA== -eslint@^8.28.0: - version "8.38.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.38.0.tgz#a62c6f36e548a5574dd35728ac3c6209bd1e2f1a" - integrity sha512-pIdsD2jwlUGf/U38Jv97t8lq6HpaU/G9NKbYmpWpZGw3LdTNhZLbJePqxOXGB5+JEKfOPU/XLxYxFh03nr1KTg== +eslint@^8.28.0, eslint@^8.31.0: + version "8.41.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.41.0.tgz#3062ca73363b4714b16dbc1e60f035e6134b6f1c" + integrity sha512-WQDQpzGBOP5IrXPo4Hc0814r4/v2rrIsB0rhT7jtunIalgg6gYXWhRMOejVO8yH21T/FGaxjmFjBMNqcIlmH1Q== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.4.0" - "@eslint/eslintrc" "^2.0.2" - "@eslint/js" "8.38.0" + "@eslint/eslintrc" "^2.0.3" + "@eslint/js" "8.41.0" "@humanwhocodes/config-array" "^0.11.8" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" @@ -8124,9 +7873,9 @@ eslint@^8.28.0: debug "^4.3.2" doctrine "^3.0.0" escape-string-regexp "^4.0.0" - eslint-scope "^7.1.1" - eslint-visitor-keys "^3.4.0" - espree "^9.5.1" + eslint-scope "^7.2.0" + eslint-visitor-keys "^3.4.1" + espree "^9.5.2" esquery "^1.4.2" esutils "^2.0.2" fast-deep-equal "^3.1.3" @@ -8134,13 +7883,12 @@ eslint@^8.28.0: find-up "^5.0.0" glob-parent "^6.0.2" globals "^13.19.0" - grapheme-splitter "^1.0.4" + graphemer "^1.4.0" ignore "^5.2.0" import-fresh "^3.0.0" imurmurhash "^0.1.4" is-glob "^4.0.0" is-path-inside "^3.0.3" - js-sdsl "^4.1.4" js-yaml "^4.1.0" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.4.1" @@ -8152,69 +7900,23 @@ eslint@^8.28.0: strip-json-comments "^3.1.0" text-table "^0.2.0" -eslint@^8.31.0: - version "8.39.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.39.0.tgz#7fd20a295ef92d43809e914b70c39fd5a23cf3f1" - integrity sha512-mwiok6cy7KTW7rBpo05k6+p4YVZByLNjAZ/ACB9DRCu4YDRwjXI01tWHp6KAUWelsBetTxKK/2sHB0vdS8Z2Og== - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@eslint-community/regexpp" "^4.4.0" - "@eslint/eslintrc" "^2.0.2" - "@eslint/js" "8.39.0" - "@humanwhocodes/config-array" "^0.11.8" - "@humanwhocodes/module-importer" "^1.0.1" - "@nodelib/fs.walk" "^1.2.8" - ajv "^6.10.0" - 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.0" - eslint-visitor-keys "^3.4.0" - espree "^9.5.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" - grapheme-splitter "^1.0.4" - ignore "^5.2.0" - import-fresh "^3.0.0" - imurmurhash "^0.1.4" - is-glob "^4.0.0" - is-path-inside "^3.0.3" - js-sdsl "^4.1.4" - 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.1" - strip-ansi "^6.0.1" - strip-json-comments "^3.1.0" - text-table "^0.2.0" - -espree@^6.0.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a" - integrity sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw== +espree@^6.0.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a" + integrity sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw== dependencies: acorn "^7.1.1" acorn-jsx "^5.2.0" eslint-visitor-keys "^1.1.0" -espree@^9.3.1, espree@^9.5.1: - version "9.5.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.1.tgz#4f26a4d5f18905bf4f2e0bd99002aab807e96dd4" - integrity sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg== +espree@^9.3.1, espree@^9.5.2: + version "9.5.2" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.2.tgz#e994e7dc33a082a7a82dceaf12883a829353215b" + integrity sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw== dependencies: acorn "^8.8.0" acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.4.0" + eslint-visitor-keys "^3.4.1" esprima@^4.0.0, esprima@^4.0.1, esprima@~4.0.0: version "4.0.1" @@ -8737,7 +8439,7 @@ ethers@^4.0.45: uuid "2.0.1" xmlhttprequest "1.8.0" -ethers@^5.0.1, ethers@^5.0.2, ethers@^5.0.3, ethers@^5.5.2, ethers@^5.7.1, ethers@^5.7.2: +ethers@^5.0.1, ethers@^5.0.2, ethers@^5.0.3, ethers@^5.5.1, ethers@^5.5.2, ethers@^5.7.1, ethers@^5.7.2: version "5.7.2" resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.2.tgz#3a7deeabbb8c030d4126b24f84e525466145872e" integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg== @@ -8998,9 +8700,9 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== fast-diff@^1.1.2, fast-diff@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" - integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== + version "1.3.0" + resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" + integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== fast-fifo@^1.0.0: version "1.2.0" @@ -9062,11 +8764,6 @@ fastfile@0.0.18: resolved "https://registry.yarnpkg.com/fastfile/-/fastfile-0.0.18.tgz#2b69bbbfd2fcccc9bc8099c27de1379b89756a4b" integrity sha512-q03PTKc+wptis4WmuFOwPNQx2p5myFUrl/dMgRlW9mymc1Egyc14JPHgiGnWK+sJ0+dBl2Vwtfh5GfSQltYOpw== -fastfile@0.0.19: - version "0.0.19" - resolved "https://registry.yarnpkg.com/fastfile/-/fastfile-0.0.19.tgz#02cef9ade123b0a74adb794f4a1abcfa5719fd46" - integrity sha512-tz9nWR5KYb6eR2odFQ7oxqEkx8F3YQZ6NBJoJR92YEG3DqYOqyxMck8PKvTVNKx3uwvOqGnLXNScnqpdHRdHGQ== - fastq@^1.6.0: version "1.15.0" resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" @@ -9140,16 +8837,6 @@ ffjavascript@0.2.22: wasmcurves "0.0.12" worker-threads "^1.0.0" -ffjavascript@0.2.34: - version "0.2.34" - resolved "https://registry.yarnpkg.com/ffjavascript/-/ffjavascript-0.2.34.tgz#e0607d1635ad06e8519268af475bc90deac60fbd" - integrity sha512-fq/qfJluC4spiOD1lp5jfckZVnS0o0kI5eKXVLw7UKwIwbNr+NBMBveBVcidSfMizF87T6wb7NBtLSdckQiAnQ== - dependencies: - big-integer "^1.6.48" - mocha "^8.2.1" - wasmcurves "0.0.14" - worker-threads "^1.0.0" - ffjavascript@0.2.35: version "0.2.35" resolved "https://registry.yarnpkg.com/ffjavascript/-/ffjavascript-0.2.35.tgz#9166d95173b1c0a743b455bb03a72b581922a42e" @@ -9159,13 +8846,13 @@ ffjavascript@0.2.35: wasmcurves "0.0.14" web-worker "^1.0.0" -ffjavascript@^0.2.30, ffjavascript@^0.2.38, ffjavascript@^0.2.39: - version "0.2.57" - resolved "https://registry.yarnpkg.com/ffjavascript/-/ffjavascript-0.2.57.tgz#ba1be96015b2688192e49f2f4de2cc5150fd8594" - integrity sha512-V+vxZ/zPNcthrWmqfe/1YGgqdkTamJeXiED0tsk7B84g40DKlrTdx47IqZuiygqAVG6zMw4qYuvXftIJWsmfKQ== +ffjavascript@^0.2.38, ffjavascript@^0.2.39, ffjavascript@^0.2.45: + version "0.2.59" + resolved "https://registry.yarnpkg.com/ffjavascript/-/ffjavascript-0.2.59.tgz#b2f836082587fab333dfb181b909a188f80036f3" + integrity sha512-QssOEUv+wilz9Sg7Zaj6KWAm7QceOAEsFuEBTltUsDo1cjn11rA/LGYvzFBPbzNfxRlZxwgJ7uxpCQcdDlrNfw== dependencies: wasmbuilder "0.0.16" - wasmcurves "0.2.0" + wasmcurves "0.2.1" web-worker "^1.2.0" ffwasm@0.0.7: @@ -9200,7 +8887,7 @@ file-uri-to-path@1.0.0: resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== -filelist@^1.0.1: +filelist@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5" integrity sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q== @@ -9361,11 +9048,11 @@ fnv-plus@^1.3.1: integrity sha512-Gz1EvfOneuFfk4yG458dJ3TLJ7gV19q3OM/vVvvHf7eT02Hm1DleB4edsia6ahbKgAYxO9gvyQ1ioWZR+a00Yw== focus-trap@^7.4.0: - version "7.4.0" - resolved "https://registry.yarnpkg.com/focus-trap/-/focus-trap-7.4.0.tgz#20f760a497f593b01d2e446168009c1f12ab0385" - integrity sha512-yI7FwUqU4TVb+7t6PaQ3spT/42r/KLEi8mtdGoQo2li/kFzmu9URmalTvw7xCCJtSOyhBxscvEAmvjeN9iHARg== + version "7.4.3" + resolved "https://registry.yarnpkg.com/focus-trap/-/focus-trap-7.4.3.tgz#a3dae73d44df359eb92bbf37b18e173e813b16c5" + integrity sha512-BgSSbK4GPnS2VbtZ50VtOv1Sti6DIkj3+LkVjiWMNjLeAp1SH1UlLx3ULu/DCu4vq5R4/uvTm+zrvsMsuYmGLg== dependencies: - tabbable "^6.1.1" + tabbable "^6.1.2" follow-redirects@^1.12.1, follow-redirects@^1.14.0: version "1.15.2" @@ -9568,7 +9255,7 @@ fsevents@^1.2.7: bindings "^1.5.0" nan "^2.12.1" -fsevents@~2.3.1, fsevents@~2.3.2: +fsevents@~2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== @@ -9593,7 +9280,7 @@ functional-red-black-tree@^1.0.1, functional-red-black-tree@~1.0.1: 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.2: +functions-have-names@^1.2.2, 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" integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== @@ -9675,12 +9362,13 @@ get-func-name@^2.0.0: 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: - version "1.2.0" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.0.tgz#7ad1dc0535f3a2904bba075772763e5051f6d05f" - integrity sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q== + version "1.2.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82" + 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" get-iterator@^1.0.2: @@ -9750,7 +9438,7 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.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.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== @@ -9798,7 +9486,7 @@ glob@9.3.4: minipass "^4.2.4" path-scurry "^1.6.1" -glob@^7.0.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.5, glob@~7.2.3: +glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.5, glob@~7.2.3: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -10002,6 +9690,11 @@ grapheme-splitter@^1.0.4: resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== +graphemer@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== + graphql-config@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/graphql-config/-/graphql-config-4.5.0.tgz#257c2338950b8dce295a27f75c5f6c39f8f777b2" @@ -10035,9 +9728,9 @@ graphql-request@5.1.0: form-data "^3.0.0" graphql-request@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/graphql-request/-/graphql-request-6.0.0.tgz#9c8b6a0c341f289e049936d03cc9205300faae1c" - integrity sha512-2BmHTuglonjZvmNVw6ZzCfFlW/qkIPds0f+Qdi/Lvjsl3whJg2uvHmSvHnLWhUTEw6zcxPYAHiZoPvSVKOZ7Jw== + version "6.1.0" + resolved "https://registry.yarnpkg.com/graphql-request/-/graphql-request-6.1.0.tgz#f4eb2107967af3c7a5907eb3131c671eac89be4f" + integrity sha512-p+XPfS4q7aIpKVcgmnZKhMNqhltk20hfXtkaIkTfjjmiKMJ5xrt5c743cL03y/K7y1rg3WrIC49xGiEQ4mxdNw== dependencies: "@graphql-typed-document-node/core" "^3.2.0" cross-fetch "^3.1.5" @@ -10064,11 +9757,6 @@ graphql@^16.6.0: resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.6.0.tgz#c2dcffa4649db149f6282af726c8c83f1c7c5fdb" integrity sha512-KPIBPDlW7NxrbT/eh4qPXz5FiFdL5UbaA0XUNz2Rp3Z3hqBSkbj0GVjwFDztsWVauZUWsbKHgMg++sk8UX0bkw== -growl@1.10.5: - version "1.10.5" - resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" - integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== - gtoken@^5.0.4: version "5.3.2" resolved "https://registry.yarnpkg.com/gtoken/-/gtoken-5.3.2.tgz#deb7dc876abe002178e0515e383382ea9446d58f" @@ -10103,16 +9791,21 @@ hard-rejection@^2.1.0: resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== -hardhat-contract-sizer@^2.6.1: - version "2.8.0" - resolved "https://registry.yarnpkg.com/hardhat-contract-sizer/-/hardhat-contract-sizer-2.8.0.tgz#730a9bf35ed200ba57b6865bd3f459a91c90f205" - integrity sha512-jXt2Si3uIDx5z99J+gvKa0yvIw156pE4dpH9X/PvTQv652BUd+qGj7WT93PXnHXGh5qhQLkjDYeZMYNOThfjFg== +hardhat-artifactor@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/hardhat-artifactor/-/hardhat-artifactor-0.2.0.tgz#940c82500653a2623ed89f7dd24dc3bd76de6bb9" + integrity sha512-034c0Ye3PjnPbBz6Adz7bNZ7T4LdPTSkjnzsBxToJKiqU4f4CwowFOqwSS0RqO2t9A7w/aWR49pLwbNzpVuDgQ== + +hardhat-contract-sizer@^2.0.3, hardhat-contract-sizer@^2.6.1: + version "2.9.0" + resolved "https://registry.yarnpkg.com/hardhat-contract-sizer/-/hardhat-contract-sizer-2.9.0.tgz#2db75a676034ad9657cfe38793d38514ed6349a7" + integrity sha512-0I5lJo0iVPfK3YQNRv+zF4KHcdPbXPp9VCCOTcpDK/mfjWHiPxQwZv7eVt9S1JjvegjAVRtJPe9U5zQtd8LJGA== dependencies: chalk "^4.0.0" cli-table3 "^0.6.0" strip-ansi "^6.0.0" -hardhat@^2.12.5: +hardhat@^2.12.2, hardhat@^2.12.5: version "2.14.0" resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.14.0.tgz#b60c74861494aeb1b50803cf04cc47865a42b87a" integrity sha512-73jsInY4zZahMSVFurSK+5TNCJTXMv+vemvGia0Ac34Mm19fYp6vEPVGF3sucbumszsYxiTT2TbS8Ii2dsDSoQ== @@ -10202,7 +9895,7 @@ has-proto@^1.0.1: 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.1, 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.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== @@ -10376,6 +10069,14 @@ http-proxy-agent@^5.0.0: agent-base "6" debug "4" +http-proxy-agent@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-6.1.0.tgz#9bbaebd7d5afc8fae04a5820932b487405b95978" + integrity sha512-75t5ACHLOMnz/KsDAS4BdHx4J0sneT/HW+Sz070NR+n7RZ7SmYXYn2FXq6D0XwQid8hYgRVf6HZJrYuGzaEqtw== + dependencies: + agent-base "^7.0.2" + debug "^4.3.4" + 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" @@ -10421,6 +10122,14 @@ https-proxy-agent@^5.0.0, https-proxy-agent@^5.0.1: agent-base "6" debug "4" +https-proxy-agent@^6.0.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-6.2.0.tgz#58c525a299663d958556969a8e3536dd1e007485" + integrity sha512-4xhCnMpxR9fupa7leh9uJK2P/qjYIeaM9uZ9c1bi1JDSwX2VH9NDk/oKSToNX4gBKa2WT31Mldne7e26ckohLQ== + dependencies: + agent-base "^7.0.2" + debug "4" + human-signals@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" @@ -10623,11 +10332,6 @@ internal-slot@^1.0.5: has "^1.0.3" side-channel "^1.0.4" -interpret@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" - integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== - invariant@^2.2.2, invariant@^2.2.4: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" @@ -11013,9 +10717,9 @@ is-circular@^1.0.2: integrity sha512-YttjnrswnUYRVJvxCvu8z+PGMUSzC2JttP0OEXezlAEdp3EXzhf7IZ3j0gRAybJBQupedIZFhY61Tga6E0qASA== is-core-module@^2.11.0, is-core-module@^2.5.0: - version "2.12.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.0.tgz#36ad62f6f73c8253fd6472517a12483cf03e7ec4" - integrity sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ== + version "2.12.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd" + integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg== dependencies: has "^1.0.3" @@ -11372,7 +11076,7 @@ isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== -isarray@^2.0.1: +isarray@^2.0.1, isarray@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== @@ -11498,14 +11202,14 @@ it-to-stream@^1.0.0: readable-stream "^3.6.0" jake@^10.8.5: - version "10.8.5" - resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.5.tgz#f2183d2c59382cb274226034543b9c03b8164c46" - integrity sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw== + version "10.8.6" + resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.6.tgz#227a96786a1e035214e0ba84b482d6223d41ef04" + integrity sha512-G43Ub9IYEFfu72sua6rzooi8V8Gz2lkfk48rW20vEWCGizeaEPlKB1Kh8JIA84yQbiAEfqlPmSpGgCKKxH3rDA== dependencies: async "^3.2.3" chalk "^4.0.2" - filelist "^1.0.1" - minimatch "^3.0.4" + filelist "^1.0.4" + minimatch "^3.1.2" jayson@4.0.0: version "4.0.0" @@ -11530,15 +11234,15 @@ jiti@1.17.1: resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.17.1.tgz#264daa43ee89a03e8be28c3d712ccc4eb9f1e8ed" integrity sha512-NZIITw8uZQFuzQimqjUxIrIcEdxYDFIe/0xYfIlVXTkiBjjyBEvgasj5bb0/cHtPRD/NziPbT312sFrkI5ALpw== -jiti@^1.17.1, jiti@^1.17.2: +jiti@^1.17.1, jiti@^1.18.2: version "1.18.2" resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.18.2.tgz#80c3ef3d486ebf2450d9335122b32d121f2a83cd" integrity sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg== jose@^4.11.4: - version "4.14.0" - resolved "https://registry.yarnpkg.com/jose/-/jose-4.14.0.tgz#c8c03579a0ba3598194c92ccca777d96adca8f48" - integrity sha512-LSA/XenLPwqk6e2L+PSUNuuY9G4NGsvjRWz6sJcUBmzTLEPJqQh46FHSUxnAQ64AWOkRO6bSXpy3yXuEKZkbIA== + version "4.14.4" + resolved "https://registry.yarnpkg.com/jose/-/jose-4.14.4.tgz#59e09204e2670c3164ee24cbfe7115c6f8bff9ca" + integrity sha512-j8GhLiKmUAh+dsFXlX1aJCbt5KMibuKb+d7j1JaOJG6s2UjX1PQlW+OKB/sD4a/5ZYF4RcmYmLSndOoU3Lt/3g== js-sdsl@^4.1.4: version "4.4.0" @@ -11565,7 +11269,7 @@ js-tokens@^3.0.2: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" integrity sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg== -js-yaml@3.14.1, js-yaml@^3.13.1, js-yaml@^3.14.1: +js-yaml@3.14.1, js-yaml@^3.14.1: version "3.14.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== @@ -11573,13 +11277,6 @@ js-yaml@3.14.1, js-yaml@^3.13.1, js-yaml@^3.14.1: argparse "^1.0.7" esprima "^4.0.0" -js-yaml@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.0.0.tgz#f426bc0ff4b4051926cd588c71113183409a121f" - integrity sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q== - dependencies: - argparse "^2.0.1" - js-yaml@4.1.0, js-yaml@^4.0.0, js-yaml@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" @@ -11765,7 +11462,7 @@ json5@^1.0.1: dependencies: minimist "^1.2.0" -json5@^2.1.2, json5@^2.2.0, json5@^2.2.2, json5@^2.2.3: +json5@^2.1.2, json5@^2.2.0, json5@^2.2.2: version "2.2.3" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== @@ -12189,7 +11886,7 @@ levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" -lilconfig@^2.0.5, lilconfig@^2.0.6: +lilconfig@^2.0.5, lilconfig@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== @@ -12433,13 +12130,6 @@ lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17 resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -log-symbols@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920" - integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA== - dependencies: - chalk "^4.0.0" - log-symbols@4.1.0, log-symbols@^4.0.0, log-symbols@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" @@ -12465,11 +12155,6 @@ log-update@^4.0.0: slice-ansi "^4.0.0" wrap-ansi "^6.2.0" -logplease@^1.2.15: - version "1.2.15" - resolved "https://registry.yarnpkg.com/logplease/-/logplease-1.2.15.tgz#3da442e93751a5992cc19010a826b08d0293c48a" - integrity sha512-jLlHnlsPSJjpwUfcNyUxXCl33AYg2cHhIf9QhGL2T4iPT0XPB+xP1LRKFPgIg1M/sg9kAJvy94w9CzBNrfnstA== - long@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" @@ -12554,10 +12239,10 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" -lru-cache@^9.0.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-9.1.0.tgz#19efafa9d08d1c08eb8efd78876075f0b8b1b07b" - integrity sha512-qFXQEwchrZcMVen2uIDceR8Tii6kCJak5rzDStfEM0qA3YLMswaxIEZO0DhIbJ3aqaJiDjt+3crlplOb0tDtKQ== +lru-cache@^9.1.1: + version "9.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-9.1.1.tgz#c58a93de58630b688de39ad04ef02ef26f1902f1" + integrity sha512-65/Jky17UwSb0BuB9V+MyDpsOtXKmYwzhyl+cOa9XUiI4uV2Ouy/2voFP3+al0BjZbJgMBD8FojMpAf+Z+qn4A== lru_map@^0.3.3: version "0.3.3" @@ -12579,66 +12264,22 @@ luxon@^3.1.1: resolved "https://registry.yarnpkg.com/luxon/-/luxon-3.3.0.tgz#d73ab5b5d2b49a461c47cedbc7e73309b4805b48" integrity sha512-An0UCfG/rSiqtAIiBPO0Y9/zAnHUZxAMiCpTd5h2smgsj7GGmcenvrvww2cqNA8/4A5ZrD1gJpHN2mIHZQF+Mg== -maci-circuits@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/maci-circuits/-/maci-circuits-0.10.0.tgz#12a379e039241184c43fde6c3568ee399f15a029" - integrity sha512-4wiRRyG7PMjC+ijKhGAjxQufOJVX2ZQhRdpg6EIszmsfogjdae2Y/MWWlzpvEqrRWg29wDG8a+p6R2+LVKkDwQ== - dependencies: - argparse "^1.0.10" - circom "0.5.38" - circomlib "0.5.1" - n-readlines "^1.0.1" - shelljs "^0.8.3" - snarkjs "0.3.59" - -"maci-cli@npm:@clrfund/maci-cli@0.10.2": - version "0.10.2" - resolved "https://registry.yarnpkg.com/@clrfund/maci-cli/-/maci-cli-0.10.2.tgz#bf6609e65061dedf4b65e4185c19460c3f67913c" - integrity sha512-4Ey5flMN/jMDoHh5mwcAdkcx4r/Nqq7tPqB9yhPKKOuBLKWJpsoPoBHLaKXFNTmIV7ada3dcaSGSXC2P33XAbw== - dependencies: - argparse "^1.0.10" - ethers "^4.0.45" - maci-circuits "^0.10.0" - maci-config "^0.10.0" - maci-contracts "^0.10.1" - maci-core "npm:@clrfund/maci-core@^0.10.2" - maci-crypto "npm:@clrfund/maci-crypto@^0.10.2" - maci-domainobjs "npm:@clrfund/maci-domainobjs@^0.10.2" - prompt-sync "4.2.0" - source-map-support "^0.5.19" - -maci-config@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/maci-config/-/maci-config-0.10.0.tgz#792524402c7705437cd670ca9caaaa09d6b90dca" - integrity sha512-D3ZRe0t7TDeppSiE3c4IJQqsuKNa2l2ObqF/PBWk+z+chPazehDdxKNhmSp+2LvVCwRKrOu0rwlQyzKxrdMvMA== - dependencies: - config "^3.2.4" - js-yaml "^3.13.1" - path "^0.12.7" - -maci-contracts@0.10.1, maci-contracts@^0.10.1: - version "0.10.1" - resolved "https://registry.yarnpkg.com/maci-contracts/-/maci-contracts-0.10.1.tgz#561316524a9b42d4e3eb3d463fc6e7efd3d186e0" - integrity sha512-t4RNznMrL5NdW1unCRkmNuzH1W8Pawk7YdmY2ov6qTa9/pc91MZeA6jQMWAo80cttTuKbls3alKhd3NeqioYdA== +maci-contracts@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/maci-contracts/-/maci-contracts-1.1.1.tgz#c09bb2db00e43ba54054bc6be86a8c73a85f8551" + integrity sha512-rW1O75YxHZZB5rR2HXQRplHKMol55Wcc5flkbcI0Aoy0lHem9iWr68LMqVdaNX8I8Ums+hKOzJS1rswGN6WmIg== dependencies: - "@openzeppelin/contracts" "~3.2.0" + "@nomiclabs/hardhat-ethers" "^2.2.1" + "@openzeppelin/contracts" "^4.8.0" argparse "^1.0.10" - circomlib "0.5.1" - ethers "^4.0.45" - module-alias "^2.2.2" - -"maci-core@npm:@clrfund/maci-core@^0.10.2": - version "0.10.2" - resolved "https://registry.yarnpkg.com/@clrfund/maci-core/-/maci-core-0.10.2.tgz#1414f59b0fd018da71dc05e44e31e374c030c527" - integrity sha512-JhRAiR6vUzwWtQw4EWlefVH1fQ7+S/mrr7xt6xbFssw4R3BNjkEQcOulG2rDyDHCIiBBWlCka2J+25LpEIY57Q== - dependencies: - ethers "^4.0.45" - maci-config "^0.10.0" - maci-crypto "npm:@clrfund/maci-crypto@^0.10.2" - maci-domainobjs "npm:@clrfund/maci-domainobjs@^0.10.2" + circomlib "^2.0.5" + circomlibjs "^0.1.7" + hardhat "^2.12.2" + hardhat-artifactor "^0.2.0" + hardhat-contract-sizer "^2.0.3" module-alias "^2.2.2" -"maci-crypto@npm:@clrfund/maci-crypto@0.10.2", "maci-crypto@npm:@clrfund/maci-crypto@^0.10.2": +"maci-crypto@npm:@clrfund/maci-crypto@0.10.2": version "0.10.2" resolved "https://registry.yarnpkg.com/@clrfund/maci-crypto/-/maci-crypto-0.10.2.tgz#9ff7d6490938ff93006524432bf177d17c88aed7" integrity sha512-uzE5IXbE5M21FUQzPShIfFJEfVokO/6ar0jPpDTCYtWFMeFeU5I6D5betljgQZnPteMkXSriui9ExTWmkUTwjw== @@ -12650,18 +12291,11 @@ maci-contracts@0.10.1, maci-contracts@^0.10.1: ffjavascript "0.2.35" optimisedmt "^0.0.7" -"maci-domainobjs@npm:@clrfund/maci-domainobjs@0.10.2", "maci-domainobjs@npm:@clrfund/maci-domainobjs@^0.10.2": +"maci-domainobjs@npm:@clrfund/maci-domainobjs@0.10.2": version "0.10.2" resolved "https://registry.yarnpkg.com/@clrfund/maci-domainobjs/-/maci-domainobjs-0.10.2.tgz#d1cdb735ae56f286cad2baa227ff47a3178d880c" integrity sha512-Schf4U9X6GibnK/TIeaZ5uJNtcreuP0cBdwfde/2VuA924Bo4P4MPZjXrSOvriP6KYnVt+1/REQE30nLBlVq9w== -magic-string@^0.25.7: - version "0.25.9" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c" - integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ== - dependencies: - sourcemap-codec "^1.4.8" - magic-string@^0.26.7: version "0.26.7" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.26.7.tgz#caf7daf61b34e9982f8228c4527474dac8981d6f" @@ -12676,6 +12310,13 @@ magic-string@^0.27.0: dependencies: "@jridgewell/sourcemap-codec" "^1.4.13" +magic-string@^0.30.0: + version "0.30.0" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.0.tgz#fd58a4748c5c4547338a424e90fa5dd17f4de529" + integrity sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ== + dependencies: + "@jridgewell/sourcemap-codec" "^1.4.13" + make-dir@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" @@ -12985,13 +12626,6 @@ minimalistic-crypto-utils@^1.0.1: resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== -minimatch@3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== - dependencies: - brace-expansion "^1.1.7" - minimatch@4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-4.2.3.tgz#b4dcece1d674dee104bb0fb833ebb85a78cbbca6" @@ -13020,13 +12654,6 @@ minimatch@^5.0.1, minimatch@^5.1.1: dependencies: brace-expansion "^2.0.1" -minimatch@^6.1.6: - version "6.2.0" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-6.2.0.tgz#2b70fd13294178c69c04dfc05aebdb97a4e79e42" - integrity sha512-sauLxniAmvnhhRjFwPNnJKaPFYyddAgbYdeUpHULtCT/GhzdCx/MDNy+Y40lBxTQUrMzDE8e0S43Z5uqfO0REg== - dependencies: - brace-expansion "^2.0.1" - minimatch@^8.0.2: version "8.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-8.0.4.tgz#847c1b25c014d4e9a7f68aaf63dedd668a626229" @@ -13034,6 +12661,13 @@ minimatch@^8.0.2: dependencies: brace-expansion "^2.0.1" +minimatch@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.1.tgz#8a555f541cf976c622daf078bb28f29fb927c253" + integrity sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w== + dependencies: + brace-expansion "^2.0.1" + minimist-options@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" @@ -13063,7 +12697,7 @@ minipass@^3.0.0: dependencies: yallist "^4.0.0" -minipass@^4.0.0, minipass@^4.2.4: +minipass@^4.2.4: version "4.2.8" resolved "https://registry.yarnpkg.com/minipass/-/minipass-4.2.8.tgz#f0010f64393ecfc1d1ccb5f582bcaf45f48e1a3a" integrity sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ== @@ -13073,6 +12707,11 @@ minipass@^5.0.0: resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== +"minipass@^5.0.0 || ^6.0.2": + version "6.0.2" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-6.0.2.tgz#542844b6c4ce95b202c0995b0a471f1229de4c81" + integrity sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w== + minizlib@^1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" @@ -13120,9 +12759,9 @@ mkdirp-promise@^5.0.1: mkdirp "*" mkdirp@*: - version "3.0.0" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-3.0.0.tgz#758101231418bda24435c0888a91d9bd91f1372d" - integrity sha512-7+JDnNsyCvZXoUJdkMR0oUE2AmAdsNXGTmRbiOjYIwQ6q+bL6NwrozGQdPcmYaNcrhH37F50HHBUzoaBV6FITQ== + version "3.0.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-3.0.1.tgz#e44e4c5607fb279c168241713cc6e0fea9adcb50" + integrity sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg== mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.5, mkdirp@~0.5.1: version "0.5.6" @@ -13136,15 +12775,15 @@ mkdirp@^1.0.3: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -mlly@^1.0.0, mlly@^1.1.0, mlly@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.2.0.tgz#f0f6c2fc8d2d12ea6907cd869066689b5031b613" - integrity sha512-+c7A3CV0KGdKcylsI6khWyts/CYrGTrRVo4R/I7u/cUsy0Conxa6LUhiEzVKIw14lc2L5aiO4+SeVe4TeGRKww== +mlly@^1.0.0, mlly@^1.1.0, mlly@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.2.1.tgz#cd50151f5712b651c5c379085157bcdff661133b" + integrity sha512-1aMEByaWgBPEbWV2BOPEMySRrzl7rIHXmQxam4DM8jVjalTQDjpN2ZKOLUrwyhfZQO7IXHml2StcHMhooDeEEQ== dependencies: acorn "^8.8.2" pathe "^1.1.0" - pkg-types "^1.0.2" - ufo "^1.1.1" + pkg-types "^1.0.3" + ufo "^1.1.2" mnemonist@^0.38.0: version "0.38.5" @@ -13180,37 +12819,6 @@ mocha@^10.0.0: yargs-parser "20.2.4" yargs-unparser "2.0.0" -mocha@^8.2.1: - version "8.4.0" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-8.4.0.tgz#677be88bf15980a3cae03a73e10a0fc3997f0cff" - integrity sha512-hJaO0mwDXmZS4ghXsvPVriOhsxQ7ofcpQdm8dE+jISUOKopitvnXFQmpRR7jd2K6VBG6E26gU3IAbXXGIbu4sQ== - dependencies: - "@ungap/promise-all-settled" "1.1.2" - ansi-colors "4.1.1" - browser-stdout "1.3.1" - chokidar "3.5.1" - debug "4.3.1" - diff "5.0.0" - escape-string-regexp "4.0.0" - find-up "5.0.0" - glob "7.1.6" - growl "1.10.5" - he "1.2.0" - js-yaml "4.0.0" - log-symbols "4.0.0" - minimatch "3.0.4" - ms "2.1.3" - nanoid "3.1.20" - serialize-javascript "5.0.1" - strip-json-comments "3.1.1" - supports-color "8.1.1" - which "2.0.2" - wide-align "1.1.3" - workerpool "6.1.0" - yargs "16.2.0" - yargs-parser "20.2.4" - yargs-unparser "2.0.0" - mock-fs@^4.1.0: version "4.14.0" resolved "https://registry.yarnpkg.com/mock-fs/-/mock-fs-4.14.0.tgz#ce5124d2c601421255985e6e94da80a7357b1b18" @@ -13385,11 +12993,6 @@ mz@^2.7.0: object-assign "^4.0.1" thenify-all "^1.0.0" -n-readlines@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/n-readlines/-/n-readlines-1.0.1.tgz#bbb7364d38bc31a170a199f986fcacfa76b95f6e" - integrity sha512-z4SyAIVgMy7CkgsoNw7YVz40v0g4+WWvvqy8+ZdHrCtgevcEO758WQyrYcw3XPxcLxF+//RszTz/rO48nzD0wQ== - nan@^2.12.1, nan@^2.2.1: version "2.17.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.17.0.tgz#c0150a2368a182f033e9aa5195ec76ea41a199cb" @@ -13400,21 +13003,11 @@ nano-json-stream-parser@^0.1.2: resolved "https://registry.yarnpkg.com/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz#0cc8f6d0e2b622b479c40d499c46d64b755c6f5f" integrity sha512-9MqxMH/BSJC7dnLsEMPyfN5Dvoo49IsPFYMcHw3Bcfc2kN0lpHRBSzlMSVx4HGyJ7s9B31CyBTVehWJoQ8Ctew== -nanoassert@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/nanoassert/-/nanoassert-1.1.0.tgz#4f3152e09540fde28c76f44b19bbcd1d5a42478d" - integrity sha512-C40jQ3NzfkP53NsO8kEOFd79p4b9kDXQMwgiY1z8ZwrDZgUyom0AHwGegF4Dm99L+YoYhuaB0ceerUcXmqr1rQ== - nanoassert@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/nanoassert/-/nanoassert-2.0.0.tgz#a05f86de6c7a51618038a620f88878ed1e490c09" integrity sha512-7vO7n28+aYO4J+8w96AzhmU8G+Y/xpPDJz/se19ICsqj/momRbb9mh9ZUtkoJ5X3nTnPdhEJyc0qnM6yAsHBaA== -nanoid@3.1.20: - version "3.1.20" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.20.tgz#badc263c6b1dcf14b71efaa85f6ab4c1d6cfc788" - integrity sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw== - nanoid@3.3.3: version "3.3.3" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25" @@ -13547,17 +13140,10 @@ node-addon-api@^3.0.0, node-addon-api@^3.2.1: resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161" integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A== -node-fetch@2.6.7: - version "2.6.7" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" - integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== - dependencies: - whatwg-url "^5.0.0" - -node-fetch@^2.6.0, node-fetch@^2.6.1, node-fetch@^2.6.7, node-fetch@^2.6.8: - version "2.6.9" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.9.tgz#7c7f744b5cc6eb5fd404e0c7a9fec630a55657e6" - integrity sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg== +node-fetch@^2.6.0, node-fetch@^2.6.1, node-fetch@^2.6.11, node-fetch@^2.6.7, node-fetch@^2.6.8: + version "2.6.11" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.11.tgz#cde7fc71deef3131ef80a738919f999e6edfff25" + integrity sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w== dependencies: whatwg-url "^5.0.0" @@ -13619,9 +13205,9 @@ node-libs-browser@^2.2.1: vm-browserify "^1.0.1" node-releases@^2.0.8: - version "2.0.10" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.10.tgz#c311ebae3b6a148c89b1813fd7c4d3c024ef537f" - integrity sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w== + version "2.0.11" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.11.tgz#59d7cef999d13f908e43b5a70001cf3129542f0f" + integrity sha512-+M0PwXeU80kRohZ3aT4J/OnR+l9/KD2nVLNNoRgFtnf+umQVFdGBAO2N8+nCnEi0xlh/Wk3zOGC+vNNx+uM79Q== node-stdlib-browser@^1.2.0: version "1.2.0" @@ -13814,15 +13400,16 @@ object.assign@^4.1.4: has-symbols "^1.0.3" object-keys "^1.1.1" -object.getownpropertydescriptors@^2.1.1: - version "2.1.5" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.5.tgz#db5a9002489b64eef903df81d6623c07e5b4b4d3" - integrity sha512-yDNzckpM6ntyQiGTik1fKV1DcVDRS+w8bvpWNCBanvH5LfRX9O8WTHqQzG4RZwRAM4I0oU7TV11Lj5v0g20ibw== +object.getownpropertydescriptors@^2.1.6: + version "2.1.6" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.6.tgz#5e5c384dd209fa4efffead39e3a0512770ccc312" + integrity sha512-lq+61g26E/BgHv0ZTFgRvi7NMEPuAxLkFU7rukXjc/AlwH4Am5xXVnIXy3un1bg/JPbXHrixRkK1itUzzPiIjQ== dependencies: array.prototype.reduce "^1.0.5" call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.21.2" + safe-array-concat "^1.0.0" object.pick@^1.3.0: version "1.3.0" @@ -14317,12 +13904,12 @@ path-root@^0.1.1: path-root-regex "^0.1.0" path-scurry@^1.6.1: - version "1.7.0" - resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.7.0.tgz#99c741a2cfbce782294a39994d63748b5a24f6db" - integrity sha512-UkZUeDjczjYRE495+9thsgcVgsaCPkaw80slmfVFgllxY+IO8ubTsOpFVjDPROBqJdHfVPUFRHPBV/WciOVfWg== + version "1.9.2" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.9.2.tgz#90f9d296ac5e37e608028e28a447b11d385b3f63" + integrity sha512-qSDLy2aGFPm8i4rsbHd4MNyTcrzHFsLQykrtbuGRknZZCBBVXSv2tSCDN2Cg6Rt/GFRw8GoW9y9Ecw5rIPG1sg== dependencies: - lru-cache "^9.0.0" - minipass "^5.0.0" + lru-cache "^9.1.1" + minipass "^5.0.0 || ^6.0.2" path-to-regexp@0.1.7: version "0.1.7" @@ -14343,14 +13930,6 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -path@^0.12.7: - version "0.12.7" - resolved "https://registry.yarnpkg.com/path/-/path-0.12.7.tgz#d4dc2a506c4ce2197eb481ebfcd5b36c0140b10f" - integrity sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q== - dependencies: - process "^0.11.1" - util "^0.10.3" - pathe@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/pathe/-/pathe-0.2.0.tgz#30fd7bbe0a0d91f0e60bae621f5d19e9e225c339" @@ -14413,12 +13992,12 @@ pify@^5.0.0: integrity sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA== pinia@^2.0.26: - version "2.0.34" - resolved "https://registry.yarnpkg.com/pinia/-/pinia-2.0.34.tgz#6c0c84f06b631c30c030633fa64e525c609105a9" - integrity sha512-cgOoGUiyqX0SSgX8XelK9+Ri4XA2/YyNtgjogwfzIx1g7iZTaZPxm7/bZYMCLU2qHRiHhxG7SuQO0eBacFNc2Q== + version "2.1.3" + resolved "https://registry.yarnpkg.com/pinia/-/pinia-2.1.3.tgz#50c70c7b4c94c109fade0ed4122231cbba72f8c5" + integrity sha512-XNA/z/ye4P5rU1pieVmh0g/hSuDO98/a5UC8oSP0DNdvt6YtetJNHTrXwpwsQuflkGT34qKxAEcp7lSxXNjf/A== dependencies: "@vue/devtools-api" "^6.5.0" - vue-demi "*" + vue-demi ">=0.14.5" pinkie-promise@^2.0.0: version "2.0.1" @@ -14458,13 +14037,13 @@ pkg-dir@^5.0.0: dependencies: find-up "^5.0.0" -pkg-types@^1.0.1, pkg-types@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-1.0.2.tgz#c233efc5210a781e160e0cafd60c0d0510a4b12e" - integrity sha512-hM58GKXOcj8WTqUXnsQyJYXdeAPbythQgEF3nTcEo+nkD49chjQ9IKm/QJy9xf6JakXptz86h7ecP2024rrLaQ== +pkg-types@^1.0.1, pkg-types@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-1.0.3.tgz#988b42ab19254c01614d13f4f65a2cfc7880f868" + integrity sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A== dependencies: jsonc-parser "^3.2.0" - mlly "^1.1.1" + mlly "^1.2.0" pathe "^1.1.0" please-upgrade-node@^3.2.0: @@ -14499,41 +14078,41 @@ posix-character-classes@^0.1.0: resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" integrity sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg== -postcss-import@^14.1.0: - version "14.1.0" - resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-14.1.0.tgz#a7333ffe32f0b8795303ee9e40215dac922781f0" - integrity sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw== +postcss-import@^15.1.0: + version "15.1.0" + resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-15.1.0.tgz#41c64ed8cc0e23735a9698b3249ffdbf704adc70" + integrity sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew== dependencies: postcss-value-parser "^4.0.0" read-cache "^1.0.0" resolve "^1.1.7" -postcss-js@^4.0.0: +postcss-js@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-4.0.1.tgz#61598186f3703bab052f1c4f7d805f3991bee9d2" integrity sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw== dependencies: camelcase-css "^2.0.1" -postcss-load-config@^3.1.4: - version "3.1.4" - resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-3.1.4.tgz#1ab2571faf84bb078877e1d07905eabe9ebda855" - integrity sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg== +postcss-load-config@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-4.0.1.tgz#152383f481c2758274404e4962743191d73875bd" + integrity sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA== dependencies: lilconfig "^2.0.5" - yaml "^1.10.2" + yaml "^2.1.1" -postcss-nested@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-6.0.0.tgz#1572f1984736578f360cffc7eb7dca69e30d1735" - integrity sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w== +postcss-nested@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-6.0.1.tgz#f83dc9846ca16d2f4fa864f16e9d9f7d0961662c" + integrity sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ== dependencies: - postcss-selector-parser "^6.0.10" + postcss-selector-parser "^6.0.11" -postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.9: - version "6.0.11" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz#2e41dc39b7ad74046e1615185185cd0b17d0c8dc" - integrity sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g== +postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.9: + version "6.0.13" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b" + integrity sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ== dependencies: cssesc "^3.0.0" util-deprecate "^1.0.2" @@ -14543,10 +14122,10 @@ postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0: resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss@^8.0.9, postcss@^8.1.10, postcss@^8.4.18, postcss@^8.4.19, postcss@^8.4.21: - version "8.4.22" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.22.tgz#c29e6776b60ab3af602d4b513d5bd2ff9aa85dc1" - integrity sha512-XseknLAfRHzVWjCEtdviapiBtfLdgyzExD50Rg2ePaucEesyh8Wv4VPdW0nbyDa1ydbrAxV19jvMT4+LFmcNUA== +postcss@^8.1.10, postcss@^8.4.18, postcss@^8.4.19, postcss@^8.4.23: + version "8.4.23" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.23.tgz#df0aee9ac7c5e53e1075c24a3613496f9e6552ab" + integrity sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA== dependencies: nanoid "^3.3.6" picocolors "^1.0.0" @@ -14595,9 +14174,9 @@ prettier@1.19.1, prettier@^1.14.2: integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== prettier@^2.1.2, prettier@^2.8.0, prettier@^2.8.3, prettier@^2.8.6: - version "2.8.7" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.7.tgz#bb79fc8729308549d28fe3a98fce73d2c0656450" - integrity sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw== + version "2.8.8" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" + integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== private@^0.1.6, private@^0.1.8: version "0.1.8" @@ -14609,7 +14188,7 @@ process-nextick-args@~2.0.0: 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.1, process@^0.11.10: +process@^0.11.10: version "0.11.10" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== @@ -14641,13 +14220,6 @@ promise@^8.0.0: dependencies: asap "~2.0.6" -prompt-sync@4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/prompt-sync/-/prompt-sync-4.2.0.tgz#0198f73c5b70e3b03e4b9033a50540a7c9a1d7f4" - integrity sha512-BuEzzc5zptP5LsgV5MZETjDaKSWfchl5U9Luiu8SKp7iZWD5tZalOxvNcZRwv+d2phNFr8xlbxmFNcRKfJOzJw== - dependencies: - strip-ansi "^5.0.0" - proper-lockfile@^4.0.0, proper-lockfile@^4.1.1: version "4.1.2" resolved "https://registry.yarnpkg.com/proper-lockfile/-/proper-lockfile-4.1.2.tgz#c8b9de2af6b2f1601067f98e01ac66baa223141f" @@ -14853,9 +14425,9 @@ qrcode@1.4.4: yargs "^13.2.4" qrcode@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/qrcode/-/qrcode-1.5.1.tgz#0103f97317409f7bc91772ef30793a54cd59f0cb" - integrity sha512-nS8NJ1Z3md8uTjKtP+SGGhfqmTCs5flU/xR623oI0JX+Wepz9R8UrRVCTBTJm3qGw3rH6jJ6MUHjkDx15cxSSg== + version "1.5.3" + resolved "https://registry.yarnpkg.com/qrcode/-/qrcode-1.5.3.tgz#03afa80912c0dccf12bc93f615a535aad1066170" + integrity sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg== dependencies: dijkstrajs "^1.0.1" encode-utf8 "^1.0.3" @@ -14870,9 +14442,9 @@ qs@6.11.0: side-channel "^1.0.4" qs@^6.4.0, qs@^6.7.0: - version "6.11.1" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.1.tgz#6c29dff97f0c0060765911ba65cbc9764186109f" - integrity sha512-0wsrzgTz/kAVIeuxSjnpGC56rzYtr6JT/2BwEvMaPhFIoYa1aGO8LbzuU1R0uUYQkLpWBTOj0l/CLAJB64J6nQ== + version "6.11.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.2.tgz#64bea51f12c1f5da1bc01496f48ffcff7c69d7d9" + integrity sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA== dependencies: side-channel "^1.0.4" @@ -14938,16 +14510,6 @@ r1csfile@0.0.16: fastfile "0.0.18" ffjavascript "0.2.22" -r1csfile@0.0.32: - version "0.0.32" - resolved "https://registry.yarnpkg.com/r1csfile/-/r1csfile-0.0.32.tgz#64a6c63ff76b737b3ee22bcedb2bb9a033cbeb1a" - integrity sha512-DkRXeOg0iRmfhgIuWICvdkOiLHpyb7+AcUd/WHpqBJEUp27pe7wKXBR4Jr3TPYCT4sTV9a/F3bovyAC4wystnQ== - dependencies: - "@iden3/bigarray" "0.0.2" - "@iden3/binfileutils" "0.0.8" - fastfile "0.0.19" - ffjavascript "0.2.35" - rabin-wasm@~0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/rabin-wasm/-/rabin-wasm-0.0.8.tgz#5b61b1d519d0377453435fbca5f82510b3f956cb" @@ -15118,13 +14680,6 @@ readdirp@^2.2.1: micromatch "^3.1.10" readable-stream "^2.0.2" -readdirp@~3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" - integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== - dependencies: - picomatch "^2.2.1" - readdirp@~3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" @@ -15139,13 +14694,6 @@ receptacle@^1.3.2: dependencies: ms "^2.1.1" -rechoir@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" - integrity sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw== - dependencies: - resolve "^1.1.6" - redent@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" @@ -15208,13 +14756,13 @@ regex-not@^1.0.0, regex-not@^1.0.2: safe-regex "^1.1.0" regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" - integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== + version "1.5.0" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb" + integrity sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - functions-have-names "^1.2.2" + define-properties "^1.2.0" + functions-have-names "^1.2.3" regexpu-core@^2.0.0: version "2.0.0" @@ -15380,7 +14928,7 @@ resolve@1.17.0: dependencies: path-parse "^1.0.6" -resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.22.1, resolve@^1.8.1, resolve@~1.22.1: +resolve@^1.1.7, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.22.1, resolve@^1.22.2, resolve@^1.8.1, resolve@~1.22.1: version "1.22.2" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== @@ -15479,10 +15027,10 @@ rollup@^2.79.1: optionalDependencies: fsevents "~2.3.2" -rollup@^3.18.0: - version "3.20.6" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.20.6.tgz#53c0fd73e397269d2ce5f0ec12851457dd53cacd" - integrity sha512-2yEB3nQXp/tBQDN0hJScJQheXdvU2wFhh6ld7K/aiZ1vYcak6N/BKjY1QrU6BvO2JWYS8bEs14FRaxXosxy2zw== +rollup@^3.21.0: + version "3.23.0" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.23.0.tgz#b8d6146dac4bf058ee817f92820988e9b358b564" + integrity sha512-h31UlwEi7FHihLe1zbk+3Q7z1k/84rb9BSwmBSr/XjOCEaBJ2YyedQDuM0t/kfOS0IxM+vk1/zI9XxYj9V+NJQ== optionalDependencies: fsevents "~2.3.2" @@ -15518,12 +15066,22 @@ rustbn.js@~0.2.0: integrity sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA== rxjs@^7.5.1, rxjs@^7.5.5: - version "7.8.0" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.0.tgz#90a938862a82888ff4c7359811a595e14e1e09a4" - integrity sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg== + version "7.8.1" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" + integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== dependencies: tslib "^2.1.0" +safe-array-concat@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.0.tgz#2064223cba3c08d2ee05148eedbc563cd6d84060" + integrity sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.0" + 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: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" @@ -15563,9 +15121,9 @@ safe-regex@^1.1.0: integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== sass@^1.56.1: - version "1.62.0" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.62.0.tgz#3686b2195b93295d20765135e562366b33ece37d" - integrity sha512-Q4USplo4pLYgCi+XlipZCWUQz5pkg/ruSSgJ0WRDSb/+3z9tXUOkQ7QPYn4XrhZKYAK4HlpaQecRwKLJX6+DBg== + version "1.62.1" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.62.1.tgz#caa8d6bf098935bc92fc73fa169fb3790cacd029" + integrity sha512-NHpxIzN29MXvWiuswfc1W3I0N8SXBd8UR26WntmDlRYf0bSADnwnOjsyMZ3lMezSlArD33Vs3YFhp7dWvL770A== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" @@ -15664,10 +15222,10 @@ semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.0.0, semver@^7.3.4, semver@^7.3.5, semver@^7.3.6, semver@^7.3.7: - version "7.5.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.0.tgz#ed8c5dc8efb6c629c88b23d41dc9bf40c1d96cd0" - integrity sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA== +semver@^7.0.0, semver@^7.3.4, semver@^7.3.5, semver@^7.3.6, semver@^7.3.7, semver@^7.3.8: + version "7.5.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.1.tgz#c90c4d631cf74720e46b21c1d37ea07edfab91ec" + integrity sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw== dependencies: lru-cache "^6.0.0" @@ -15704,13 +15262,6 @@ sentence-case@^3.0.4: tslib "^2.0.3" upper-case-first "^2.0.2" -serialize-javascript@5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4" - integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA== - dependencies: - randombytes "^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" @@ -15818,15 +15369,6 @@ shell-quote@^1.7.3: resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680" integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== -shelljs@^0.8.3: - version "0.8.5" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c" - integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow== - dependencies: - glob "^7.0.0" - interpret "^1.0.0" - rechoir "^0.6.2" - side-channel@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" @@ -15938,19 +15480,6 @@ snapdragon@^0.8.1: source-map-resolve "^0.5.0" use "^3.1.0" -snarkjs@0.3.59: - version "0.3.59" - resolved "https://registry.yarnpkg.com/snarkjs/-/snarkjs-0.3.59.tgz#818821658117bb65aff5f1c8b6fe03d74dd91354" - integrity sha512-fj8EOtziIz6FvNmcT97L4QM+QNzoCf8zTo4ghpYY4wFf0ZkgX9tSR2SZy1BjtaQnlC+LiF55wOG+jucP9Aw5BA== - dependencies: - "@iden3/binfileutils" "0.0.8" - blake2b-wasm "https://github.com/jbaylina/blake2b-wasm.git" - circom_runtime "0.1.13" - fastfile "0.0.19" - ffjavascript "0.2.35" - logplease "^1.2.15" - r1csfile "0.0.32" - solc@0.7.3: version "0.7.3" resolved "https://registry.yarnpkg.com/solc/-/solc-0.7.3.tgz#04646961bd867a744f63d2b4e3c0701ffdc7d78a" @@ -16016,10 +15545,10 @@ solhint@^3.3.2: optionalDependencies: prettier "^2.8.3" -solidity-rlp@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/solidity-rlp/-/solidity-rlp-2.0.3.tgz#5116b50407b00f45e803a8a32145190d7b315d89" - integrity sha512-d61KdqL1Fm1LoIzHVvvh4SONE5jM4wzYzM6MY53p1DBFy7ZDIHyXdq/CIGhWMItOjr/mvbXJP9BEHX2Q0TZqfg== +solidity-rlp@2.0.8: + version "2.0.8" + resolved "https://registry.yarnpkg.com/solidity-rlp/-/solidity-rlp-2.0.8.tgz#1548370b690ef06dbb62af06b7675bc86b19bbe3" + integrity sha512-gzYzHoFKRH1ydJeCfzm3z/BvKrZGK/V9+qbOlNbBcRAYeizjCdDNhLTTE8iIJrHqsRrZRSOo+7mhbnxoBoZvJQ== sort-keys@^4.0.0: version "4.2.0" @@ -16064,7 +15593,7 @@ source-map-support@^0.4.15: dependencies: source-map "^0.5.6" -source-map-support@^0.5.11, source-map-support@^0.5.13, source-map-support@^0.5.17, source-map-support@^0.5.19, source-map-support@^0.5.20, source-map-support@^0.5.21, source-map-support@~0.5.12: +source-map-support@^0.5.11, source-map-support@^0.5.13, source-map-support@^0.5.17, source-map-support@^0.5.20, source-map-support@^0.5.21, source-map-support@~0.5.12: version "0.5.21" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== @@ -16303,7 +15832,7 @@ 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@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== @@ -16450,7 +15979,7 @@ strip-literal@^1.0.0: dependencies: acorn "^8.8.2" -sucrase@^3.29.0: +sucrase@^3.32.0: version "3.32.0" resolved "https://registry.yarnpkg.com/sucrase/-/sucrase-3.32.0.tgz#c4a95e0f1e18b6847127258a75cf360bc568d4a7" integrity sha512-ydQOU34rpSyj2TGyz4D2p8rbktIOZ8QY9s+DGLvFU1i5pWJE8vkpruCjGCMHsdXwnD7JDcS+noSwM/a7zyNFDQ== @@ -16547,10 +16076,10 @@ sync-rpc@^1.2.1: dependencies: get-port "^3.1.0" -tabbable@^6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-6.1.1.tgz#40cfead5ed11be49043f04436ef924c8890186a0" - integrity sha512-4kl5w+nCB44EVRdO0g/UGoOp3vlwgycUVtkk/7DPyeLZUCuNFFKCFG6/t/DgHLrUPHjrZg6s5tNm+56Q2B0xyg== +tabbable@^6.1.2: + version "6.1.2" + resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-6.1.2.tgz#b0d3ca81d582d48a80f71b267d1434b1469a3703" + integrity sha512-qCN98uP7i9z0fIS4amQ5zbGBOq+OSigYeGvPy7NDk8Y9yncqDZ9pRPgfsc2PJIVM9RrJj7GIfuRgmjoUU9zTHQ== table@^6.8.0, table@^6.8.1: version "6.8.1" @@ -16564,34 +16093,33 @@ table@^6.8.0, table@^6.8.1: strip-ansi "^6.0.1" tailwindcss@^3.2.4: - version "3.3.1" - resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.3.1.tgz#b6662fab6a9b704779e48d083a9fef5a81d2b81e" - integrity sha512-Vkiouc41d4CEq0ujXl6oiGFQ7bA3WEhUZdTgXAhtKxSy49OmKs8rEfQmupsfF0IGW8fv2iQkp1EVUuapCFrZ9g== + version "3.3.2" + resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.3.2.tgz#2f9e35d715fdf0bbf674d90147a0684d7054a2d3" + integrity sha512-9jPkMiIBXvPc2KywkraqsUfbfj+dHDb+JPWtSJa9MLFdrPyazI7q6WX2sUrm7R9eVR7qqv3Pas7EvQFzxKnI6w== dependencies: + "@alloc/quick-lru" "^5.2.0" arg "^5.0.2" chokidar "^3.5.3" - color-name "^1.1.4" didyoumean "^1.2.2" dlv "^1.1.3" fast-glob "^3.2.12" glob-parent "^6.0.2" is-glob "^4.0.3" - jiti "^1.17.2" - lilconfig "^2.0.6" + jiti "^1.18.2" + lilconfig "^2.1.0" micromatch "^4.0.5" normalize-path "^3.0.0" object-hash "^3.0.0" picocolors "^1.0.0" - postcss "^8.0.9" - postcss-import "^14.1.0" - postcss-js "^4.0.0" - postcss-load-config "^3.1.4" - postcss-nested "6.0.0" + postcss "^8.4.23" + postcss-import "^15.1.0" + postcss-js "^4.0.1" + postcss-load-config "^4.0.1" + postcss-nested "^6.0.1" postcss-selector-parser "^6.0.11" postcss-value-parser "^4.2.0" - quick-lru "^5.1.1" - resolve "^1.22.1" - sucrase "^3.29.0" + resolve "^1.22.2" + sucrase "^3.32.0" tapable@^1.0.0, tapable@^1.1.3: version "1.1.3" @@ -16656,13 +16184,13 @@ tar@^4.0.2: yallist "^3.1.1" tar@^6.1.0: - version "6.1.13" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.13.tgz#46e22529000f612180601a6fe0680e7da508847b" - integrity sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw== + version "6.1.15" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.15.tgz#c9738b0b98845a3b344d334b8fa3041aaba53a69" + integrity sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A== dependencies: chownr "^2.0.0" fs-minipass "^2.0.0" - minipass "^4.0.0" + minipass "^5.0.0" minizlib "^2.1.1" mkdirp "^1.0.3" yallist "^4.0.0" @@ -16775,9 +16303,9 @@ timers-browserify@^2.0.4: setimmediate "^1.0.4" tinybench@^2.3.1: - version "2.4.0" - resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-2.4.0.tgz#83f60d9e5545353610fe7993bd783120bc20c7a7" - integrity sha512-iyziEiyFxX4kyxSp+MtY1oCH/lvjH3PxFN8PGCDeqcZWAJ/i+9y+nL85w99PxVzrIvew/GSkSbDYtiGVa85Afg== + version "2.5.0" + resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-2.5.0.tgz#4711c99bbf6f3e986f67eb722fed9cddb3a68ba5" + integrity sha512-kRwSG8Zx4tjF9ZiyH4bhaebu+EDz1BOx9hOigYHlUW4xxI/wKIUQUqo018UlU4ar6ATPBsaMrdbKZ+tmPdohFA== tinypool@^0.3.0: version "0.3.1" @@ -17029,9 +16557,9 @@ tslib@1.14.1, tslib@^1.8.1, tslib@^1.9.3: integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.5.0, tslib@~2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf" - integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg== + version "2.5.2" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.2.tgz#1b6f07185c881557b0ffa84b111a0106989e8338" + integrity sha512-5svOrSA2w3iGFDs1HibEVBGbDrAY82bFQ3HZ3ixB+88nsbsWQoKqDRb5UBYAUPEzbBn6dAp5gRNXglySbx1MlA== tslib@~2.4.0: version "2.4.1" @@ -17225,10 +16753,10 @@ uc.micro@^1.0.1, uc.micro@^1.0.5: resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== -ufo@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.1.1.tgz#e70265e7152f3aba425bd013d150b2cdf4056d7c" - integrity sha512-MvlCc4GHrmZdAllBc0iUDowff36Q9Ndw/UzqmEKyrfSzokTd9ZCy1i+IIk5hrYKkjoYVQyNbrw7/F8XJ2rEwTg== +ufo@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.1.2.tgz#d0d9e0fa09dece0c31ffd57bd363f030a35cfe76" + integrity sha512-TrY6DsjTQQgyS3E3dBaOXf0TpPD8u9FVrVYmKVegJuFw51n/YB9XPt+U6ydzFG5ZIN7+DIjPbNmXoBj9esYhgQ== uint8arrays@^3.0.0: version "3.1.1" @@ -17270,9 +16798,9 @@ underscore@1.9.1: integrity sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg== undici@^5.12.0, undici@^5.14.0: - version "5.21.2" - resolved "https://registry.yarnpkg.com/undici/-/undici-5.21.2.tgz#329f628aaea3f1539a28b9325dccc72097d29acd" - integrity sha512-f6pTQ9RF4DQtwoWSaC42P/NKlUjvezVvd9r155ohqkwFNRyBKM3f3pcty3ouusefNRyM25XhIQEbeQ46sZDJfQ== + version "5.22.1" + resolved "https://registry.yarnpkg.com/undici/-/undici-5.22.1.tgz#877d512effef2ac8be65e695f3586922e1a57d7b" + integrity sha512-Ji2IJhFXZY0x/0tVBXeQwgPlLWw13GVzpsWPQ3rV50IFMMof2I55PZZxtm4P6iNq+L5znYN9nSTAq0ZyE6lSJw== dependencies: busboy "^1.6.0" @@ -17485,12 +17013,10 @@ url@^0.11.0: punycode "1.3.2" querystring "0.2.0" -urlpattern-polyfill@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/urlpattern-polyfill/-/urlpattern-polyfill-7.0.0.tgz#dc9e5098efc492b4f09bc9fc6acfba545dfb149d" - integrity sha512-fErMjbZwveQIk+EY4vxM5GKDuInBOigxmjM6WT2R/cV2ETVyFtDHeU+VmbnfuJ5sp0qNbyUBelTO/60/d+/SSQ== - dependencies: - braces "^3.0.2" +urlpattern-polyfill@^8.0.0: + version "8.0.2" + resolved "https://registry.yarnpkg.com/urlpattern-polyfill/-/urlpattern-polyfill-8.0.2.tgz#99f096e35eff8bf4b5a2aa7d58a1523d6ebc7ce5" + integrity sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ== use@^3.1.0: version "3.1.1" @@ -17515,15 +17041,17 @@ util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== util.promisify@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.1.1.tgz#77832f57ced2c9478174149cae9b96e9918cd54b" - integrity sha512-/s3UsZUrIfa6xDhr7zZhnE9SLQ5RIXyYfiVnMMyMDzOc8WhWN4Nbh36H842OyurKbCDAesZOJaVyvmSl6fhGQw== + version "1.1.2" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.1.2.tgz#02b3dbadbb80071eee4c43aed58747afdfc516db" + integrity sha512-PBdZ03m1kBnQ5cjjO0ZvJMJS+QsbyIcFwi4hY4U76OQsCO9JrOYjbCFgIF76ccFg9xnJo7ZHPkqyj1GqmdS7MA== dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" + call-bind "^1.0.2" + define-properties "^1.2.0" for-each "^0.3.3" - has-symbols "^1.0.1" - object.getownpropertydescriptors "^2.1.1" + has-proto "^1.0.1" + has-symbols "^1.0.3" + object.getownpropertydescriptors "^2.1.6" + safe-array-concat "^1.0.0" util@0.10.3: version "0.10.3" @@ -17532,13 +17060,6 @@ util@0.10.3: dependencies: inherits "2.0.1" -util@^0.10.3: - version "0.10.4" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901" - integrity sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A== - dependencies: - inherits "2.0.3" - util@^0.11.0: version "0.11.1" resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" @@ -17600,7 +17121,7 @@ validate-npm-package-license@^3.0.1: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" -value-or-promise@1.0.12, value-or-promise@^1.0.11, value-or-promise@^1.0.12: +value-or-promise@^1.0.11, value-or-promise@^1.0.12: version "1.0.12" resolved "https://registry.yarnpkg.com/value-or-promise/-/value-or-promise-1.0.12.tgz#0e5abfeec70148c78460a849f6b003ea7986f15c" integrity sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q== @@ -17654,14 +17175,13 @@ vite@3.2.4: fsevents "~2.3.2" "vite@^3.0.0 || ^4.0.0": - version "4.2.2" - resolved "https://registry.yarnpkg.com/vite/-/vite-4.2.2.tgz#014c30e5163844f6e96d7fe18fbb702236516dc6" - integrity sha512-PcNtT5HeDxb3QaSqFYkEum8f5sCVe0R3WK20qxgIvNBZPXU/Obxs/+ubBMeE7nLWeCo2LDzv+8hRYSlcaSehig== + version "4.3.8" + resolved "https://registry.yarnpkg.com/vite/-/vite-4.3.8.tgz#70cd6a294ab52d7fb8f37f5bc63d117dd19e9918" + integrity sha512-uYB8PwN7hbMrf4j1xzGDk/lqjsZvCDbt/JC5dyfxc19Pg8kRm14LinK/uq+HSLNswZEoKmweGdtpbnxRtrAXiQ== dependencies: esbuild "^0.17.5" - postcss "^8.4.21" - resolve "^1.22.1" - rollup "^3.18.0" + postcss "^8.4.23" + rollup "^3.21.0" optionalDependencies: fsevents "~2.3.2" @@ -17691,20 +17211,20 @@ vm-browserify@^1.0.1: resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== -vue-demi@*: - version "0.14.0" - resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.14.0.tgz#dcfd9a9cf9bb62ada1582ec9042372cf67ca6190" - integrity sha512-gt58r2ogsNQeVoQ3EhoUAvUsH9xviydl0dWJj7dabBC/2L4uBId7ujtCwDRD0JhkGsV1i0CtfLAeyYKBht9oWg== +vue-demi@*, vue-demi@>=0.14.5: + version "0.14.5" + resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.14.5.tgz#676d0463d1a1266d5ab5cba932e043d8f5f2fbd9" + integrity sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA== vue-demi@^0.13.11: version "0.13.11" resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.13.11.tgz#7d90369bdae8974d87b1973564ad390182410d99" integrity sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A== -vue-eslint-parser@^9.0.0, vue-eslint-parser@^9.0.1: - version "9.1.1" - resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-9.1.1.tgz#3f4859be7e9bb7edaa1dc7edb05abffee72bf3dd" - integrity sha512-C2aI/r85Q6tYcz4dpgvrs4wH/MqVrRAVIdpYedrxnATDHHkb+TroeRcDpKWGZCx/OcECMWfz7tVwQ8e+Opy6rA== +vue-eslint-parser@^9.1.1, vue-eslint-parser@^9.3.0: + version "9.3.0" + resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-9.3.0.tgz#775a974a0603c9a73d85fed8958ed9e814a4a816" + integrity sha512-48IxT9d0+wArT1+3wNIy0tascRoywqSUe2E1YalIC1L8jsUGe5aJQItWfRok7DVFGz3UYvzEI7n5wiTXsCMAcQ== dependencies: debug "^4.3.4" eslint-scope "^7.1.1" @@ -17715,9 +17235,9 @@ vue-eslint-parser@^9.0.0, vue-eslint-parser@^9.0.1: semver "^7.3.6" vue-final-modal@^4.3.0: - version "4.3.1" - resolved "https://registry.yarnpkg.com/vue-final-modal/-/vue-final-modal-4.3.1.tgz#8d3bb4481ba324f49e2277b58a236eb53bdb01fb" - integrity sha512-lKWV0iUrMLM2wLBtWJ1PFdx9kUn6b+aGEH2mTOHXBmDknilBAymdXaNc7LbSz/tWY6plAR0S3XfyHuI2nTdL4g== + version "4.4.2" + resolved "https://registry.yarnpkg.com/vue-final-modal/-/vue-final-modal-4.4.2.tgz#3f4e8a89425ff2276a651d20e4e7ea830f369c22" + integrity sha512-KO7I7cNgOI28MVS1JOelJrbZNSomPog0lMS8oeETo7XkH4BLpGyntbvasW63Zg0xpawuVwZ7oV3xb7qeHLSNxw== dependencies: "@vueuse/core" "^9.13.0" "@vueuse/integrations" "^9.13.0" @@ -17756,11 +17276,11 @@ vue-resize@^2.0.0-alpha.1: integrity sha512-7+iqOueLU7uc9NrMfrzbG8hwMqchfVfSzpVlCMeJQe4pyibqyoifDNbKTZvwxZKDvGkB+PdFeKvnGZMoEb8esg== vue-router@4: - version "4.1.6" - resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-4.1.6.tgz#b70303737e12b4814578d21d68d21618469375a1" - integrity sha512-DYWYwsG6xNPmLq/FmZn8Ip+qrhFEzA14EI12MsMgVxvHFDYvlr4NXpVF5hrRH1wVcDP8fGi5F4rxuJSl8/r+EQ== + version "4.2.1" + resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-4.2.1.tgz#f8ab85c89e74682cad71519480fdf2b855e8c9e0" + integrity sha512-nW28EeifEp8Abc5AfmAShy5ZKGsGzjcnZ3L1yc2DYUo+MqbBClrRP9yda3dIekM4I50/KnEwo1wkBLf7kHH5Cw== dependencies: - "@vue/devtools-api" "^6.4.5" + "@vue/devtools-api" "^6.5.0" vue-template-compiler@^2.7.14: version "2.7.14" @@ -17771,23 +17291,24 @@ vue-template-compiler@^2.7.14: he "^1.2.0" vue-tsc@^1.0.13: - version "1.2.0" - resolved "https://registry.yarnpkg.com/vue-tsc/-/vue-tsc-1.2.0.tgz#2b64b960cc96208492541394423ace589a461be6" - integrity sha512-rIlzqdrhyPYyLG9zxsVRa+JEseeS9s8F2BbVVVWRRsTZvJO2BbhLEb2HW3MY+DFma0378tnIqs+vfTzbcQtRFw== + version "1.6.5" + resolved "https://registry.yarnpkg.com/vue-tsc/-/vue-tsc-1.6.5.tgz#cd18804b12087c300b6c9ee2a1da41a63f11103e" + integrity sha512-Wtw3J7CC+JM2OR56huRd5iKlvFWpvDiU+fO1+rqyu4V2nMTotShz4zbOZpW5g9fUOcjnyZYfBo5q5q+D/q27JA== dependencies: - "@volar/vue-language-core" "1.2.0" - "@volar/vue-typescript" "1.2.0" + "@volar/vue-language-core" "1.6.5" + "@volar/vue-typescript" "1.6.5" + semver "^7.3.8" vue@^3.2.45, vue@^3.2.47: - version "3.2.47" - resolved "https://registry.yarnpkg.com/vue/-/vue-3.2.47.tgz#3eb736cbc606fc87038dbba6a154707c8a34cff0" - integrity sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ== + version "3.3.4" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.3.4.tgz#8ed945d3873667df1d0fcf3b2463ada028f88bd6" + integrity sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw== dependencies: - "@vue/compiler-dom" "3.2.47" - "@vue/compiler-sfc" "3.2.47" - "@vue/runtime-dom" "3.2.47" - "@vue/server-renderer" "3.2.47" - "@vue/shared" "3.2.47" + "@vue/compiler-dom" "3.3.4" + "@vue/compiler-sfc" "3.3.4" + "@vue/runtime-dom" "3.3.4" + "@vue/server-renderer" "3.3.4" + "@vue/shared" "3.3.4" w3c-xmlserializer@^4.0.0: version "4.0.0" @@ -17832,10 +17353,10 @@ wasmcurves@0.0.5: big-integer "^1.6.42" blakejs "^1.1.0" -wasmcurves@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/wasmcurves/-/wasmcurves-0.2.0.tgz#ccfc5a7d3778b6e0768b82a9336c80054f9bc0cf" - integrity sha512-3e2rbxdujOwaod657gxgmdhZNn+i1qKdHO3Y/bK+8E7bV8ttV/fu5FO4/WLBACF375cK0QDLOP+65Na63qYuWA== +wasmcurves@0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/wasmcurves/-/wasmcurves-0.2.1.tgz#416d15432a9c6a7b79ef6000eab1e8e7302624ad" + integrity sha512-9ciO7bUE5bgpbOcdK7IO3enrSVIKHwrQmPibok4GLJWaCA7Wyqc9PRYnu5HbiFv9NDFNqVKPtU5R6Is5KujBLg== dependencies: wasmbuilder "0.0.16" @@ -17874,6 +17395,15 @@ web-worker@^1.0.0, web-worker@^1.2.0: resolved "https://registry.yarnpkg.com/web-worker/-/web-worker-1.2.0.tgz#5d85a04a7fbc1e7db58f66595d7a3ac7c9c180da" integrity sha512-PgF341avzqyx60neE9DD+XS26MMNMoUQRz9NOZwW32nPQrF6p77f1htcnjBSEV8BGMKZ16choqUG4hyI0Hx7mA== +web3-bzz@1.10.0: + version "1.10.0" + 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.2.11: version "1.2.11" resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.2.11.tgz#41bc19a77444bd5365744596d778b811880f707f" @@ -17884,14 +17414,13 @@ web3-bzz@1.2.11: swarm-js "^0.1.40" underscore "1.9.1" -web3-bzz@1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.9.0.tgz#3334049f386e73e2b3dcfa96432e65391538d8ac" - integrity sha512-9Zli9dikX8GdHwBb5/WPzpSVuy3EWMKY3P4EokCQra31fD7DLizqAAaTUsFwnK7xYkw5ogpHgelw9uKHHzNajg== +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" + integrity sha512-pIxAzFDS5vnbXvfvLSpaA1tfRykAe9adw43YCKsEYQwH0gCLL0kMLkaCX3q+Q8EVmAh+e1jWL/nl9U0de1+++g== dependencies: - "@types/node" "^12.12.6" - got "12.1.0" - swarm-js "^0.1.40" + web3-eth-iban "1.10.0" + web3-utils "1.10.0" web3-core-helpers@1.2.11: version "1.2.11" @@ -17902,13 +17431,16 @@ web3-core-helpers@1.2.11: web3-eth-iban "1.2.11" web3-utils "1.2.11" -web3-core-helpers@1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.9.0.tgz#a1ca4ac7b9cec822886643312d2e98b0e4d8f1bc" - integrity sha512-NeJzylAp9Yj9xAt2uTT+kyug3X0DLnfBdnAcGZuY6HhoNPDIfQRA9CkJjLngVRlGTLZGjNp9x9eR+RyZQgUlXg== +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" + integrity sha512-4R700jTLAMKDMhQ+nsVfIXvH6IGJlJzGisIfMKWAIswH31h5AZz7uDUW2YctI+HrYd+5uOAlS4OJeeT9bIpvkA== dependencies: - web3-eth-iban "1.9.0" - web3-utils "1.9.0" + "@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" web3-core-method@1.2.11: version "1.2.11" @@ -17922,16 +17454,12 @@ web3-core-method@1.2.11: web3-core-subscriptions "1.2.11" web3-utils "1.2.11" -web3-core-method@1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.9.0.tgz#81da8aa21503b470537c9f075f30adfad194a2d8" - integrity sha512-sswbNsY2xRBBhGeaLt9c/eDc+0yDDhi6keUBAkgIRa9ueSx/VKzUY9HMqiV6bXDcGT2fJyejq74FfEB4lc/+/w== +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" + integrity sha512-68N7k5LWL5R38xRaKFrTFT2pm2jBNFaM4GioS00YjAKXRQ3KjmhijOMG3TICz6Aa5+6GDWYelDNx21YAeZ4YTg== dependencies: - "@ethersproject/transactions" "^5.6.2" - web3-core-helpers "1.9.0" - web3-core-promievent "1.9.0" - web3-core-subscriptions "1.9.0" - web3-utils "1.9.0" + eventemitter3 "4.0.4" web3-core-promievent@1.2.11: version "1.2.11" @@ -17940,12 +17468,16 @@ web3-core-promievent@1.2.11: dependencies: eventemitter3 "4.0.4" -web3-core-promievent@1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.9.0.tgz#2598a4d91b4edd3607366529f52bc96dee9f6d83" - integrity sha512-PHG1Mn23IGwMZhnPDN8dETKypqsFbHfiyRqP+XsVMPmTHkVfzDQTCBU/c2r6hUktBDoGKut5xZQpGfhFk71KbQ== +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" + integrity sha512-3z/JKE++Os62APml4dvBM+GAuId4h3L9ckUrj7ebEtS2AR0ixyQPbrBodgL91Sv7j7cQ3Y+hllaluqjguxvSaQ== dependencies: - eventemitter3 "4.0.4" + 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" web3-core-requestmanager@1.2.11: version "1.2.11" @@ -17958,16 +17490,13 @@ web3-core-requestmanager@1.2.11: web3-providers-ipc "1.2.11" web3-providers-ws "1.2.11" -web3-core-requestmanager@1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.9.0.tgz#9d7d0e7f890cf7a24e9c568b9772c64d57fc4fcd" - integrity sha512-hcJ5PCtTIJpj+8qWxoseqlCovDo94JJjTX7dZOLXgwp8ah7E3WRYozhGyZocerx+KebKyg1mCQIhkDpMwjfo9Q== +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" + integrity sha512-HGm1PbDqsxejI075gxBc5OSkwymilRWZufIy9zEpnWKNmfbuv5FfHgW1/chtJP6aP3Uq2vHkvTDl3smQBb8l+g== dependencies: - util "^0.12.5" - web3-core-helpers "1.9.0" - web3-providers-http "1.9.0" - web3-providers-ipc "1.9.0" - web3-providers-ws "1.9.0" + eventemitter3 "4.0.4" + web3-core-helpers "1.10.0" web3-core-subscriptions@1.2.11: version "1.2.11" @@ -17978,13 +17507,18 @@ web3-core-subscriptions@1.2.11: underscore "1.9.1" web3-core-helpers "1.2.11" -web3-core-subscriptions@1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.9.0.tgz#dc67b478875dab1875844df3307a986dd7d468dd" - integrity sha512-MaIo29yz7hTV8X8bioclPDbHFOVuHmnbMv+D3PDH12ceJFJAXGyW8GL5KU1DYyWIj4TD1HM4WknyVA/YWBiiLA== +web3-core@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.10.0.tgz#9aa07c5deb478cf356c5d3b5b35afafa5fa8e633" + integrity sha512-fWySwqy2hn3TL89w5TM8wXF1Z2Q6frQTKHWmP0ppRQorEK8NcHJRfeMiv/mQlSKoTS1F6n/nv2uyZsixFycjYQ== dependencies: - eventemitter3 "4.0.4" - web3-core-helpers "1.9.0" + "@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" web3-core@1.2.11: version "1.2.11" @@ -17999,18 +17533,13 @@ web3-core@1.2.11: web3-core-requestmanager "1.2.11" web3-utils "1.2.11" -web3-core@1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.9.0.tgz#9cfafb2f8c01931429108af75205610406a5a1ab" - integrity sha512-DZ+TPmq/ZLlx4LSVzFgrHCP/QFpKDbGWO4HoquZSdu24cjk5SZ+FEU1SZB2OaK3/bgBh+25mRbmv8y56ysUu1w== +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" + integrity sha512-cwS+qRBWpJ43aI9L3JS88QYPfFcSJJ3XapxOQ4j40v6mk7ATpA8CVK1vGTzpihNlOfMVRBkR95oAj7oL6aiDOg== dependencies: - "@types/bn.js" "^5.1.1" - "@types/node" "^12.12.6" - bignumber.js "^9.0.0" - web3-core-helpers "1.9.0" - web3-core-method "1.9.0" - web3-core-requestmanager "1.9.0" - web3-utils "1.9.0" + "@ethersproject/abi" "^5.6.3" + web3-utils "1.10.0" web3-eth-abi@1.2.11: version "1.2.11" @@ -18029,13 +17558,21 @@ web3-eth-abi@1.7.0: "@ethersproject/abi" "5.0.7" web3-utils "1.7.0" -web3-eth-abi@1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.9.0.tgz#18662ef68bd3d25eedd9a1a1484089c39529c652" - integrity sha512-0BLQ3FKMrzJkA930jOX3fMaybAyubk06HChclLpiR0NWmgWXm1tmBrJdkyRy2ZTZpmfuZc9xTFRfl0yZID1voA== +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" + integrity sha512-wiq39Uc3mOI8rw24wE2n15hboLE0E9BsQLdlmsL4Zua9diDS6B5abXG0XhFcoNsXIGMWXVZz4TOq3u4EdpXF/Q== dependencies: - "@ethersproject/abi" "^5.6.3" - web3-utils "1.9.0" + "@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" web3-eth-accounts@1.2.11: version "1.2.11" @@ -18054,21 +17591,19 @@ web3-eth-accounts@1.2.11: web3-core-method "1.2.11" web3-utils "1.2.11" -web3-eth-accounts@1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.9.0.tgz#fab7d563c63bdff2aa5ad89a94faf128961d9504" - integrity sha512-VeIZVevmnSll0AC1k5F/y398ZE89d1SRuYk8IewLUhL/tVAsFEsjl2SGgm0+aDcHmgPrkW+qsCJ+C7rWg/N4ZA== +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" + integrity sha512-MIC5FOzP/+2evDksQQ/dpcXhSqa/2hFNytdl/x61IeWxhh6vlFeSjq0YVTAyIzdjwnL7nEmZpjfI6y6/Ufhy7w== 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.9.0" - web3-core-helpers "1.9.0" - web3-core-method "1.9.0" - web3-utils "1.9.0" + "@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" web3-eth-contract@1.2.11: version "1.2.11" @@ -18085,19 +17620,19 @@ web3-eth-contract@1.2.11: web3-eth-abi "1.2.11" web3-utils "1.2.11" -web3-eth-contract@1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.9.0.tgz#00b7ac8314d562d10d7dd0c7d0f52555c3862995" - integrity sha512-+j26hpSaEtAdUed0TN5rnc+YZOcjPxMjFX4ZBKatvFkImdbVv/tzTvcHlltubSpgb2ZLyZ89lSL6phKYwd2zNQ== +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" + integrity sha512-3hpGgzX3qjgxNAmqdrC2YUQMTfnZbs4GeLEmy8aCWziVwogbuqQZ+Gzdfrym45eOZodk+lmXyLuAdqkNlvkc1g== dependencies: - "@types/bn.js" "^5.1.1" - web3-core "1.9.0" - web3-core-helpers "1.9.0" - web3-core-method "1.9.0" - web3-core-promievent "1.9.0" - web3-core-subscriptions "1.9.0" - web3-eth-abi "1.9.0" - web3-utils "1.9.0" + 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" web3-eth-ens@1.2.11: version "1.2.11" @@ -18114,19 +17649,13 @@ web3-eth-ens@1.2.11: web3-eth-contract "1.2.11" web3-utils "1.2.11" -web3-eth-ens@1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.9.0.tgz#2014b16e1116be5ab34404a8db29ad1d8632ced0" - integrity sha512-LOJZeN+AGe9arhuExnrPPFYQr4WSxXEkpvYIlst/joOEUNLDwfndHnJIK6PI5mXaYSROBtTx6erv+HupzGo7vA== +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" + integrity sha512-0l+SP3IGhInw7Q20LY3IVafYEuufo4Dn75jAHT7c2aDJsIolvf2Lc6ugHkBajlwUneGfbRQs/ccYPQ9JeMUbrg== dependencies: - content-hash "^2.5.2" - eth-ens-namehash "2.0.8" - web3-core "1.9.0" - web3-core-helpers "1.9.0" - web3-core-promievent "1.9.0" - web3-eth-abi "1.9.0" - web3-eth-contract "1.9.0" - web3-utils "1.9.0" + bn.js "^5.2.1" + web3-utils "1.10.0" web3-eth-iban@1.2.11: version "1.2.11" @@ -18136,13 +17665,17 @@ web3-eth-iban@1.2.11: bn.js "^4.11.9" web3-utils "1.2.11" -web3-eth-iban@1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.9.0.tgz#a8f838e42c20d49ff58aaa9f67ece47a968e40b1" - integrity sha512-jPAm77PuEs1kE/UrrBFJdPD2PN42pwfXA0gFuuw35bZezhskYML9W4QCxcqnUtceyEA4FUn7K2qTMuCk+23fog== +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" + integrity sha512-anseKn98w/d703eWq52uNuZi7GhQeVjTC5/svrBWEKob0WZ5kPdo+EZoFN0sp5a5ubbrk/E0xSl1/M5yORMtpg== dependencies: - bn.js "^5.2.1" - web3-utils "1.9.0" + "@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" web3-eth-personal@1.2.11: version "1.2.11" @@ -18156,17 +17689,23 @@ web3-eth-personal@1.2.11: web3-net "1.2.11" web3-utils "1.2.11" -web3-eth-personal@1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.9.0.tgz#f5092bcb2688979dd7778d5a56ae6922c341ce52" - integrity sha512-r9Ldo/luBqJlv1vCUEQnUS+C3a3ZdbYxVHyfDkj6RWMyCqqo8JE41HWE+pfa0RmB1xnGL2g8TbYcHcqItck/qg== - dependencies: - "@types/node" "^12.12.6" - web3-core "1.9.0" - web3-core-helpers "1.9.0" - web3-core-method "1.9.0" - web3-net "1.9.0" - web3-utils "1.9.0" +web3-eth@1.10.0: + version "1.10.0" + 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" + 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" web3-eth@1.2.11: version "1.2.11" @@ -18187,23 +17726,14 @@ web3-eth@1.2.11: web3-net "1.2.11" web3-utils "1.2.11" -web3-eth@1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.9.0.tgz#1fe82ba429a44b1aa0a3b95de3e79e6c5a9eb00c" - integrity sha512-c5gSWk9bLNr6VPATHmZ1n7LTIefIZQnJMzfnvkoBcIFGKJbGmsuRhv6lEXsKdAO/FlqYnSbaw3fOq1fVFiIOFQ== - dependencies: - web3-core "1.9.0" - web3-core-helpers "1.9.0" - web3-core-method "1.9.0" - web3-core-subscriptions "1.9.0" - web3-eth-abi "1.9.0" - web3-eth-accounts "1.9.0" - web3-eth-contract "1.9.0" - web3-eth-ens "1.9.0" - web3-eth-iban "1.9.0" - web3-eth-personal "1.9.0" - web3-net "1.9.0" - web3-utils "1.9.0" +web3-net@1.10.0: + version "1.10.0" + 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.2.11: version "1.2.11" @@ -18214,15 +17744,6 @@ web3-net@1.2.11: web3-core-method "1.2.11" web3-utils "1.2.11" -web3-net@1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.9.0.tgz#ee8799bf766039aa5b157d6db0be5ffdecd39d64" - integrity sha512-L+fDZFgrLM5Y15aonl2q6L+RvfaImAngmC0Jv45hV2FJ5IfRT0/2ob9etxZmvEBWvOpbqSvghfOhJIT3XZ37Pg== - dependencies: - web3-core "1.9.0" - web3-core-method "1.9.0" - web3-utils "1.9.0" - web3-provider-engine@14.2.1: version "14.2.1" resolved "https://registry.yarnpkg.com/web3-provider-engine/-/web3-provider-engine-14.2.1.tgz#ef351578797bf170e08d529cb5b02f8751329b95" @@ -18277,6 +17798,16 @@ web3-provider-engine@16.0.1: xhr "^2.2.0" xtend "^4.0.1" +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" + 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" + web3-providers-http@1.2.11: version "1.2.11" resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.2.11.tgz#1cd03442c61670572d40e4dcdf1faff8bd91e7c6" @@ -18285,15 +17816,13 @@ web3-providers-http@1.2.11: web3-core-helpers "1.2.11" xhr2-cookies "1.1.0" -web3-providers-http@1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.9.0.tgz#93cd3eb42fff974c9f7634ede1a9795d6435c3fe" - integrity sha512-5+dMNDAE0rRFz6SJpfnBqlVi2J5bB/Ivr2SanMt2YUrkxW5t8betZbzVwRkTbwtUvkqgj3xeUQzqpOttiv+IqQ== +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" + integrity sha512-OfXG1aWN8L1OUqppshzq8YISkWrYHaATW9H8eh0p89TlWMc1KZOL9vttBuaBEi96D/n0eYDn2trzt22bqHWfXA== dependencies: - abortcontroller-polyfill "^1.7.3" - cross-fetch "^3.1.4" - es6-promise "^4.2.8" - web3-core-helpers "1.9.0" + oboe "2.1.5" + web3-core-helpers "1.10.0" web3-providers-ipc@1.2.11: version "1.2.11" @@ -18304,13 +17833,14 @@ web3-providers-ipc@1.2.11: underscore "1.9.1" web3-core-helpers "1.2.11" -web3-providers-ipc@1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.9.0.tgz#db486cb0dde9062ac6055478861e3d37535924d2" - integrity sha512-cPXU93Du40HCylvjaa5x62DbnGqH+86HpK/+kMcFIzF6sDUBhKpag2tSbYhGbj7GMpfkmDTUiiMLdWnFV6+uBA== +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" + integrity sha512-sK0fNcglW36yD5xjnjtSGBnEtf59cbw4vZzJ+CmOWIKGIR96mP5l684g0WD0Eo+f4NQc2anWWXG74lRc9OVMCQ== dependencies: - oboe "2.1.5" - web3-core-helpers "1.9.0" + eventemitter3 "4.0.4" + web3-core-helpers "1.10.0" + websocket "^1.0.32" web3-providers-ws@1.2.11: version "1.2.11" @@ -18322,14 +17852,15 @@ web3-providers-ws@1.2.11: web3-core-helpers "1.2.11" websocket "^1.0.31" -web3-providers-ws@1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.9.0.tgz#568330766e8abbb6eb43e1153a72fb24398fcb7e" - integrity sha512-JRVsnQZ7j2k1a2yzBNHe39xqk1ijOv01dfIBFw52VeEkSRzvrOcsPIM/ttSyBuJqt70ntMxXY0ekCrqfleKH/w== +web3-shh@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.10.0.tgz#c2979b87e0f67a7fef2ce9ee853bd7bfbe9b79a8" + integrity sha512-uNUUuNsO2AjX41GJARV9zJibs11eq6HtOe6Wr0FtRUcj8SN6nHeYIzwstAvJ4fXA53gRqFMTxdntHEt9aXVjpg== dependencies: - eventemitter3 "4.0.4" - web3-core-helpers "1.9.0" - websocket "^1.0.32" + web3-core "1.10.0" + web3-core-method "1.10.0" + web3-core-subscriptions "1.10.0" + web3-net "1.10.0" web3-shh@1.2.11: version "1.2.11" @@ -18341,15 +17872,18 @@ web3-shh@1.2.11: web3-core-subscriptions "1.2.11" web3-net "1.2.11" -web3-shh@1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.9.0.tgz#75a37cd9f78d485ee5f018e2e66853e1e1c6ce4f" - integrity sha512-bIBZlralgz4ICCrwkefB2nPPJWfx28NuHIpjB7d9ADKynElubQuqudYhKtSEkKXACuME/BJm0pIFJcJs/gDnMg== +web3-utils@1.10.0, web3-utils@^1.0.0-beta.31, web3-utils@^1.3.0, web3-utils@^1.6.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.10.0.tgz#ca4c1b431a765c14ac7f773e92e0fd9377ccf578" + integrity sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg== dependencies: - web3-core "1.9.0" - web3-core-method "1.9.0" - web3-core-subscriptions "1.9.0" - web3-net "1.9.0" + 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-utils@1.2.11: version "1.2.11" @@ -18378,19 +17912,6 @@ web3-utils@1.7.0: randombytes "^2.1.0" utf8 "3.0.0" -web3-utils@1.9.0, web3-utils@^1.0.0-beta.31, web3-utils@^1.3.0, web3-utils@^1.6.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.9.0.tgz#7c5775a47586cefb4ad488831be8f6627be9283d" - integrity sha512-p++69rCNNfu2jM9n5+VD/g26l+qkEOQ1m6cfRQCbH8ZRrtquTmrirJMgTmyOoax5a5XRYOuws14aypCOs51pdQ== - 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.2.11: version "1.2.11" resolved "https://registry.yarnpkg.com/web3/-/web3-1.2.11.tgz#50f458b2e8b11aa37302071c170ed61cff332975" @@ -18405,17 +17926,17 @@ web3@1.2.11: web3-utils "1.2.11" web3@^1.6.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/web3/-/web3-1.9.0.tgz#4fde5d134f8ee11355ed5bfa1bb41f8bc58e23f3" - integrity sha512-E9IvVy/d2ozfQQsCiV+zh/LmlZGv9fQxI0UedDVjm87yOKf4AYbBNEn1iWtHveiGzAk2CEMZMUzAZzaQNSSYog== + version "1.10.0" + resolved "https://registry.yarnpkg.com/web3/-/web3-1.10.0.tgz#2fde0009f59aa756c93e07ea2a7f3ab971091274" + integrity sha512-YfKY9wSkGcM8seO+daR89oVTcbu18NsVfvOngzqMYGUU0pPSQmE57qQDvQzUeoIOHAnXEBNzrhjQJmm8ER0rng== dependencies: - web3-bzz "1.9.0" - web3-core "1.9.0" - web3-eth "1.9.0" - web3-eth-personal "1.9.0" - web3-net "1.9.0" - web3-shh "1.9.0" - web3-utils "1.9.0" + 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" webcrypto-core@^1.7.7: version "1.7.7" @@ -18566,9 +18087,9 @@ which-module@^1.0.0: integrity sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ== which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q== + version "2.0.1" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409" + integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== which-typed-array@^1.1.2, which-typed-array@^1.1.9: version "1.1.9" @@ -18596,13 +18117,6 @@ which@^1.2.9: 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" - integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== - dependencies: - string-width "^1.0.2 || 2" - widest-line@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" @@ -18637,11 +18151,6 @@ worker-threads@^1.0.0: resolved "https://registry.yarnpkg.com/worker-threads/-/worker-threads-1.0.0.tgz#2b49ea7c9692ba737d9148f2c9b2be65e14e3470" integrity sha512-vK6Hhvph8oLxocEJIlc3YfGAZhm210uGzjZsXSu+JYLAQ/s/w4Tqgl60JrdH58hW8NSGP4m3bp8a92qPXgX05w== -workerpool@6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.1.0.tgz#a8e038b4c94569596852de7a8ea4228eefdeb37b" - integrity sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg== - workerpool@6.2.1: version "6.2.1" resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343" @@ -18836,6 +18345,11 @@ yaml@1.10.2, yaml@^1.10.0, yaml@^1.10.2, yaml@^1.7.2: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== +yaml@^2.1.1: + version "2.3.0" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.0.tgz#47ebe58ee718f772ce65862beb1db816210589a0" + integrity sha512-8/1wgzdKc7bc9E6my5wZjmdavHLvO/QOmLG1FBugblEvY4IXrLjlViIOmL24HthU042lWTDRO90Fz1Yp66UnMw== + yargs-parser@20.2.4: version "20.2.4" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" @@ -18970,9 +18484,9 @@ yargs@^15.3.1: yargs-parser "^18.1.2" yargs@^17.0.0: - version "17.7.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.1.tgz#34a77645201d1a8fc5213ace787c220eabbd0967" - integrity sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw== + version "17.7.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== dependencies: cliui "^8.0.1" escalade "^3.1.1" From 2fb9fdadaaf725f6cf3e2325686e554277fec70a Mon Sep 17 00:00:00 2001 From: yuetloo Date: Mon, 12 Jun 2023 17:14:37 -0400 Subject: [PATCH 004/338] add MACI poseidon contract artifacts --- contracts/hardhat.config.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/contracts/hardhat.config.ts b/contracts/hardhat.config.ts index b25d4ed08..e95e6787d 100644 --- a/contracts/hardhat.config.ts +++ b/contracts/hardhat.config.ts @@ -175,12 +175,17 @@ task( async (_, { config }, runSuper) => { await runSuper() // Copy Poseidon artifacts - const externalContracts: Array = [] + const externalContracts: Array = [ + 'PoseidonT3', + 'PoseidonT4', + 'PoseidonT5', + 'PoseidonT6', + ] for (const contractName of externalContracts) { const artifact = JSON.parse( fs .readFileSync( - `../node_modules/maci-contracts/artifacts/contracts/${contractName}.sol/${contractName}.json` + `../node_modules/maci-contracts/artifacts/contracts/crypto/Hasher.sol/${contractName}.json` ) .toString() ) From 8d138dc1b69ea81e613a209dcd67bbbf19055fea Mon Sep 17 00:00:00 2001 From: yuetloo Date: Tue, 5 Sep 2023 10:49:59 -0400 Subject: [PATCH 005/338] add TODO comment --- contracts/contracts/MACIFactory.sol | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/contracts/contracts/MACIFactory.sol b/contracts/contracts/MACIFactory.sol index ef76ceb45..5c199fbfa 100644 --- a/contracts/contracts/MACIFactory.sol +++ b/contracts/contracts/MACIFactory.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.10; -import 'maci-contracts/contracts/MACI.sol'; +import {MACI} from 'maci-contracts/contracts/MACI.sol'; import {PollFactory} from 'maci-contracts/contracts/Poll.sol'; import {SignUpGatekeeper} from 'maci-contracts/contracts/gatekeepers/SignUpGatekeeper.sol'; import {InitialVoiceCreditProxy} from 'maci-contracts/contracts/initialVoiceCreditProxy/InitialVoiceCreditProxy.sol'; @@ -21,11 +21,13 @@ contract MACIFactory { external returns (MACI _maci) { + // create poll factory _maci = new MACI( pollFactory, signUpGatekeeper, initialVoiceCreditProxy ); + // transfer poll factory owner to maci emit MaciDeployed(address(_maci)); } } From 0693e3257afa5d525b5528638b77ed9d2b9b664b Mon Sep 17 00:00:00 2001 From: yuetloo Date: Fri, 8 Sep 2023 12:05:27 -0400 Subject: [PATCH 006/338] remove deprecated lib js-ipfs --- vue-app/package.json | 1 - vue-app/src/api/__tests__/ipfs.spec.ts | 21 ++++ vue-app/src/api/ipfs.ts | 15 +++ vue-app/src/views/JoinView.vue | 5 +- yarn.lock | 154 +------------------------ 5 files changed, 40 insertions(+), 156 deletions(-) create mode 100644 vue-app/src/api/__tests__/ipfs.spec.ts diff --git a/vue-app/package.json b/vue-app/package.json index a99ea9016..ee632d07a 100644 --- a/vue-app/package.json +++ b/vue-app/package.json @@ -39,7 +39,6 @@ "graphql-request": "5.1.0", "graphql-tag": "^2.12.6", "humanize-duration": "^3.27.3", - "is-ipfs": "^7.0.3", "luxon": "^3.1.1", "markdown-it": "^13.0.1", "markdown-it-link-attributes": "^4.0.1", diff --git a/vue-app/src/api/__tests__/ipfs.spec.ts b/vue-app/src/api/__tests__/ipfs.spec.ts new file mode 100644 index 000000000..ea6b2e405 --- /dev/null +++ b/vue-app/src/api/__tests__/ipfs.spec.ts @@ -0,0 +1,21 @@ +import { expect } from 'vitest' +import { IPFS } from '@/api/ipfs' + +describe('ipfs', () => { + describe('isValidCid()', () => { + it('should return true for valid CID', async () => { + const hash = 'QmQ7wdiWd4DUWfWpGmKCnDEMEopMGT4hg5PubALhBQfPF9' + expect(IPFS.isValidCid(hash)).to.be.true + }) + + it('should return false for empty CID', async () => { + const hash = '' + expect(IPFS.isValidCid(hash)).to.be.false + }) + + it('should return false for invalid CID', async () => { + const hash = 'invalid' + expect(IPFS.isValidCid(hash)).to.be.false + }) + }) +}) diff --git a/vue-app/src/api/ipfs.ts b/vue-app/src/api/ipfs.ts index f3199ff59..0053ab6cc 100644 --- a/vue-app/src/api/ipfs.ts +++ b/vue-app/src/api/ipfs.ts @@ -1,4 +1,5 @@ import { ipfsPinningUrl, ipfsPinningJwt, ipfsApiKey, ipfsSecretApiKey } from './core' +import { CID } from 'multiformats/cid' export class IPFS { url: string @@ -41,4 +42,18 @@ export class IPFS { const json = await result.json() return json.IpfsHash } + + /** + * Check if a CID hash has valid format + * + * @param hash CID string + * @returns true if the hash is a valid CID format + */ + static isValidCid(hash: string): boolean { + try { + return Boolean(hash) && Boolean(CID.parse(hash)) + } catch { + return false + } + } } diff --git a/vue-app/src/views/JoinView.vue b/vue-app/src/views/JoinView.vue index e7085c59d..3f86e8c64 100644 --- a/vue-app/src/views/JoinView.vue +++ b/vue-app/src/views/JoinView.vue @@ -725,8 +725,8 @@ import { useRecipientStore, useAppStore, useUserStore } from '@/stores' import { waitForTransactionAndCheck } from '@/utils/contracts' import { addRecipient as _addRecipient } from '@/api/recipient-registry' import { isValidEthAddress, resolveEns } from '@/utils/accounts' -import * as isIPFS from 'is-ipfs' import { toReactive } from '@vueuse/core' +import { IPFS } from '@/api/ipfs' const route = useRoute() const router = useRouter() @@ -798,8 +798,7 @@ const txHash = ref('') const txError = ref('') function validIpfsHash(hash: string): boolean { - const isValid = Boolean(hash) && isIPFS.cid(hash) - return isValid + return IPFS.isValidCid(hash) } const isNavDisabled = computed( diff --git a/yarn.lock b/yarn.lock index dbfce13b9..aa5c0a2df 100644 --- a/yarn.lock +++ b/yarn.lock @@ -573,18 +573,6 @@ resolved "https://registry.yarnpkg.com/@chainsafe/as-sha256/-/as-sha256-0.3.1.tgz#3639df0e1435cab03f4d9870cc3ac079e57a6fc9" integrity sha512-hldFFYuf49ed7DAakWVXSJODuq3pzJEguD8tQ7h+sGkM18vja+OFoJI9krnGmgzyuZC2ETX0NOIcCTy31v2Mtg== -"@chainsafe/is-ip@^2.0.1": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@chainsafe/is-ip/-/is-ip-2.0.2.tgz#7311e7403f11d8c5cfa48111f56fcecaac37c9f6" - integrity sha512-ndGqEMG1W5WkGagaqOZHpPU172AGdxr+LD15sv3WIUvT5oCFUrG1Y0CW/v2Egwj4JXEvSibaIIIqImsm98y1nA== - -"@chainsafe/netmask@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@chainsafe/netmask/-/netmask-2.0.0.tgz#0d4a75f47919f65011da4327a3845c9661f1038a" - integrity sha512-I3Z+6SWUoaljh3TBzCnCxjlUyN8tA+NAk5L6m9IxvCf1BENQTePzPMis97CoN/iMW1St3WN+AWCCRp+TTBRiDg== - dependencies: - "@chainsafe/is-ip" "^2.0.1" - "@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" @@ -2204,19 +2192,6 @@ ethers "^5.0.3" rlp "^2.2.5" -"@libp2p/interface@^0.1.1": - version "0.1.2" - resolved "https://registry.yarnpkg.com/@libp2p/interface/-/interface-0.1.2.tgz#4ea5a4fa8bbd46c3fe4c945ff6b8c6d5d41f10b0" - integrity sha512-Q5t27434Mvn+R6AUJlRH+q/jSXarDpP+KXVkyGY7S1fKPI2berqoFPqT61bRRBYsCH2OPZiKBB53VUzxL9uEvg== - dependencies: - "@multiformats/multiaddr" "^12.1.5" - abortable-iterator "^5.0.1" - it-pushable "^3.2.0" - it-stream-types "^2.0.1" - multiformats "^12.0.1" - p-defer "^4.0.0" - uint8arraylist "^2.4.3" - "@lit-labs/ssr-dom-shim@^1.0.0", "@lit-labs/ssr-dom-shim@^1.1.0": version "1.1.1" resolved "https://registry.yarnpkg.com/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.1.1.tgz#64df34e2f12e68e78ac57e571d25ec07fa460ca9" @@ -2329,38 +2304,6 @@ "@motionone/dom" "^10.16.2" tslib "^2.3.1" -"@multiformats/mafmt@^11.0.3": - version "11.1.2" - resolved "https://registry.yarnpkg.com/@multiformats/mafmt/-/mafmt-11.1.2.tgz#c03ef4022c795b7f230b136f2f974fc263eac4f1" - integrity sha512-3n1o5eLU7WzTAPLuz3AodV7Iql6NWf7Ws8fqVaGT7o5nDDabUPYGBm2cZuh3OrqmwyCY61LrNUIsjzivU6UdpQ== - dependencies: - "@multiformats/multiaddr" "^12.0.0" - -"@multiformats/multiaddr@^11.0.0": - version "11.6.1" - resolved "https://registry.yarnpkg.com/@multiformats/multiaddr/-/multiaddr-11.6.1.tgz#ec46984a298e715e27a398434c087856db5f3185" - integrity sha512-doST0+aB7/3dGK9+U5y3mtF3jq85KGbke1QiH0KE1F5mGQ9y56mFebTeu2D9FNOm+OT6UHb8Ss8vbSnpGjeLNw== - dependencies: - "@chainsafe/is-ip" "^2.0.1" - dns-over-http-resolver "^2.1.0" - err-code "^3.0.1" - multiformats "^11.0.0" - uint8arrays "^4.0.2" - varint "^6.0.0" - -"@multiformats/multiaddr@^12.0.0", "@multiformats/multiaddr@^12.1.5": - version "12.1.7" - resolved "https://registry.yarnpkg.com/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz#eb71733be20dd9f0ac0ff4c3ffe4bae422726beb" - integrity sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA== - dependencies: - "@chainsafe/is-ip" "^2.0.1" - "@chainsafe/netmask" "^2.0.0" - "@libp2p/interface" "^0.1.1" - dns-over-http-resolver "^2.1.0" - multiformats "^12.0.1" - uint8-varint "^2.0.1" - uint8arrays "^4.0.2" - "@netlify/binary-info@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@netlify/binary-info/-/binary-info-1.0.0.tgz#cd0d86fb783fb03e52067f0cd284865e57be86c8" @@ -5095,14 +5038,6 @@ abort-controller@^3.0.0: dependencies: event-target-shim "^5.0.0" -abortable-iterator@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/abortable-iterator/-/abortable-iterator-5.0.1.tgz#5d93eba6fa8287a973a9ea090c64ca08b3777780" - integrity sha512-hlZ5Z8UwqrKsJcelVPEqDduZowJPBQJ9ZhBC2FXpja3lXy8X6MoI5uMzIgmrA8+3jcVnp8TF/tx+IBBqYJNUrg== - dependencies: - get-iterator "^2.0.0" - it-stream-types "^2.0.1" - abortcontroller-polyfill@^1.7.5: version "1.7.5" resolved "https://registry.yarnpkg.com/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz#6738495f4e901fbb57b6c0611d0c75f76c485bed" @@ -8856,16 +8791,6 @@ dns-over-http-resolver@^1.2.3: native-fetch "^3.0.0" receptacle "^1.3.2" -dns-over-http-resolver@^2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/dns-over-http-resolver/-/dns-over-http-resolver-2.1.2.tgz#fb478af244dd4fed5e0f798a3e6426d92730378c" - integrity sha512-Bjbf6aZjr3HMnwGslZnoW3MJVqgbTsh39EZWpikx2yLl9xEjw4eZhlOHCFhkOu89zoWaS4rqe2Go53TXW4Byiw== - dependencies: - debug "^4.3.1" - native-fetch "^4.0.2" - receptacle "^1.3.2" - undici "^5.12.0" - docker-compose@0.23.19: version "0.23.19" resolved "https://registry.yarnpkg.com/docker-compose/-/docker-compose-0.23.19.tgz#9947726e2fe67bdfa9e8efe1ff15aa0de2e10eb8" @@ -11358,11 +11283,6 @@ get-iterator@^1.0.2: resolved "https://registry.yarnpkg.com/get-iterator/-/get-iterator-1.0.2.tgz#cd747c02b4c084461fac14f48f6b45a80ed25c82" integrity sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg== -get-iterator@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/get-iterator/-/get-iterator-2.0.1.tgz#a904829f61bace789e0d64bd1a504c511a015c3f" - integrity sha512-7HuY/hebu4gryTDT7O/XY/fvY9wRByEGdK6QOa4of8npTcv0+NS6frFKABcf6S9EBAsveTuKTsZQQBFMMNILIg== - get-own-enumerable-property-symbols@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" @@ -13089,17 +13009,6 @@ is-ip@^3.1.0: dependencies: ip-regex "^4.0.0" -is-ipfs@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/is-ipfs/-/is-ipfs-7.0.3.tgz#e68beb321a943e0f3ce23f6e441cdba8553312a2" - integrity sha512-IwjmN5DYrWQgk75dPX9WOFDbGpStJg6SLMLXXlxwpI3/SnwAIz3PwrdnxB+s2k+RjOTn9ueFIbGWxF2VMUYmLQ== - dependencies: - "@multiformats/mafmt" "^11.0.3" - "@multiformats/multiaddr" "^11.0.0" - iso-url "^1.1.3" - multiformats "^10.0.1" - uint8arrays "^4.0.2" - is-lower-case@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/is-lower-case/-/is-lower-case-2.0.2.tgz#1c0884d3012c841556243483aa5d522f47396d2a" @@ -13387,7 +13296,7 @@ iso-url@^0.4.7, iso-url@~0.4.7: resolved "https://registry.yarnpkg.com/iso-url/-/iso-url-0.4.7.tgz#de7e48120dae46921079fe78f325ac9e9217a385" integrity sha512-27fFRDnPAMnHGLq36bWTpKET+eiXct3ENlCcdcMdk+mjXrb2kw3mhBUg1B7ewAC0kVzlOPhADzQgz1SE6Tglog== -iso-url@^1.1.3, iso-url@^1.1.5: +iso-url@^1.1.5: version "1.2.1" resolved "https://registry.yarnpkg.com/iso-url/-/iso-url-1.2.1.tgz#db96a49d8d9a64a1c889fc07cc525d093afb1811" integrity sha512-9JPDgCN4B7QPkLtYAAOrEuAWvP9rWvR5offAr0/SeF046wIkglqH3VXgYYP6NcsKslH80UIVgmPqNe3j7tG2ng== @@ -13477,18 +13386,6 @@ it-peekable@^1.0.2: resolved "https://registry.yarnpkg.com/it-peekable/-/it-peekable-1.0.3.tgz#8ebe933767d9c5aa0ae4ef8e9cb3a47389bced8c" integrity sha512-5+8zemFS+wSfIkSZyf0Zh5kNN+iGyccN02914BY4w/Dj+uoFEoPSvj5vaWn8pNZJNSxzjW0zHRxC3LUb2KWJTQ== -it-pushable@^3.2.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/it-pushable/-/it-pushable-3.2.1.tgz#72d7ccf7e7c0ccecf8cbaf74064f7be56e775c59" - integrity sha512-sLFz2Q0oyDCJpTciZog7ipP4vSftfPy3e6JnH6YyztRa1XqkpGQaafK3Jw/JlfEBtCXfnX9uVfcpu3xpSAqCVQ== - dependencies: - p-defer "^4.0.0" - -it-stream-types@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/it-stream-types/-/it-stream-types-2.0.1.tgz#69cb4d7e79e707b8257a8997e02751ccb6c3af32" - integrity sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg== - it-to-stream@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/it-to-stream/-/it-to-stream-1.0.0.tgz#6c47f91d5b5df28bda9334c52782ef8e97fe3a4a" @@ -15676,21 +15573,6 @@ multicodec@^1.0.0, multicodec@^1.0.1: buffer "^5.6.0" varint "^5.0.0" -multiformats@^10.0.1: - version "10.0.3" - resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-10.0.3.tgz#d4147d01f9a31271c6fb5d24adf9b01f9e656bba" - integrity sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw== - -multiformats@^11.0.0: - version "11.0.2" - resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-11.0.2.tgz#b14735efc42cd8581e73895e66bebb9752151b60" - integrity sha512-b5mYMkOkARIuVZCpvijFj9a6m5wMVLC7cf/jIPd5D/ARDOfLC5+IFkbgDXQgcU2goIsTD/O9NY4DI/Mt4OGvlg== - -multiformats@^12.0.1: - version "12.1.0" - resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-12.1.0.tgz#0c344239c7d8dc60c8079935b1dbb12e39d22214" - integrity sha512-/qTOKKnU8nwcVURjRcS+UN0QYgdS5BPZzY10Aiciu2SqncyCVMGV8KtD83EBFmsuJDsSEmT4sGvzcTkCoMw0sQ== - multiformats@^9.4.13, multiformats@^9.4.2, multiformats@^9.4.5, multiformats@^9.5.4: version "9.9.0" resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-9.9.0.tgz#c68354e7d21037a8f1f8833c8ccd68618e8f1d37" @@ -15836,11 +15718,6 @@ native-fetch@^3.0.0: resolved "https://registry.yarnpkg.com/native-fetch/-/native-fetch-3.0.0.tgz#06ccdd70e79e171c365c75117959cf4fe14a09bb" integrity sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw== -native-fetch@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/native-fetch/-/native-fetch-4.0.2.tgz#75c8a44c5f3bb021713e5e24f2846750883e49af" - integrity sha512-4QcVlKFtv2EYVS5MBgsGX5+NWKtbDbIECdUXDBGDMAZXq3Jkv9zf+y8iS7Ub8fEdga3GpYeazp9gauNqXHJOCg== - 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" @@ -16613,11 +16490,6 @@ p-defer@^3.0.0: resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-3.0.0.tgz#d1dceb4ee9b2b604b1d94ffec83760175d4e6f83" integrity sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw== -p-defer@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-4.0.0.tgz#8082770aeeb10eb6b408abe91866738741ddd5d2" - integrity sha512-Vb3QRvQ0Y5XnF40ZUWW7JfLogicVh/EnA5gBIvKDJoYpeI82+1E3AlB9yOcKFS0AhHrWVnAQO39fbR0G99IVEQ== - p-event@^4.1.0: version "4.2.0" resolved "https://registry.yarnpkg.com/p-event/-/p-event-4.2.0.tgz#af4b049c8acd91ae81083ebd1e6f5cae2044c1b5" @@ -20580,21 +20452,6 @@ uid-safe@2.1.5: dependencies: random-bytes "~1.0.0" -uint8-varint@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/uint8-varint/-/uint8-varint-2.0.1.tgz#e8f73c24974b384f6f0e1cd73c884c5a19e32f53" - integrity sha512-euvmpuulJstK5+xNuI4S1KfnxJnbI5QP52RXIR3GZ3/ZMkOsEK2AgCtFpNvEQLXMxMx2o0qcyevK1fJwOZJagQ== - dependencies: - uint8arraylist "^2.0.0" - uint8arrays "^4.0.2" - -uint8arraylist@^2.0.0, uint8arraylist@^2.4.3: - version "2.4.3" - resolved "https://registry.yarnpkg.com/uint8arraylist/-/uint8arraylist-2.4.3.tgz#1148aa979b407d382e4eb8d9c8f2b4bf3f5910d5" - integrity sha512-oEVZr4/GrH87K0kjNce6z8pSCzLEPqHNLNR5sj8cJOySrTP8Vb/pMIbZKLJGhQKxm1TiZ31atNrpn820Pyqpow== - dependencies: - uint8arrays "^4.0.2" - uint8arrays@^3.0.0, uint8arrays@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-3.1.1.tgz#2d8762acce159ccd9936057572dade9459f65ae0" @@ -20602,13 +20459,6 @@ uint8arrays@^3.0.0, uint8arrays@^3.1.0: dependencies: multiformats "^9.4.2" -uint8arrays@^4.0.2: - version "4.0.6" - resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-4.0.6.tgz#bae68b536c2e87147045b95d73d29e503e45ecab" - integrity sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw== - dependencies: - multiformats "^12.0.1" - ulid@2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/ulid/-/ulid-2.3.0.tgz#93063522771a9774121a84d126ecd3eb9804071f" @@ -20647,7 +20497,7 @@ underscore@1.9.1: resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.9.1.tgz#06dce34a0e68a7babc29b365b8e74b8925203961" integrity sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg== -undici@^5.12.0, undici@^5.14.0: +undici@^5.14.0: version "5.23.0" resolved "https://registry.yarnpkg.com/undici/-/undici-5.23.0.tgz#e7bdb0ed42cebe7b7aca87ced53e6eaafb8f8ca0" integrity sha512-1D7w+fvRsqlQ9GscLBwcAJinqcZGHUKjbOmXdlE/v8BvEGXjeWAax+341q44EuTcHXXnfyKNbKRq4Lg7OzhMmg== From 547c64dfdcf472a1086ef5f75935eab058c27fdf Mon Sep 17 00:00:00 2001 From: yuetloo Date: Mon, 11 Sep 2023 23:45:56 -0400 Subject: [PATCH 007/338] use maci v1 in e2e tests --- .github/scripts/download-zkeys-micro.sh | 17 +++ .github/workflows/test-e2e.yml | 3 +- common/package.json | 1 + common/src/index.ts | 15 +++ common/src/utils.ts | 5 +- contracts/e2e/index.ts | 135 ++++++++++++++--------- contracts/utils/contracts.ts | 2 +- contracts/utils/deployment.ts | 133 ++++++++++++---------- vue-app/src/auto-import.d.ts | 140 ++++++++++++------------ vue-app/src/components.d.ts | 110 +++++++++---------- yarn.lock | 58 ++++++++++ 11 files changed, 382 insertions(+), 237 deletions(-) create mode 100755 .github/scripts/download-zkeys-micro.sh diff --git a/.github/scripts/download-zkeys-micro.sh b/.github/scripts/download-zkeys-micro.sh new file mode 100755 index 000000000..b6192cd7e --- /dev/null +++ b/.github/scripts/download-zkeys-micro.sh @@ -0,0 +1,17 @@ +#!/bin/bash +set -e + +PKGS="ProcessMessages_10-2-1-2_test.0.zkey TallyVotes_10-1-2_test.0.zkey" + +mkdir -p params +cd params + + +BASE_URL=https://maci-develop-fra.s3.eu-central-1.amazonaws.com/v1.1.1-aa4ba27/10-2-1-2 +for p in $PKGS +do + url="$BASE_URL/$p" + echo "downloading $url" + curl $url -o $p +done + diff --git a/.github/workflows/test-e2e.yml b/.github/workflows/test-e2e.yml index 9e1729e1a..3487c98bf 100644 --- a/.github/workflows/test-e2e.yml +++ b/.github/workflows/test-e2e.yml @@ -41,7 +41,7 @@ jobs: path: monorepo - name: Download batch 64 zk circuit params run: | - $GITHUB_WORKSPACE/monorepo/.github/scripts/download-batch64-params.sh + $GITHUB_WORKSPACE/monorepo/.github/scripts/download-zkeys-micro.sh - name: Build Clrfund run: | cd monorepo @@ -52,6 +52,7 @@ jobs: yarn start:node & - name: Run tests run: | + export CIRCUIT_TYPE=micro export NODE_CONFIG=$(node -e "const snarkParamsPath=process.env.GITHUB_WORKSPACE + '/params'; console.log(JSON.stringify({ snarkParamsPath }));") echo $NODE_CONFIG cd monorepo diff --git a/common/package.json b/common/package.json index 88176b04e..fce9dec8c 100644 --- a/common/package.json +++ b/common/package.json @@ -14,6 +14,7 @@ "typescript": "^4.9.3" }, "dependencies": { + "@clrfund/maci-cli": "^1.1.1", "@openzeppelin/merkle-tree": "^1.0.5", "ethers": "^5.7.2", "maci-crypto": "1.1.1", diff --git a/common/src/index.ts b/common/src/index.ts index b9a1324c2..4423212f7 100644 --- a/common/src/index.ts +++ b/common/src/index.ts @@ -1,3 +1,8 @@ +import { extractVk } from 'maci-circuits' +import { VerifyingKey } from 'maci-domainobjs' +import { genProcessVkSig, genTallyVkSig, genSubsidyVkSig } from 'maci-core' +import { deployMaci, linkPoseidonLibraries } from 'maci-contracts' + export * from './block' export * from './proof' export * from './merkle' @@ -5,3 +10,13 @@ export * from './ipfs' export * from './keypair' export * from './tally' export * from './utils' + +export { + extractVk, + VerifyingKey, + genProcessVkSig, + genTallyVkSig, + genSubsidyVkSig, + deployMaci, + linkPoseidonLibraries, +} diff --git a/common/src/utils.ts b/common/src/utils.ts index 2c5c28201..e5b334456 100644 --- a/common/src/utils.ts +++ b/common/src/utils.ts @@ -4,6 +4,7 @@ import { PubKey, PCommand, Message } from 'maci-domainobjs' import { Keypair } from './keypair' import { utils } from 'ethers' import { Tally } from './tally' +import { genProof, proofOnChain } from '@clrfund/maci-cli' const LEAVES_PER_NODE = 5 @@ -94,7 +95,7 @@ export function getRecipientClaimData( return [ recipientIndex, spent, - spentProof.pathElements.map((x) => x.map((y) => y.toString())), + spentProof.pathElements.map(x => x.map(y => y.toString())), spentSalt, ] } @@ -116,4 +117,6 @@ export { IncrementalQuinTree, hash5, LEAVES_PER_NODE, + proofOnChain, + genProof, } diff --git a/contracts/e2e/index.ts b/contracts/e2e/index.ts index f204356f0..c39682f99 100644 --- a/contracts/e2e/index.ts +++ b/contracts/e2e/index.ts @@ -3,16 +3,21 @@ import { ethers, waffle } from 'hardhat' import { use, expect } from 'chai' import { solidity } from 'ethereum-waffle' import { BigNumber, Contract, Signer, Wallet, utils } from 'ethers' -import { genProofs, proveOnChain } from 'maci-cli' -import { Keypair, createMessage, Message, PubKey } from '@clrfund/common' +import { + Keypair, + createMessage, + Message, + PubKey, + genProofs, + proveOnChain, +} from '@clrfund/common' import { UNIT } from '../utils/constants' import { getEventArg } from '../utils/contracts' import { - deployContract, deployMaciFactory, - deployPoseidon, CIRCUITS, + getZkeyFilePath, } from '../utils/deployment' import { getIpfsHash } from '../utils/ipfs' import { @@ -25,7 +30,7 @@ use(solidity) const ZERO = BigNumber.from(0) -describe('End-to-end Tests', function () { +describe('End-to-end Tests', function() { this.timeout(60 * 60 * 1000) this.bail(true) @@ -46,6 +51,7 @@ describe('End-to-end Tests', function () { let token: Contract let fundingRound: Contract let maci: Contract + let pollId: bigint let maciParameters: MaciParameters let coordinatorKeypair: Keypair @@ -69,27 +75,34 @@ describe('End-to-end Tests', function () { }) // Deploy funding round factory - const poseidonT3 = await deployPoseidon(deployer, 'PoseidonT3') - const poseidonT6 = await deployPoseidon(deployer, 'PoseidonT6') - const circuit = process.env.CIRCUIT_TYPE || 'prod' + const circuit = process.env.CIRCUIT_TYPE || 'micro' const params = CIRCUITS[circuit] - const batchUstVerifier = await deployContract( - deployer, - params.batchUstVerifier + + const processMessagesZkey = getZkeyFilePath(params.processMessagesZkey) + const tallyVotesZkey = getZkeyFilePath(params.tallyVotesZkey) + + const maciFactory = await deployMaciFactory(deployer) + const setMaciTx = await maciFactory.setMaciParameters( + params.treeDepths.stateTreeDepth, + params.treeDepths.intStateTreeDepth, + params.treeDepths.messageTreeDepth, + params.treeDepths.voteOptionTreeDepth, + params.treeDepths.messageBatchTreeDepth, + processMessagesZkey, + tallyVotesZkey ) - const qvtVerifier = await deployContract(deployer, params.qvtVerifier) - const maciFactory = await deployMaciFactory(deployer, circuit, { - poseidonT3, - poseidonT6, - batchUstVerifier, - qvtVerifier, - }) + await setMaciTx.wait() + const FundingRoundFactory = await ethers.getContractFactory( 'FundingRoundFactory', deployer ) fundingRoundFactory = await FundingRoundFactory.deploy(maciFactory.address) - await maciFactory.transferOwnership(fundingRoundFactory.address) + const transferTx = await maciFactory.transferOwnership( + fundingRoundFactory.address + ) + await transferTx.wait() + const SimpleUserRegistry = await ethers.getContractFactory( 'SimpleUserRegistry', deployer @@ -104,7 +117,6 @@ describe('End-to-end Tests', function () { fundingRoundFactory.address ) await fundingRoundFactory.setRecipientRegistry(recipientRegistry.address) - maciParameters = await MaciParameters.read(maciFactory) // Deploy ERC20 token contract const Token = await ethers.getContractFactory('AnyOldERC20Token', deployer) @@ -123,7 +135,6 @@ describe('End-to-end Tests', function () { coordinator.address, coordinatorKeypair.pubKey.asContractParam() ) - await fundingRoundFactory.setMaciParameters(...maciParameters.values()) // Add funds to matching pool const poolContributionAmount = UNIT.mul(5) @@ -166,7 +177,7 @@ describe('End-to-end Tests', function () { ) // Deploy new funding round and MACI - await fundingRoundFactory.deployNewRound() + const newRoundTx = await fundingRoundFactory.deployNewRound() const fundingRoundAddress = await fundingRoundFactory.getCurrentRound() fundingRound = await ethers.getContractAt( 'FundingRound', @@ -174,6 +185,13 @@ describe('End-to-end Tests', function () { ) const maciAddress = await fundingRound.maci() maci = await ethers.getContractAt('MACI', maciAddress) + + pollId = BigInt( + await getEventArg(newRoundTx, maciAddress, 'DeployPoll', '_pollId') + ) + + const setPollTx = await fundingRound.setPoll(pollId) + await setPollTx.wait() }) async function makeContributions(amounts: BigNumber[]) { @@ -312,7 +330,8 @@ describe('End-to-end Tests', function () { coordinatorKeypair.pubKey, null, null, - nonce + nonce, + pollId ) messages.push(message) encPubKeys.push(encPubKey) @@ -328,7 +347,8 @@ describe('End-to-end Tests', function () { coordinatorKeypair.pubKey, recipientIndex, voiceCredits, - nonce + nonce, + pollId ) messages.push(message) encPubKeys.push(encPubKey) @@ -336,8 +356,8 @@ describe('End-to-end Tests', function () { } await fundingRound.connect(contributor).submitMessageBatch( - messages.reverse().map((msg) => msg.asContractParam()), - encPubKeys.reverse().map((key) => key.asContractParam()) + messages.reverse().map(msg => msg.asContractParam()), + encPubKeys.reverse().map(key => key.asContractParam()) ) } @@ -371,15 +391,16 @@ describe('End-to-end Tests', function () { coordinatorKeypair.pubKey, recipientIndex, voiceCredits, - nonce + nonce, + pollId ) messages.push(message) encPubKeys.push(encPubKey) nonce += 1 } await fundingRound.connect(contributor).submitMessageBatch( - messages.reverse().map((msg) => msg.asContractParam()), - encPubKeys.reverse().map((key) => key.asContractParam()) + messages.reverse().map(msg => msg.asContractParam()), + encPubKeys.reverse().map(key => key.asContractParam()) ) } @@ -413,15 +434,16 @@ describe('End-to-end Tests', function () { coordinatorKeypair.pubKey, recipientIndex, voiceCredits, - nonce + nonce, + pollId ) nonce += 1 messages.push(message) encPubKeys.push(encPubKey) } await fundingRound.connect(contributor).submitMessageBatch( - messages.reverse().map((msg) => msg.asContractParam()), - encPubKeys.reverse().map((key) => key.asContractParam()) + messages.reverse().map(msg => msg.asContractParam()), + encPubKeys.reverse().map(key => key.asContractParam()) ) const [message, encPubKey] = createMessage( contribution2.stateIndex, @@ -430,7 +452,8 @@ describe('End-to-end Tests', function () { coordinatorKeypair.pubKey, 2, contribution2.voiceCredits, - 1 + 1, + pollId ) await fundingRound .connect(contribution2.signer) @@ -472,15 +495,16 @@ describe('End-to-end Tests', function () { coordinatorKeypair.pubKey, recipientIndex, voiceCredits, - nonce + nonce, + pollId ) nonce += 1 messages.push(message) encPubKeys.push(encPubKey) } await fundingRound.connect(contributor).submitMessageBatch( - messages.reverse().map((msg) => msg.asContractParam()), - encPubKeys.reverse().map((key) => key.asContractParam()) + messages.reverse().map(msg => msg.asContractParam()), + encPubKeys.reverse().map(key => key.asContractParam()) ) // contribution 2 @@ -491,7 +515,8 @@ describe('End-to-end Tests', function () { coordinatorKeypair.pubKey, 2, contribution2.voiceCredits, - 1 + 1, + pollId ) await fundingRound .connect(contribution2.signer) @@ -540,15 +565,16 @@ describe('End-to-end Tests', function () { coordinatorKeypair.pubKey, recipientIndex, voiceCredits, - nonce + nonce, + pollId ) nonce += 1 messages.push(message) encPubKeys.push(encPubKey) } await fundingRound.connect(contributor).submitMessageBatch( - messages.reverse().map((msg) => msg.asContractParam()), - encPubKeys.reverse().map((key) => key.asContractParam()) + messages.reverse().map(msg => msg.asContractParam()), + encPubKeys.reverse().map(key => key.asContractParam()) ) } @@ -560,7 +586,8 @@ describe('End-to-end Tests', function () { coordinatorKeypair.pubKey, 2, contribution2.voiceCredits, - 1 + 1, + pollId ) await fundingRound .connect(contribution2.signer) @@ -599,7 +626,8 @@ describe('End-to-end Tests', function () { coordinatorKeypair.pubKey, 1, contribution.voiceCredits, - 1 + 1, + pollId ) messageBatch1.push(message) encPubKeyBatch1.push(encPubKey) @@ -611,13 +639,14 @@ describe('End-to-end Tests', function () { coordinatorKeypair.pubKey, null, null, - 2 + 2, + pollId ) messageBatch1.push(message) encPubKeyBatch1.push(encPubKey) await fundingRound.connect(contributor).submitMessageBatch( - messageBatch1.reverse().map((msg) => msg.asContractParam()), - encPubKeyBatch1.reverse().map((key) => key.asContractParam()) + messageBatch1.reverse().map(msg => msg.asContractParam()), + encPubKeyBatch1.reverse().map(key => key.asContractParam()) ) // Wait for signup period to end to override votes @@ -633,7 +662,8 @@ describe('End-to-end Tests', function () { coordinatorKeypair.pubKey, null, null, - 1 + 1, + pollId ) messageBatch2.push(message) encPubKeyBatch2.push(encPubKey) @@ -645,7 +675,8 @@ describe('End-to-end Tests', function () { coordinatorKeypair.pubKey, 1, BigNumber.from(0), - 2 + 2, + pollId ) messageBatch2.push(message) encPubKeyBatch2.push(encPubKey) @@ -657,13 +688,14 @@ describe('End-to-end Tests', function () { coordinatorKeypair.pubKey, 2, contribution.voiceCredits, - 3 + 3, + pollId ) messageBatch2.push(message) encPubKeyBatch2.push(encPubKey) await fundingRound.connect(contributor).submitMessageBatch( - messageBatch2.reverse().map((msg) => msg.asContractParam()), - encPubKeyBatch2.reverse().map((key) => key.asContractParam()) + messageBatch2.reverse().map(msg => msg.asContractParam()), + encPubKeyBatch2.reverse().map(key => key.asContractParam()) ) // contribution 2 @@ -674,7 +706,8 @@ describe('End-to-end Tests', function () { coordinatorKeypair.pubKey, 2, contribution2.voiceCredits, - 1 + 1, + pollId ) await fundingRound .connect(contribution2.signer) diff --git a/contracts/utils/contracts.ts b/contracts/utils/contracts.ts index 9fa12808d..f6ef16ef6 100644 --- a/contracts/utils/contracts.ts +++ b/contracts/utils/contracts.ts @@ -1,4 +1,4 @@ -import { BigNumber, Contract, utils } from 'ethers' +import { BigNumber, Contract } from 'ethers' import { TransactionResponse } from '@ethersproject/abstract-provider' export async function getGasUsage( diff --git a/contracts/utils/deployment.ts b/contracts/utils/deployment.ts index 342de8d81..cc62ceef1 100644 --- a/contracts/utils/deployment.ts +++ b/contracts/utils/deployment.ts @@ -20,6 +20,13 @@ export interface BrightIdParams { sponsor: string } +export interface PoseidonContracts { + PoseidonT3Contract: Contract + PoseidonT4Contract: Contract + PoseidonT5Contract: Contract + PoseidonT6Contract: Contract +} + /** * Return the brightid user registry contructor parameter values * @param userRegistryType user registry type @@ -114,22 +121,33 @@ export const CIRCUITS: { [name: string]: any } = { messageBatchSize: 8, }, }, - prod: { - batchUstVerifier: 'BatchUpdateStateTreeVerifierBatch64', - qvtVerifier: 'QuadVoteTallyVerifierBatch64', + micro: { + //https://github.com/privacy-scaling-explorations/maci/wiki/Precompiled-v1.1.1#micro-size + processMessagesZkey: 'ProcessMessages_10-2-1-2_test.0.zkey', + tallyVotesZkey: 'TallyVotes_10-1-2_test.0.zkey', treeDepths: { - stateTreeDepth: 32, - messageTreeDepth: 32, - voteOptionTreeDepth: 3, + stateTreeDepth: 10, + messageTreeDepth: 2, + messageBatchTreeDepth: 1, + voteOptionTreeDepth: 2, + intStateTreeDepth: 1, }, - batchSizes: { - tallyBatchSize: 64, - messageBatchSize: 64, + }, + //https://github.com/privacy-scaling-explorations/maci/wiki/Precompiled-v1.1.1#prod-size + prod: { + processMessagesZkey: 'ProcessMessages_7-9-3-4_test.0.zkey', + tallyVotesZkey: 'TallyVotes_7-3-4_test.0.zkey', + treeDepths: { + stateTreeDepth: 7, + messageTreeDepth: 9, + messageBatchTreeDepth: 3, + voteOptionTreeDepth: 4, + intStateTreeDepth: 3, }, }, } -type PoseidonName = 'PoseidonT3' | 'PoseidonT6' +type PoseidonName = 'PoseidonT3' | 'PoseidonT4' | 'PoseidonT5' | 'PoseidonT6' /** * Deploy the PoseidonT3 or PoseidonT6 contracts. These 2 contracts @@ -175,61 +193,22 @@ export async function deployContract( return await contract.deployed() } -interface MaciFactoryDependencies { - poseidonT3?: Contract - poseidonT6?: Contract - batchUstVerifier?: Contract - qvtVerifier?: Contract -} - -export async function deployMaciFactory( - account: Signer, - circuit = 'x32', - { - poseidonT3, - poseidonT6, - batchUstVerifier, - qvtVerifier, - }: MaciFactoryDependencies = {} -): Promise { - if (!poseidonT3) { - poseidonT3 = await deployPoseidon(account, 'PoseidonT3') - } - if (!poseidonT6) { - poseidonT6 = await deployPoseidon(account, 'PoseidonT6') - } - if (!batchUstVerifier) { - const BatchUstVerifier = await ethers.getContractFactory( - CIRCUITS[circuit].batchUstVerifier, - account - ) - batchUstVerifier = await BatchUstVerifier.deploy() - } - if (!qvtVerifier) { - const QvtVerifier = await ethers.getContractFactory( - CIRCUITS[circuit].qvtVerifier, - account - ) - qvtVerifier = await QvtVerifier.deploy() - } +export async function deployMaciFactory(account: Signer): Promise { + const poseidonContracts = await deployPoseidonContracts(account) - const maciLibraries: Libraries = { - 'maci-contracts/sol/Poseidon.sol:PoseidonT3': poseidonT3.address, - 'maci-contracts/sol/Poseidon.sol:PoseidonT6': poseidonT6.address, + const libraries = { + PoseidonT3: poseidonContracts.PoseidonT3Contract.address, + PoseidonT4: poseidonContracts.PoseidonT4Contract.address, + PoseidonT5: poseidonContracts.PoseidonT5Contract.address, + PoseidonT6: poseidonContracts.PoseidonT6Contract.address, } const MACIFactory = await ethers.getContractFactory('MACIFactory', { signer: account, - libraries: maciLibraries, - }) - const maciParameters = new MaciParameters({ - batchUstVerifier: batchUstVerifier.address, - qvtVerifier: qvtVerifier.address, - ...CIRCUITS[circuit].treeDepths, - ...CIRCUITS[circuit].batchSizes, + libraries, }) - const maciFactory = await MACIFactory.deploy(...maciParameters.values()) + const maciFactory = await MACIFactory.deploy() await maciFactory.deployTransaction.wait() return maciFactory @@ -272,3 +251,41 @@ export async function deployUserRegistry( await userRegistry.deployTransaction.wait() return userRegistry } + +/** + * Get the zkey file path + * @param name zkey file name + * @returns zkey file path + */ +export function getZkeyFilePath(name: string): string { + const config = JSON.parse(process.env.NODE_CONFIG || '') + if (!config?.snarkParamsPath) { + throw new Error( + 'Please set the env. variable NODE_CONFIG={"snarkParamsPath": "path-to-zkey-file"}' + ) + } + + return path.join(config.snarkParamsPath, name) +} + +/** + * Deploy all the poseidon contracts + * + * @param signer The signer for the deployment transaction + * @returns the deployed poseidon contracts + */ +export async function deployPoseidonContracts( + signer: Signer +): Promise { + const PoseidonT3Contract = await deployPoseidon(signer, 'PoseidonT3') + const PoseidonT4Contract = await deployPoseidon(signer, 'PoseidonT4') + const PoseidonT5Contract = await deployPoseidon(signer, 'PoseidonT5') + const PoseidonT6Contract = await deployPoseidon(signer, 'PoseidonT6') + + return { + PoseidonT3Contract, + PoseidonT4Contract, + PoseidonT5Contract, + PoseidonT6Contract, + } +} diff --git a/vue-app/src/auto-import.d.ts b/vue-app/src/auto-import.d.ts index a9c78d034..deda2262a 100644 --- a/vue-app/src/auto-import.d.ts +++ b/vue-app/src/auto-import.d.ts @@ -1,74 +1,74 @@ // Generated by 'unplugin-auto-import' export {} declare global { - const EffectScope: (typeof import('vue'))['EffectScope'] - const acceptHMRUpdate: (typeof import('pinia'))['acceptHMRUpdate'] - const computed: (typeof import('vue'))['computed'] - const createApp: (typeof import('vue'))['createApp'] - const createPinia: (typeof import('pinia'))['createPinia'] - const customRef: (typeof import('vue'))['customRef'] - const defineAsyncComponent: (typeof import('vue'))['defineAsyncComponent'] - const defineComponent: (typeof import('vue'))['defineComponent'] - const defineStore: (typeof import('pinia'))['defineStore'] - const effectScope: (typeof import('vue'))['effectScope'] - const getActivePinia: (typeof import('pinia'))['getActivePinia'] - const getCurrentInstance: (typeof import('vue'))['getCurrentInstance'] - const getCurrentScope: (typeof import('vue'))['getCurrentScope'] - const h: (typeof import('vue'))['h'] - const inject: (typeof import('vue'))['inject'] - const isProxy: (typeof import('vue'))['isProxy'] - const isReactive: (typeof import('vue'))['isReactive'] - const isReadonly: (typeof import('vue'))['isReadonly'] - const isRef: (typeof import('vue'))['isRef'] - const mapActions: (typeof import('pinia'))['mapActions'] - const mapGetters: (typeof import('pinia'))['mapGetters'] - const mapState: (typeof import('pinia'))['mapState'] - const mapStores: (typeof import('pinia'))['mapStores'] - const mapWritableState: (typeof import('pinia'))['mapWritableState'] - const markRaw: (typeof import('vue'))['markRaw'] - const nextTick: (typeof import('vue'))['nextTick'] - const onActivated: (typeof import('vue'))['onActivated'] - const onBeforeMount: (typeof import('vue'))['onBeforeMount'] - const onBeforeRouteLeave: (typeof import('vue-router'))['onBeforeRouteLeave'] - const onBeforeRouteUpdate: (typeof import('vue-router'))['onBeforeRouteUpdate'] - const onBeforeUnmount: (typeof import('vue'))['onBeforeUnmount'] - const onBeforeUpdate: (typeof import('vue'))['onBeforeUpdate'] - const onDeactivated: (typeof import('vue'))['onDeactivated'] - const onErrorCaptured: (typeof import('vue'))['onErrorCaptured'] - const onMounted: (typeof import('vue'))['onMounted'] - const onRenderTracked: (typeof import('vue'))['onRenderTracked'] - const onRenderTriggered: (typeof import('vue'))['onRenderTriggered'] - const onScopeDispose: (typeof import('vue'))['onScopeDispose'] - const onServerPrefetch: (typeof import('vue'))['onServerPrefetch'] - const onUnmounted: (typeof import('vue'))['onUnmounted'] - const onUpdated: (typeof import('vue'))['onUpdated'] - const provide: (typeof import('vue'))['provide'] - const reactive: (typeof import('vue'))['reactive'] - const readonly: (typeof import('vue'))['readonly'] - const ref: (typeof import('vue'))['ref'] - const resolveComponent: (typeof import('vue'))['resolveComponent'] - const resolveDirective: (typeof import('vue'))['resolveDirective'] - const setActivePinia: (typeof import('pinia'))['setActivePinia'] - const setMapStoreSuffix: (typeof import('pinia'))['setMapStoreSuffix'] - const shallowReactive: (typeof import('vue'))['shallowReactive'] - const shallowReadonly: (typeof import('vue'))['shallowReadonly'] - const shallowRef: (typeof import('vue'))['shallowRef'] - const storeToRefs: (typeof import('pinia'))['storeToRefs'] - const toRaw: (typeof import('vue'))['toRaw'] - const toRef: (typeof import('vue'))['toRef'] - const toRefs: (typeof import('vue'))['toRefs'] - const triggerRef: (typeof import('vue'))['triggerRef'] - const unref: (typeof import('vue'))['unref'] - const useAttrs: (typeof import('vue'))['useAttrs'] - const useCssModule: (typeof import('vue'))['useCssModule'] - const useCssVars: (typeof import('vue'))['useCssVars'] - const useI18n: (typeof import('vue-i18n'))['useI18n'] - const useLink: (typeof import('vue-router'))['useLink'] - const useRoute: (typeof import('vue-router'))['useRoute'] - const useRouter: (typeof import('vue-router'))['useRouter'] - const useSlots: (typeof import('vue'))['useSlots'] - const watch: (typeof import('vue'))['watch'] - const watchEffect: (typeof import('vue'))['watchEffect'] - const watchPostEffect: (typeof import('vue'))['watchPostEffect'] - const watchSyncEffect: (typeof import('vue'))['watchSyncEffect'] + const EffectScope: typeof import('vue')['EffectScope'] + const acceptHMRUpdate: typeof import('pinia')['acceptHMRUpdate'] + const computed: typeof import('vue')['computed'] + const createApp: typeof import('vue')['createApp'] + const createPinia: typeof import('pinia')['createPinia'] + const customRef: typeof import('vue')['customRef'] + const defineAsyncComponent: typeof import('vue')['defineAsyncComponent'] + const defineComponent: typeof import('vue')['defineComponent'] + const defineStore: typeof import('pinia')['defineStore'] + const effectScope: typeof import('vue')['effectScope'] + const getActivePinia: typeof import('pinia')['getActivePinia'] + const getCurrentInstance: typeof import('vue')['getCurrentInstance'] + const getCurrentScope: typeof import('vue')['getCurrentScope'] + const h: typeof import('vue')['h'] + const inject: typeof import('vue')['inject'] + const isProxy: typeof import('vue')['isProxy'] + const isReactive: typeof import('vue')['isReactive'] + const isReadonly: typeof import('vue')['isReadonly'] + const isRef: typeof import('vue')['isRef'] + const mapActions: typeof import('pinia')['mapActions'] + const mapGetters: typeof import('pinia')['mapGetters'] + const mapState: typeof import('pinia')['mapState'] + const mapStores: typeof import('pinia')['mapStores'] + const mapWritableState: typeof import('pinia')['mapWritableState'] + const markRaw: typeof import('vue')['markRaw'] + const nextTick: typeof import('vue')['nextTick'] + const onActivated: typeof import('vue')['onActivated'] + const onBeforeMount: typeof import('vue')['onBeforeMount'] + const onBeforeRouteLeave: typeof import('vue-router')['onBeforeRouteLeave'] + const onBeforeRouteUpdate: typeof import('vue-router')['onBeforeRouteUpdate'] + const onBeforeUnmount: typeof import('vue')['onBeforeUnmount'] + const onBeforeUpdate: typeof import('vue')['onBeforeUpdate'] + const onDeactivated: typeof import('vue')['onDeactivated'] + const onErrorCaptured: typeof import('vue')['onErrorCaptured'] + const onMounted: typeof import('vue')['onMounted'] + const onRenderTracked: typeof import('vue')['onRenderTracked'] + const onRenderTriggered: typeof import('vue')['onRenderTriggered'] + const onScopeDispose: typeof import('vue')['onScopeDispose'] + const onServerPrefetch: typeof import('vue')['onServerPrefetch'] + const onUnmounted: typeof import('vue')['onUnmounted'] + const onUpdated: typeof import('vue')['onUpdated'] + const provide: typeof import('vue')['provide'] + const reactive: typeof import('vue')['reactive'] + const readonly: typeof import('vue')['readonly'] + const ref: typeof import('vue')['ref'] + const resolveComponent: typeof import('vue')['resolveComponent'] + const resolveDirective: typeof import('vue')['resolveDirective'] + const setActivePinia: typeof import('pinia')['setActivePinia'] + const setMapStoreSuffix: typeof import('pinia')['setMapStoreSuffix'] + const shallowReactive: typeof import('vue')['shallowReactive'] + const shallowReadonly: typeof import('vue')['shallowReadonly'] + const shallowRef: typeof import('vue')['shallowRef'] + const storeToRefs: typeof import('pinia')['storeToRefs'] + const toRaw: typeof import('vue')['toRaw'] + const toRef: typeof import('vue')['toRef'] + const toRefs: typeof import('vue')['toRefs'] + const triggerRef: typeof import('vue')['triggerRef'] + const unref: typeof import('vue')['unref'] + const useAttrs: typeof import('vue')['useAttrs'] + const useCssModule: typeof import('vue')['useCssModule'] + const useCssVars: typeof import('vue')['useCssVars'] + const useI18n: typeof import('vue-i18n')['useI18n'] + const useLink: typeof import('vue-router')['useLink'] + const useRoute: typeof import('vue-router')['useRoute'] + const useRouter: typeof import('vue-router')['useRouter'] + const useSlots: typeof import('vue')['useSlots'] + const watch: typeof import('vue')['watch'] + const watchEffect: typeof import('vue')['watchEffect'] + const watchPostEffect: typeof import('vue')['watchPostEffect'] + const watchSyncEffect: typeof import('vue')['watchSyncEffect'] } diff --git a/vue-app/src/components.d.ts b/vue-app/src/components.d.ts index 26c211c2c..7ccfb0c87 100644 --- a/vue-app/src/components.d.ts +++ b/vue-app/src/components.d.ts @@ -7,60 +7,60 @@ export {} declare module '@vue/runtime-core' { export interface GlobalComponents { - Accordion: (typeof import('./components/Accordion.vue'))['default'] - AddToCartButton: (typeof import('./components/AddToCartButton.vue'))['default'] - BackLink: (typeof import('./components/BackLink.vue'))['default'] - BalanceItem: (typeof import('./components/BalanceItem.vue'))['default'] - Breadcrumbs: (typeof import('./components/Breadcrumbs.vue'))['default'] - BrightIdWidget: (typeof import('./components/BrightIdWidget.vue'))['default'] - CallToActionCard: (typeof import('./components/CallToActionCard.vue'))['default'] - Cart: (typeof import('./components/Cart.vue'))['default'] - CartItems: (typeof import('./components/CartItems.vue'))['default'] - CartWidget: (typeof import('./components/CartWidget.vue'))['default'] - ClaimButton: (typeof import('./components/ClaimButton.vue'))['default'] - ClaimModal: (typeof import('./components/ClaimModal.vue'))['default'] - ComplianceInfo: (typeof import('./components/ComplianceInfo.vue'))['default'] - ContributionModal: (typeof import('./components/ContributionModal.vue'))['default'] - CopyButton: (typeof import('./components/CopyButton.vue'))['default'] - CriteriaModal: (typeof import('./components/CriteriaModal.vue'))['default'] - ErrorModal: (typeof import('./components/ErrorModal.vue'))['default'] - FilterDropdown: (typeof import('./components/FilterDropdown.vue'))['default'] - FormNavigation: (typeof import('./components/FormNavigation.vue'))['default'] - FormProgressWidget: (typeof import('./components/FormProgressWidget.vue'))['default'] - FundsNeededWarning: (typeof import('./components/FundsNeededWarning.vue'))['default'] - IconStatus: (typeof import('./components/IconStatus.vue'))['default'] - ImageResponsive: (typeof import('./components/ImageResponsive.vue'))['default'] - Info: (typeof import('./components/Info.vue'))['default'] - InputButton: (typeof import('./components/InputButton.vue'))['default'] - IpfsCopyWidget: (typeof import('./components/IpfsCopyWidget.vue'))['default'] - IpfsImageUpload: (typeof import('./components/IpfsImageUpload.vue'))['default'] - LayoutSteps: (typeof import('./components/LayoutSteps.vue'))['default'] - LeaderboardDetailView: (typeof import('./components/LeaderboardDetailView.vue'))['default'] - LeaderboardSimpleView: (typeof import('./components/LeaderboardSimpleView.vue'))['default'] - LinkBox: (typeof import('./components/LinkBox.vue'))['default'] - Links: (typeof import('./components/Links.vue'))['default'] - Loader: (typeof import('./components/Loader.vue'))['default'] - Markdown: (typeof import('./components/Markdown.vue'))['default'] - MatchingFundsModal: (typeof import('./components/MatchingFundsModal.vue'))['default'] - MobileTabs: (typeof import('./components/MobileTabs.vue'))['default'] - NavBar: (typeof import('./components/NavBar.vue'))['default'] - ProgressBar: (typeof import('./components/ProgressBar.vue'))['default'] - ProjectListItem: (typeof import('./components/ProjectListItem.vue'))['default'] - ProjectProfile: (typeof import('./components/ProjectProfile.vue'))['default'] - ReallocationModal: (typeof import('./components/ReallocationModal.vue'))['default'] - RecipientSubmissionWidget: (typeof import('./components/RecipientSubmissionWidget.vue'))['default'] - RoundInformation: (typeof import('./components/RoundInformation.vue'))['default'] - RoundStatusBanner: (typeof import('./components/RoundStatusBanner.vue'))['default'] - RouterLink: (typeof import('vue-router'))['RouterLink'] - RouterView: (typeof import('vue-router'))['RouterView'] - SignatureModal: (typeof import('./components/SignatureModal.vue'))['default'] - TimeLeft: (typeof import('./components/TimeLeft.vue'))['default'] - Transaction: (typeof import('./components/Transaction.vue'))['default'] - TransactionModal: (typeof import('./components/TransactionModal.vue'))['default'] - TransactionReceipt: (typeof import('./components/TransactionReceipt.vue'))['default'] - WalletModal: (typeof import('./components/WalletModal.vue'))['default'] - WalletWidget: (typeof import('./components/WalletWidget.vue'))['default'] - Warning: (typeof import('./components/Warning.vue'))['default'] - WithdrawalModal: (typeof import('./components/WithdrawalModal.vue'))['default'] + Accordion: typeof import('./components/Accordion.vue')['default'] + AddToCartButton: typeof import('./components/AddToCartButton.vue')['default'] + BackLink: typeof import('./components/BackLink.vue')['default'] + BalanceItem: typeof import('./components/BalanceItem.vue')['default'] + Breadcrumbs: typeof import('./components/Breadcrumbs.vue')['default'] + BrightIdWidget: typeof import('./components/BrightIdWidget.vue')['default'] + CallToActionCard: typeof import('./components/CallToActionCard.vue')['default'] + Cart: typeof import('./components/Cart.vue')['default'] + CartItems: typeof import('./components/CartItems.vue')['default'] + CartWidget: typeof import('./components/CartWidget.vue')['default'] + ClaimButton: typeof import('./components/ClaimButton.vue')['default'] + ClaimModal: typeof import('./components/ClaimModal.vue')['default'] + ComplianceInfo: typeof import('./components/ComplianceInfo.vue')['default'] + ContributionModal: typeof import('./components/ContributionModal.vue')['default'] + CopyButton: typeof import('./components/CopyButton.vue')['default'] + CriteriaModal: typeof import('./components/CriteriaModal.vue')['default'] + ErrorModal: typeof import('./components/ErrorModal.vue')['default'] + FilterDropdown: typeof import('./components/FilterDropdown.vue')['default'] + FormNavigation: typeof import('./components/FormNavigation.vue')['default'] + FormProgressWidget: typeof import('./components/FormProgressWidget.vue')['default'] + FundsNeededWarning: typeof import('./components/FundsNeededWarning.vue')['default'] + IconStatus: typeof import('./components/IconStatus.vue')['default'] + ImageResponsive: typeof import('./components/ImageResponsive.vue')['default'] + Info: typeof import('./components/Info.vue')['default'] + InputButton: typeof import('./components/InputButton.vue')['default'] + IpfsCopyWidget: typeof import('./components/IpfsCopyWidget.vue')['default'] + IpfsImageUpload: typeof import('./components/IpfsImageUpload.vue')['default'] + LayoutSteps: typeof import('./components/LayoutSteps.vue')['default'] + LeaderboardDetailView: typeof import('./components/LeaderboardDetailView.vue')['default'] + LeaderboardSimpleView: typeof import('./components/LeaderboardSimpleView.vue')['default'] + LinkBox: typeof import('./components/LinkBox.vue')['default'] + Links: typeof import('./components/Links.vue')['default'] + Loader: typeof import('./components/Loader.vue')['default'] + Markdown: typeof import('./components/Markdown.vue')['default'] + MatchingFundsModal: typeof import('./components/MatchingFundsModal.vue')['default'] + MobileTabs: typeof import('./components/MobileTabs.vue')['default'] + NavBar: typeof import('./components/NavBar.vue')['default'] + ProgressBar: typeof import('./components/ProgressBar.vue')['default'] + ProjectListItem: typeof import('./components/ProjectListItem.vue')['default'] + ProjectProfile: typeof import('./components/ProjectProfile.vue')['default'] + ReallocationModal: typeof import('./components/ReallocationModal.vue')['default'] + RecipientSubmissionWidget: typeof import('./components/RecipientSubmissionWidget.vue')['default'] + RoundInformation: typeof import('./components/RoundInformation.vue')['default'] + RoundStatusBanner: typeof import('./components/RoundStatusBanner.vue')['default'] + RouterLink: typeof import('vue-router')['RouterLink'] + RouterView: typeof import('vue-router')['RouterView'] + SignatureModal: typeof import('./components/SignatureModal.vue')['default'] + TimeLeft: typeof import('./components/TimeLeft.vue')['default'] + Transaction: typeof import('./components/Transaction.vue')['default'] + TransactionModal: typeof import('./components/TransactionModal.vue')['default'] + TransactionReceipt: typeof import('./components/TransactionReceipt.vue')['default'] + WalletModal: typeof import('./components/WalletModal.vue')['default'] + WalletWidget: typeof import('./components/WalletWidget.vue')['default'] + Warning: typeof import('./components/Warning.vue')['default'] + WithdrawalModal: typeof import('./components/WithdrawalModal.vue')['default'] } } diff --git a/yarn.lock b/yarn.lock index aa5c0a2df..8ec7b9b64 100644 --- a/yarn.lock +++ b/yarn.lock @@ -604,6 +604,34 @@ "@chainsafe/persistent-merkle-tree" "^0.4.2" case "^1.6.3" +"@clrfund/maci-cli@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@clrfund/maci-cli/-/maci-cli-1.1.1.tgz#5274bf3b49c09bed71d8b5ed5bbdb3280b47151f" + integrity sha512-j/woChsnH7b2ElcAvBSuozK+od5H8dyW01F3jyA/FXk/gTdCbn9ABNpClnVjp1dGHQFlYfahEuLJ4TUciPsLhw== + dependencies: + "@nomiclabs/hardhat-ethers" "^2.0.2" + argparse "^1.0.10" + circom_runtime "^0.1.22" + circomlib "^2.0.5" + ethers "^5.0.0" + ffiasm "0.1.3" + hardhat "^2.0.11" + js-yaml "4.0.0" + maci-circuits "1.1.1" + maci-common "1.1.1" + maci-contracts "1.1.1" + maci-core "1.1.1" + maci-crypto "1.1.1" + maci-domainobjs "1.1.1" + prompt-async "^0.9.9" + shelljs "^0.8.4" + snarkjs "^0.5.0" + source-map-support "^0.5.19" + typescript "^4.2.3" + web3 "^1.3.4" + xmlhttprequest "1.8.0" + zkey-manager "^0.1.1" + "@colors/colors@1.5.0": version "1.5.0" resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" @@ -7463,6 +7491,11 @@ circomlib@^2.0.0, circomlib@^2.0.5: ffjavascript "0.1.0" web3-utils "^1.3.0" +"circomlib@github:weijiekoh/circomlib#ac85e82c1914d47789e2032fb11ceb2cfdd38a2b": + version "1.0.0" + uid ac85e82c1914d47789e2032fb11ceb2cfdd38a2b + resolved "https://codeload.github.com/weijiekoh/circomlib/tar.gz/ac85e82c1914d47789e2032fb11ceb2cfdd38a2b" + "circomlib@https://github.com/weijiekoh/circomlib#ac85e82c1914d47789e2032fb11ceb2cfdd38a2b": version "1.0.0" resolved "https://github.com/weijiekoh/circomlib#ac85e82c1914d47789e2032fb11ceb2cfdd38a2b" @@ -14721,6 +14754,17 @@ luxon@^3.1.1, luxon@^3.2.1: resolved "https://registry.yarnpkg.com/luxon/-/luxon-3.4.2.tgz#f5bcab779f3d6a943ee7c8621c2b416bc10abd24" integrity sha512-uBoAVCVcajsrqy3pv7eo5jEUz1oeLmCcnMv8n4AJpT5hbpN9lUssAXibNElpbLce3Mhm9dyBzwYLs9zctM/0tA== +maci-circuits@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/maci-circuits/-/maci-circuits-1.1.1.tgz#640d2cf9950013ca192e83f39cb4bbc5dbf59ea4" + integrity sha512-t5Vk8Z45joTot/Yc63rBT0LGNIaENzGHQiZXsFYSFv92waAEpHlDyP5KzE6m2x73i9I8IFx6HNHxm11Ppc8umA== + dependencies: + argparse "^2.0.1" + circomlib "github:weijiekoh/circomlib#ac85e82c1914d47789e2032fb11ceb2cfdd38a2b" + shelljs "^0.8.3" + snarkjs "^0.5.0" + tmp "^0.2.1" + maci-circuits@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/maci-circuits/-/maci-circuits-1.1.2.tgz#56aebc6e8f121dad5c5b3de32a5edd7c920fa5d3" @@ -14759,6 +14803,11 @@ maci-cli@1.1.1: xmlhttprequest "1.8.0" zkey-manager "^0.1.1" +maci-common@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/maci-common/-/maci-common-1.1.1.tgz#63b0ff5e42ec5f2a6f549b0e88b0066fcaf5b45e" + integrity sha512-+t+LMJHvmfyl6Q5j9Qxf1IbtUno9PxS0jdHcjBa7jdZLsuXu0eYDCD0Z+oTg4oA2jdqn68xua2s2moU43pgOMw== + maci-common@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/maci-common/-/maci-common-1.1.2.tgz#8105633d2425a3ce7cf7b3d6700cf82987287b08" @@ -14795,6 +14844,15 @@ maci-contracts@^1.1.1: module-alias "^2.2.2" typescript "^4.2.3" +maci-core@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/maci-core/-/maci-core-1.1.1.tgz#1dd767b2a222c49b7c9bc0f270a0b7096f10463c" + integrity sha512-zoB1sGW2b/l2/bXVYd3YM69GSkmnGmouML1W7IbGTjDZiAXY1FqALug5PEsvVww/wA/+lbu+UoPeKAQM7FDAVg== + dependencies: + maci-crypto "^1.1.1" + maci-domainobjs "^1.1.1" + module-alias "^2.2.2" + maci-core@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/maci-core/-/maci-core-1.1.2.tgz#97dbc70a20fe6fad548d62d3d65ca53d61743435" From e8b6787d77ca1e77a9c87dc288094b2b7ad71bfa Mon Sep 17 00:00:00 2001 From: yuetloo Date: Wed, 13 Sep 2023 01:09:25 -0400 Subject: [PATCH 008/338] use maci 1.1.1 --- common/package.json | 1 - common/src/index.ts | 3 - common/src/utils.ts | 7 +- contracts/contracts/ClrFund.sol | 139 +++++----------- contracts/contracts/ClrFundDeployer.sol | 30 +--- contracts/contracts/FundingRound.sol | 155 ++++++++++++------ contracts/contracts/FundingRoundFactory.sol | 56 +++---- contracts/contracts/MACIFactory.sol | 51 +++++- .../contracts/MessageAqFactoryDeployer.sol | 21 --- contracts/contracts/PollFactoryDeployer.sol | 23 --- contracts/contracts/TopupCreditDeployer.sol | 24 --- contracts/contracts/VkRegistryDeployer.sol | 24 --- contracts/e2e/index.ts | 61 ++++--- contracts/hardhat.config.ts | 9 +- contracts/tasks/index.ts | 32 ++-- contracts/utils/deployment.ts | 33 +++- package.json | 4 +- yarn.lock | 58 ------- 18 files changed, 313 insertions(+), 418 deletions(-) delete mode 100644 contracts/contracts/MessageAqFactoryDeployer.sol delete mode 100644 contracts/contracts/PollFactoryDeployer.sol delete mode 100644 contracts/contracts/TopupCreditDeployer.sol delete mode 100644 contracts/contracts/VkRegistryDeployer.sol diff --git a/common/package.json b/common/package.json index fce9dec8c..88176b04e 100644 --- a/common/package.json +++ b/common/package.json @@ -14,7 +14,6 @@ "typescript": "^4.9.3" }, "dependencies": { - "@clrfund/maci-cli": "^1.1.1", "@openzeppelin/merkle-tree": "^1.0.5", "ethers": "^5.7.2", "maci-crypto": "1.1.1", diff --git a/common/src/index.ts b/common/src/index.ts index 4423212f7..6d66794f9 100644 --- a/common/src/index.ts +++ b/common/src/index.ts @@ -1,7 +1,6 @@ import { extractVk } from 'maci-circuits' import { VerifyingKey } from 'maci-domainobjs' import { genProcessVkSig, genTallyVkSig, genSubsidyVkSig } from 'maci-core' -import { deployMaci, linkPoseidonLibraries } from 'maci-contracts' export * from './block' export * from './proof' @@ -17,6 +16,4 @@ export { genProcessVkSig, genTallyVkSig, genSubsidyVkSig, - deployMaci, - linkPoseidonLibraries, } diff --git a/common/src/utils.ts b/common/src/utils.ts index e5b334456..d2c62db1a 100644 --- a/common/src/utils.ts +++ b/common/src/utils.ts @@ -4,7 +4,6 @@ import { PubKey, PCommand, Message } from 'maci-domainobjs' import { Keypair } from './keypair' import { utils } from 'ethers' import { Tally } from './tally' -import { genProof, proofOnChain } from '@clrfund/maci-cli' const LEAVES_PER_NODE = 5 @@ -44,7 +43,7 @@ export function createMessage( voteOptionIndex: number | null, voiceCredits: BigNumber | null, nonce: number, - pollId: BigInt, + pollId: bigint, salt?: bigint ): [Message, PubKey] { const encKeypair = newUserKeypair ? newUserKeypair : userKeypair @@ -95,7 +94,7 @@ export function getRecipientClaimData( return [ recipientIndex, spent, - spentProof.pathElements.map(x => x.map(y => y.toString())), + spentProof.pathElements.map((x) => x.map((y) => y.toString())), spentSalt, ] } @@ -117,6 +116,4 @@ export { IncrementalQuinTree, hash5, LEAVES_PER_NODE, - proofOnChain, - genProof, } diff --git a/contracts/contracts/ClrFund.sol b/contracts/contracts/ClrFund.sol index 7221f1d10..36fd7e85b 100644 --- a/contracts/contracts/ClrFund.sol +++ b/contracts/contracts/ClrFund.sol @@ -1,27 +1,28 @@ // SPDX-License-Identifier: GPL-3.0 -pragma solidity ^0.8.10; +pragma solidity 0.8.10; -import {ERC20} from '@openzeppelin/contracts/token/ERC20/ERC20.sol'; -import {SafeERC20} from '@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol'; -import {EnumerableSet} from '@openzeppelin/contracts/utils/structs/EnumerableSet.sol'; +import '@openzeppelin/contracts/token/ERC20/ERC20.sol'; +import '@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol'; +import '@openzeppelin/contracts/utils/structs/EnumerableSet.sol'; // Import ownable from OpenZeppelin contracts import {MACI} from 'maci-contracts/contracts/MACI.sol'; -import {SignUpGatekeeper} from 'maci-contracts/contracts/gatekeepers/SignUpGatekeeper.sol'; -import {InitialVoiceCreditProxy} from 'maci-contracts/contracts/initialVoiceCreditProxy/InitialVoiceCreditProxy.sol'; -import {VkRegistry} from "maci-contracts/contracts/VkRegistry.sol"; -import {TopupCredit} from "maci-contracts/contracts/TopupCredit.sol"; +import {SnarkCommon} from 'maci-contracts/contracts/crypto/SnarkCommon.sol'; +import {SignUpGatekeeper} from "maci-contracts/contracts/gatekeepers/SignUpGatekeeper.sol"; +import {InitialVoiceCreditProxy} from "maci-contracts/contracts/initialVoiceCreditProxy/InitialVoiceCreditProxy.sol"; import {Params} from 'maci-contracts/contracts/Params.sol'; +import {PollFactory} from 'maci-contracts/contracts/Poll.sol'; +import {DomainObjs} from 'maci-contracts/contracts/DomainObjs.sol'; import './userRegistry/IUserRegistry.sol'; import './recipientRegistry/IRecipientRegistry.sol'; import './MACIFactory.sol'; import './FundingRound.sol'; -import "./OwnableUpgradeable.sol"; +import './OwnableUpgradeable.sol'; -contract ClrFund is OwnableUpgradeable, DomainObjs, Params, SignUpGatekeeper, InitialVoiceCreditProxy { +contract ClrFund is OwnableUpgradeable, SnarkCommon, Params, DomainObjs { using EnumerableSet for EnumerableSet.AddressSet; using SafeERC20 for ERC20; @@ -29,15 +30,13 @@ contract ClrFund is OwnableUpgradeable, DomainObjs, Params, SignUpGatekeeper, In address public coordinator; ERC20 public nativeToken; - MACI public maci; - + MACIFactory public maciFactory; IUserRegistry public userRegistry; IRecipientRegistry public recipientRegistry; PubKey public coordinatorPubKey; EnumerableSet.AddressSet private fundingSources; FundingRound[] private rounds; - mapping(address => bool) public contributors; // Events event FundingSourceAdded(address _source); @@ -48,16 +47,12 @@ contract ClrFund is OwnableUpgradeable, DomainObjs, Params, SignUpGatekeeper, In event CoordinatorChanged(address _coordinator); function init( - MACI _maci, - VkRegistry vkRegistry, - MessageAqFactory messageAqFactory, - TopupCredit topupCredit + MACIFactory _maciFactory ) external { __Ownable_init(); - maci = _maci; - maci.init(vkRegistry, messageAqFactory, topupCredit); + maciFactory = _maciFactory; } /** @@ -74,13 +69,13 @@ contract ClrFund is OwnableUpgradeable, DomainObjs, Params, SignUpGatekeeper, In /** * @dev Set recipient registry. * @param _recipientRegistry Address of a recipient registry. - * @param maxVoteOptions Maximum number of recipients to accept */ - function setRecipientRegistry(IRecipientRegistry _recipientRegistry, uint256 maxVoteOptions) + function setRecipientRegistry(IRecipientRegistry _recipientRegistry) external onlyOwner { recipientRegistry = _recipientRegistry; + (, uint256 maxVoteOptions) = maciFactory.maxValues(); recipientRegistry.setMaxRecipients(maxVoteOptions); } @@ -121,48 +116,29 @@ contract ClrFund is OwnableUpgradeable, DomainObjs, Params, SignUpGatekeeper, In return rounds[rounds.length - 1]; } -/* TODO - init vkRegistry here.. function setMaciParameters( - uint8 _stateTreeDepth, uint8 _messageTreeDepth, - uint8 _voteOptionTreeDepth, - uint8 _tallyBatchSize, - uint8 _messageBatchSize, - SnarkVerifier _batchUstVerifier, - SnarkVerifier _qvtVerifier, - uint256 _signUpDuration, - uint256 _votingDuration - ) + uint8 _voteOptionTreeDepth + ) external onlyOwner { maciFactory.setMaciParameters( - _stateTreeDepth, _messageTreeDepth, - _voteOptionTreeDepth, - _tallyBatchSize, - _messageBatchSize, - _batchUstVerifier, - _qvtVerifier, - _signUpDuration, - _votingDuration + _voteOptionTreeDepth ); } -*/ /** * @dev Deploy new funding round. + * @param duration The poll duration in seconds + * @param vkRegistry The VkRegistry contract address */ - function deployNewRound( - uint256 maxVoteOptions, - uint256 duration, - MaxValues memory maxValues, - TreeDepths memory treeDepths - ) + function deployNewRound(uint256 duration, address vkRegistry, address pollFactory, TreeDepths calldata treeDepths) external onlyOwner { - require(address(maci) != address(0), 'Factory: MACI not deployed'); + require(maciFactory.owner() == address(this), 'Factory: MACI factory is not owned by FR factory'); require(address(userRegistry) != address(0), 'Factory: User registry is not set'); require(address(recipientRegistry) != address(0), 'Factory: Recipient registry is not set'); require(address(nativeToken) != address(0), 'Factory: Native token is not set'); @@ -173,18 +149,9 @@ contract ClrFund is OwnableUpgradeable, DomainObjs, Params, SignUpGatekeeper, In 'Factory: Current round is not finalized' ); // Make sure that the max number of recipients is set correctly + (uint256 maxMessages, uint256 maxVoteOptions) = maciFactory.maxValues(); recipientRegistry.setMaxRecipients(maxVoteOptions); - - // deploy a new poll in MACI - // TODO set the poll later after retrieving the address from the event - maci.deployPoll( - duration, - maxValues, - treeDepths, - coordinatorPubKey - ); - - // Deploy funding round + // Deploy funding round and MACI contracts FundingRound newRound = new FundingRound( nativeToken, userRegistry, @@ -192,6 +159,18 @@ contract ClrFund is OwnableUpgradeable, DomainObjs, Params, SignUpGatekeeper, In coordinator ); rounds.push(newRound); + MACI maci = maciFactory.deployMaci( + SignUpGatekeeper(newRound), + InitialVoiceCreditProxy(newRound), + vkRegistry, + pollFactory, + address(nativeToken) + ); + + MaxValues memory maxValues = MaxValues(maxMessages, maxVoteOptions); + maci.deployPoll(duration, maxValues, treeDepths, coordinatorPubKey); + newRound.setMaci(maci); + emit RoundStarted(address(newRound)); } @@ -267,7 +246,7 @@ contract ClrFund is OwnableUpgradeable, DomainObjs, Params, SignUpGatekeeper, In * @param _token Address of the token contract. */ function setToken(address _token) - internal + external onlyOwner { nativeToken = ERC20(_token); @@ -311,46 +290,4 @@ contract ClrFund is OwnableUpgradeable, DomainObjs, Params, SignUpGatekeeper, In require(msg.sender == coordinator, 'Factory: Sender is not the coordinator'); _; } - - /** - * @dev Register user for voting. - * This function is part of SignUpGatekeeper interface. - * @param _data Encoded address of a contributor. - */ - function register( - address /* _caller */, - bytes memory _data - ) - public - override - { - require(address(userRegistry) != address(0), 'FundingRound: User registry not deployed'); - require(msg.sender == address(maci), 'FundingRound: Only MACI contract can register voters'); - address user = abi.decode(_data, (address)); - bool verified = userRegistry.isVerifiedUser(user); - require(verified, 'FundingRound: User has not been verified'); - require(!contributors[user], 'FundingRound: User already registered'); - contributors[user] = true; - // maci.signup(); - } - - /** - * @dev Get the amount of voice credits for a given address. - * This function is a part of the InitialVoiceCreditProxy interface. - * - */ - function getVoiceCredits( - address /* _caller */, - bytes memory /* _data // Encoded address of contributor */ - ) - public - override - pure - returns (uint256) - { - // always zero as users do not contribute on signup. - // They only contribute during a funding round when they are ready to vote, - // via the MACI topup function - return 0; - } } diff --git a/contracts/contracts/ClrFundDeployer.sol b/contracts/contracts/ClrFundDeployer.sol index 94f78022c..8f209938a 100644 --- a/contracts/contracts/ClrFundDeployer.sol +++ b/contracts/contracts/ClrFundDeployer.sol @@ -21,16 +21,12 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -pragma solidity ^0.8.10; +pragma solidity 0.8.10; + import './MACIFactory.sol'; -import './PollFactoryDeployer.sol'; -import './VkRegistryDeployer.sol'; -import './TopupCreditDeployer.sol'; -import './MessageAqFactoryDeployer.sol'; import './ClrFund.sol'; -import {MessageAqFactory, PollFactory} from 'maci-contracts/contracts/Poll.sol'; -import {SignUpGatekeeper} from 'maci-contracts/contracts/gatekeepers/SignUpGatekeeper.sol'; -import {InitialVoiceCreditProxy} from 'maci-contracts/contracts/initialVoiceCreditProxy/InitialVoiceCreditProxy.sol'; +import {SignUpGatekeeper} from "maci-contracts/contracts/gatekeepers/SignUpGatekeeper.sol"; +import {InitialVoiceCreditProxy} from "maci-contracts/contracts/initialVoiceCreditProxy/InitialVoiceCreditProxy.sol"; contract CloneFactory { // implementation of eip-1167 - see https://eips.ethereum.org/EIPS/eip-1167 function createClone(address target) internal returns (address result) { @@ -66,26 +62,12 @@ contract ClrFundDeployer is CloneFactory, ClrFundParams { event NewInstance(address indexed clrfund); event Register(address indexed clrfund, string metadata); - function deployClrFund( - MACIFactory _maciFactory, - PollFactoryDeployer _pollFactoryDeployer, - VkRegistryDeployer _vkRegistryDeployer, - TopupCreditDeployer _topupCreditDeployer, - MessageAqFactoryDeployer _messageAqFactoryDeployer - ) public returns (address) { + function deployClrFund(MACIFactory _maciFactory) public returns (address) { clrfund = ClrFund(createClone(template)); - PollFactory pollFactory = _pollFactoryDeployer.deploy(address(clrfund)); - VkRegistry vkRegistry = _vkRegistryDeployer.deploy(address(clrfund)); - TopupCredit topupCredit = _topupCreditDeployer.deploy(address(clrfund)); - MessageAqFactory messageAqFactory = _messageAqFactoryDeployer.deploy(address(clrfund)); - - MACI maci = _maciFactory.deployMaci(pollFactory, clrfund, clrfund); - clrfund.init(maci, vkRegistry, messageAqFactory, topupCredit); - emit NewInstance(address(clrfund)); - + return address(clrfund); } diff --git a/contracts/contracts/FundingRound.sol b/contracts/contracts/FundingRound.sol index 509224b7e..22efb1ae9 100644 --- a/contracts/contracts/FundingRound.sol +++ b/contracts/contracts/FundingRound.sol @@ -1,15 +1,16 @@ // SPDX-License-Identifier: GPL-3.0 -pragma solidity ^0.8.10; +pragma solidity 0.8.10; import '@openzeppelin/contracts/access/Ownable.sol'; import '@openzeppelin/contracts/token/ERC20/ERC20.sol'; import '@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol'; import {DomainObjs} from 'maci-contracts/contracts/DomainObjs.sol'; -import 'maci-contracts/contracts/MACI.sol'; -import 'maci-contracts/contracts/gatekeepers/SignUpGatekeeper.sol'; -import 'maci-contracts/contracts/initialVoiceCreditProxy/InitialVoiceCreditProxy.sol'; +import {MACI} from 'maci-contracts/contracts/MACI.sol'; +import {Poll,PollProcessorAndTallyer} from 'maci-contracts/contracts/Poll.sol'; +import {SignUpGatekeeper} from "maci-contracts/contracts/gatekeepers/SignUpGatekeeper.sol"; +import {InitialVoiceCreditProxy} from "maci-contracts/contracts/initialVoiceCreditProxy/InitialVoiceCreditProxy.sol"; import './userRegistry/IUserRegistry.sol'; import './recipientRegistry/IRecipientRegistry.sol'; @@ -47,8 +48,13 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom bool public isFinalized = false; bool public isCancelled = false; + uint256 public pollId; Poll public poll; + + PollProcessorAndTallyer public tallyer; + address public coordinator; + MACI public maci; ERC20 public nativeToken; IUserRegistry public userRegistry; IRecipientRegistry public recipientRegistry; @@ -70,12 +76,26 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom event TallyPublished(string _tallyHash); event Voted(address indexed _contributor); event TallyResultsAdded(uint256 indexed _voteOptionIndex, uint256 _tally); + event PollSet(uint256 indexed _pollId, address indexed poll); + event TallyerSet(address indexed tallyer); modifier onlyCoordinator() { require(msg.sender == coordinator, 'FundingRound: Sender is not the coordinator'); _; } + /* + * A modifier that causes the function to revert if the voting period is + * not over. + */ + modifier isAfterVotingDeadline() { + (uint256 deployTime, uint256 duration) = poll.getDeployTimeAndDuration(); + uint256 secondsPassed = block.timestamp - deployTime; + require(secondsPassed > duration, 'FundingRound: Voting period still active'); + _; + } + + /** * @dev Set round parameters. * @param _nativeToken Address of a token which will be accepted for contributions. @@ -102,32 +122,63 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom * @dev Have the votes been tallied */ function isTallied() internal view returns (bool) { - return poll.stateAqMerged(); + require(address(tallyer) != address(0), 'FundingRound: Poll tallyer not set'); + + (uint256 numSignUps, ) = poll.numSignUpsAndMessages(); + (, uint256 tallyBatchSize, ) = poll.batchSizes(); + uint256 tallyBatchNum = tallyer.tallyBatchNum(); + uint256 totalTallied = tallyBatchNum * tallyBatchSize; + + return totalTallied > numSignUps; } - function votingPeriodOver() internal view { - (uint256 deployTime, uint256 duration) = poll - .getDeployTimeAndDuration(); - // Require that the voting period is over - uint256 secondsPassed = block.timestamp - deployTime; - if (secondsPassed <= duration ) { - revert VOTING_PERIOD_NOT_PASSED(); - } + /** + * @dev Set the pollId used to look up the poll in MACI. + * @param _pollId The poll id. + */ + function setPollAndTallyer(uint256 _pollId, PollProcessorAndTallyer _tallyer) + external + onlyCoordinator + { + require(address(tallyer) != address(0), 'FundingRound: Invalid PollProcessorAndTallyer'); + + poll = maci.getPoll(_pollId); + require(address(poll) != address(0), 'FundingRound: Poll not found'); + + pollId = _pollId; + tallyer = _tallyer; + + emit PollSet(pollId, address(poll)); } /** - * @dev Set MACI poll. - * @param _poll Address of MACI poll. + * @dev Set the poll tallyer + * @param _tallyer The poll id. */ - function setPoll(Poll _poll) + function setPollAndTallyer(PollProcessorAndTallyer _tallyer) external onlyCoordinator { - require(address(_poll) != address(0), 'FundingRound: Invalid poll'); - require(address(poll) == address(0), 'FundingRound: Poll was already set'); - poll = _poll; + require(address(tallyer) != address(0), 'FundingRound: Invalid PollProcessorAndTallyer'); + + tallyer = _tallyer; + + emit TallyerSet(address(tallyer)); } + /** + * @dev Link MACI instance to this funding round. + */ + function setMaci( + MACI _maci + ) + external + onlyOwner + { + require(address(maci) == address(0), 'FundingRound: Already linked to MACI instance'); + + maci = _maci; + } /** * @dev Contribute tokens to this funding round. @@ -141,7 +192,7 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom ) external { - require(address(poll) != address(0), 'FundingRound: Poll not deployed'); + require(address(maci) != address(0), 'FundingRound: MACI not deployed'); require(!isFinalized, 'FundingRound: Round finalized'); require(amount > 0, 'FundingRound: Contribution amount must be greater than zero'); require(amount <= MAX_VOICE_CREDITS * voiceCreditFactor, 'FundingRound: Contribution amount is too large'); @@ -149,9 +200,15 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom uint256 currentVoiceCredits = contributors[msg.sender].voiceCredits; contributors[msg.sender] = ContributorStatus(voiceCredits + currentVoiceCredits); contributorCount += 1; + bytes memory signUpGatekeeperData = abi.encode(msg.sender, voiceCredits); + bytes memory initialVoiceCreditProxyData = abi.encode(msg.sender); nativeToken.safeTransferFrom(msg.sender, address(this), amount); - poll.topup(contributorIndex, voiceCredits); + maci.signUp( + pubKey, + signUpGatekeeperData, + initialVoiceCreditProxyData + ); emit Contribution(msg.sender, amount); } @@ -164,6 +221,8 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom ) external { + require(address(poll) != address(0), 'FundingRound: Poll not deployed'); + uint256 batchSize = _messages.length; for (uint8 i = 0; i < batchSize; i++) { poll.publishMessage(_messages[i], _encPubKeys[i]); @@ -210,7 +269,7 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom } /** - * @dev Publish the IPFS hash of the vote tally. Only coordinator can publish. + * @dev Publish the IPFS hash of the vote tally and set the tally contract address. Only coordinator can publish. * @param _tallyHash IPFS hash of the vote tally. */ function publishTallyHash(string calldata _tallyHash) @@ -219,6 +278,7 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom { require(!isFinalized, 'FundingRound: Round finalized'); require(bytes(_tallyHash).length != 0, 'FundingRound: Tally hash is empty string'); + tallyHash = _tallyHash; emit TallyPublished(_tallyHash); } @@ -264,25 +324,27 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom ) external onlyOwner + isAfterVotingDeadline { require(!isFinalized, 'FundingRound: Already finalized'); - require(address(poll) != address(0), 'FundingRound: MACI not deployed'); - votingPeriodOver(); + require(address(maci) != address(0), 'FundingRound: MACI not deployed'); + require(address(poll) != address(0), 'FundingRound: Poll not deployed'); require(isTallied(), 'FundingRound: Votes has not been tallied'); - require(bytes(tallyHash).length != 0, 'FundingRound: Tally hash has not been published'); // make sure we have received all the tally results (,,, uint8 voteOptionTreeDepth) = poll.treeDepths(); uint256 totalResults = uint256(LEAVES_PER_NODE) ** uint256(voteOptionTreeDepth); require(totalTallyResults == totalResults, 'FundingRound: Incomplete tally results'); -/* TODO fix this +/* TODO how to check this in maci v1?? totalVotes = maci.totalVotes(); // If nobody voted, the round should be cancelled to avoid locking of matching funds require(totalVotes > 0, 'FundingRound: No votes'); - bool verified = maci.verifySpentVoiceCredits(_totalSpent, _totalSpentSalt); +*/ + bool verified = poll.verifySpentVoiceCredits(_totalSpent, _totalSpentSalt); require(verified, 'FundingRound: Incorrect total amount of spent voice credits'); - */ + + totalSpent = _totalSpent; // Total amount of spent voice credits is the size of the pool of direct rewards. // Everything else, including unspent voice credits and downscaling error, @@ -331,7 +393,6 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom * @param _voteOptionIndex Vote option index. * @param _spent The amount of voice credits spent on the recipients. * @param _spentProof Proof of correctness for the amount of spent credits. - * @param _spentSalt Salt. */ function claimFunds( uint256 _voteOptionIndex, @@ -348,17 +409,14 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom { // create scope to avoid 'stack too deep' error - (,,, uint8 voteOptionTreeDepth) = poll.treeDepths(); - /* TODO fix this - bool spentVerified = tally.computeMerkleRootFromPath( - voteOptionTreeDepth, + bool verified = poll.verifyPerVOSpentVoiceCredits( _voteOptionIndex, _spent, - _spentProof + _spentProof, + _spentSalt ); - */ - bool spentVerified = true; - require(spentVerified, 'FundingRound: Incorrect amount of spent voice credits'); + + require(verified, 'FundingRound: Incorrect amount of spent voice credits'); } (uint256 startTime, uint256 duration) = poll.getDeployTimeAndDuration(); @@ -383,30 +441,30 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom * @param _voteOptionIndex Vote option index. * @param _tallyResult The results of vote tally for the recipients. * @param _tallyResultProof Proofs of correctness of the vote tally results. - * @param _tallyResultSalt Salt. */ function _addTallyResult( uint8 _voteOptionTreeDepth, uint256 _voteOptionIndex, uint256 _tallyResult, uint256[][] calldata _tallyResultProof, - uint256 _tallyResultSalt + uint256 _spentVoiceCreditsHash, + uint256 _perVOSpentVoiceCreditsHash, + uint256 _tallyCommitment ) private { RecipientStatus storage recipient = recipients[_voteOptionIndex]; require(!recipient.tallyVerified, 'FundingRound: Vote results already verified'); -/* TODO fix this - bool resultVerified = maci.verifyTallyResult( - _voteOptionTreeDepth, + bool resultVerified = poll.verifyTallyResult( _voteOptionIndex, _tallyResult, _tallyResultProof, - _tallyResultSalt + _spentVoiceCreditsHash, + _perVOSpentVoiceCreditsHash, + _tallyCommitment ); require(resultVerified, 'FundingRound: Incorrect tally result'); -*/ recipient.tallyVerified = true; recipient.tallyResult = _tallyResult; @@ -421,14 +479,15 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom * @param _voteOptionIndices Vote option index. * @param _tallyResults The results of vote tally for the recipients. * @param _tallyResultProofs Proofs of correctness of the vote tally results. - * @param _tallyResultSalt Salt. */ function addTallyResultsBatch( uint8 _voteOptionTreeDepth, uint256[] calldata _voteOptionIndices, uint256[] calldata _tallyResults, uint256[][][] calldata _tallyResultProofs, - uint256 _tallyResultSalt + uint256[] calldata _spentVoiceCreditsHashes, + uint256[] calldata _perVOSpentVoiceCreditsHash, + uint256 _tallyCommitment ) external onlyCoordinator @@ -442,7 +501,9 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom _voteOptionIndices[i], _tallyResults[i], _tallyResultProofs[i], - _tallyResultSalt + _spentVoiceCreditsHashes[i], + _perVOSpentVoiceCreditsHash[i], + _tallyCommitment ); } } diff --git a/contracts/contracts/FundingRoundFactory.sol b/contracts/contracts/FundingRoundFactory.sol index f2a9042d5..ad82c1f2f 100644 --- a/contracts/contracts/FundingRoundFactory.sol +++ b/contracts/contracts/FundingRoundFactory.sol @@ -1,24 +1,25 @@ // SPDX-License-Identifier: GPL-3.0 -pragma solidity ^0.6.12; -pragma experimental ABIEncoderV2; +pragma solidity 0.8.10; import '@openzeppelin/contracts/access/Ownable.sol'; import '@openzeppelin/contracts/token/ERC20/ERC20.sol'; -import '@openzeppelin/contracts/token/ERC20/SafeERC20.sol'; -import '@openzeppelin/contracts/utils/EnumerableSet.sol'; +import '@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol'; +import '@openzeppelin/contracts/utils/structs/EnumerableSet.sol'; -import 'maci-contracts/sol/MACI.sol'; -import 'maci-contracts/sol/MACISharedObjs.sol'; -import 'maci-contracts/sol/gatekeepers/SignUpGatekeeper.sol'; -import 'maci-contracts/sol/initialVoiceCreditProxy/InitialVoiceCreditProxy.sol'; +import {MACI} from 'maci-contracts/contracts/MACI.sol'; +import {SignUpGatekeeper} from "maci-contracts/contracts/gatekeepers/SignUpGatekeeper.sol"; +import {InitialVoiceCreditProxy} from "maci-contracts/contracts/initialVoiceCreditProxy/InitialVoiceCreditProxy.sol"; +import {SnarkCommon} from 'maci-contracts/contracts/crypto/SnarkCommon.sol'; +import {Params} from 'maci-contracts/contracts/Params.sol'; +import {DomainObjs} from 'maci-contracts/contracts/DomainObjs.sol'; import './userRegistry/IUserRegistry.sol'; import './recipientRegistry/IRecipientRegistry.sol'; import './MACIFactory.sol'; import './FundingRound.sol'; -contract FundingRoundFactory is Ownable, MACISharedObjs { +contract FundingRoundFactory is Ownable, SnarkCommon, Params, DomainObjs { using EnumerableSet for EnumerableSet.AddressSet; using SafeERC20 for ERC20; @@ -45,7 +46,6 @@ contract FundingRoundFactory is Ownable, MACISharedObjs { constructor( MACIFactory _maciFactory ) - public { maciFactory = _maciFactory; } @@ -70,7 +70,7 @@ contract FundingRoundFactory is Ownable, MACISharedObjs { onlyOwner { recipientRegistry = _recipientRegistry; - (,, uint256 maxVoteOptions) = maciFactory.maxValues(); + (, uint256 maxVoteOptions) = maciFactory.maxValues(); recipientRegistry.setMaxRecipients(maxVoteOptions); } @@ -112,36 +112,24 @@ contract FundingRoundFactory is Ownable, MACISharedObjs { } function setMaciParameters( - uint8 _stateTreeDepth, uint8 _messageTreeDepth, - uint8 _voteOptionTreeDepth, - uint8 _tallyBatchSize, - uint8 _messageBatchSize, - SnarkVerifier _batchUstVerifier, - SnarkVerifier _qvtVerifier, - uint256 _signUpDuration, - uint256 _votingDuration + uint8 _voteOptionTreeDepth ) external onlyOwner { maciFactory.setMaciParameters( - _stateTreeDepth, _messageTreeDepth, - _voteOptionTreeDepth, - _tallyBatchSize, - _messageBatchSize, - _batchUstVerifier, - _qvtVerifier, - _signUpDuration, - _votingDuration + _voteOptionTreeDepth ); } /** * @dev Deploy new funding round. + * @param duration The poll duration in seconds + * @param vkRegistry The VkRegistry contract address */ - function deployNewRound() + function deployNewRound(uint256 duration, address vkRegistry, address pollFactory, TreeDepths calldata treeDepths) external onlyOwner { @@ -156,7 +144,7 @@ contract FundingRoundFactory is Ownable, MACISharedObjs { 'Factory: Current round is not finalized' ); // Make sure that the max number of recipients is set correctly - (,, uint256 maxVoteOptions) = maciFactory.maxValues(); + (uint256 maxMessages, uint256 maxVoteOptions) = maciFactory.maxValues(); recipientRegistry.setMaxRecipients(maxVoteOptions); // Deploy funding round and MACI contracts FundingRound newRound = new FundingRound( @@ -166,12 +154,18 @@ contract FundingRoundFactory is Ownable, MACISharedObjs { coordinator ); rounds.push(newRound); + MACI maci = maciFactory.deployMaci( SignUpGatekeeper(newRound), InitialVoiceCreditProxy(newRound), - coordinator, - coordinatorPubKey + vkRegistry, + pollFactory, + address(nativeToken) ); + + MaxValues memory maxValues = MaxValues(maxMessages, maxVoteOptions); + maci.deployPoll(duration, maxValues, treeDepths, coordinatorPubKey); + newRound.setMaci(maci); emit RoundStarted(address(newRound)); } diff --git a/contracts/contracts/MACIFactory.sol b/contracts/contracts/MACIFactory.sol index 5c199fbfa..a13e6cba7 100644 --- a/contracts/contracts/MACIFactory.sol +++ b/contracts/contracts/MACIFactory.sol @@ -3,31 +3,70 @@ pragma solidity ^0.8.10; import {MACI} from 'maci-contracts/contracts/MACI.sol'; -import {PollFactory} from 'maci-contracts/contracts/Poll.sol'; +import {PollFactory, MessageAqFactory} from 'maci-contracts/contracts/Poll.sol'; import {SignUpGatekeeper} from 'maci-contracts/contracts/gatekeepers/SignUpGatekeeper.sol'; import {InitialVoiceCreditProxy} from 'maci-contracts/contracts/initialVoiceCreditProxy/InitialVoiceCreditProxy.sol'; +import {TopupCredit} from 'maci-contracts/contracts/TopupCredit.sol'; +import {VkRegistry} from 'maci-contracts/contracts/VkRegistry.sol'; +import {SnarkCommon} from 'maci-contracts/contracts/crypto/SnarkCommon.sol'; +import {Ownable} from '@openzeppelin/contracts/access/Ownable.sol'; +import {Params} from "maci-contracts/contracts/Params.sol"; -contract MACIFactory { +contract MACIFactory is Ownable, Params, SnarkCommon { + // Constants + uint256 private constant MESSAGE_TREE_BASE = 2; + uint256 private constant VOTE_OPTION_TREE_BASE = 5; + + // States + MaxValues public maxValues; + + // Events + event MaciParametersChanged(); event MaciDeployed(address _maci); + function setMaciParameters( + uint8 _messageTreeDepth, + uint8 _voteOptionTreeDepth + ) + external + onlyOwner + { + maxValues = MaxValues( + MESSAGE_TREE_BASE ** _messageTreeDepth - 1, + VOTE_OPTION_TREE_BASE ** _voteOptionTreeDepth - 1 + ); + + emit MaciParametersChanged(); + } + /** * @dev Deploy new MACI instance. */ function deployMaci( - PollFactory pollFactory, SignUpGatekeeper signUpGatekeeper, - InitialVoiceCreditProxy initialVoiceCreditProxy + InitialVoiceCreditProxy initialVoiceCreditProxy, + address vkRegistry, + address pollFactoryAddress, + address topupCredit ) external + onlyOwner returns (MACI _maci) { - // create poll factory + require(topupCredit != address(0), 'MACIFactory: topupCredit address cannot be zero'); + + PollFactory pollFactory = PollFactory(pollFactoryAddress); _maci = new MACI( pollFactory, signUpGatekeeper, initialVoiceCreditProxy ); - // transfer poll factory owner to maci + + pollFactory.transferOwnership(address(_maci)); + + MessageAqFactory messageAqFactory = pollFactory.messageAqFactory(); + _maci.init(VkRegistry(vkRegistry), messageAqFactory, TopupCredit(topupCredit)); + emit MaciDeployed(address(_maci)); } } diff --git a/contracts/contracts/MessageAqFactoryDeployer.sol b/contracts/contracts/MessageAqFactoryDeployer.sol deleted file mode 100644 index fdea45eed..000000000 --- a/contracts/contracts/MessageAqFactoryDeployer.sol +++ /dev/null @@ -1,21 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0 - -pragma solidity ^0.8.10; - -import {MessageAqFactory} from 'maci-contracts/contracts/Poll.sol'; - -contract MessageAqFactoryDeployer { - event MessageAqFactoryDeployed(address _messageAqFactory); - - /** - * @dev Deploy new MessageAqFactory instance. - */ - function deploy(address owner) - external - returns (MessageAqFactory _messageAqFactory) - { - _messageAqFactory = new MessageAqFactory(); - _messageAqFactory.transferOwnership(owner); - emit MessageAqFactoryDeployed(address(_messageAqFactory)); - } -} diff --git a/contracts/contracts/PollFactoryDeployer.sol b/contracts/contracts/PollFactoryDeployer.sol deleted file mode 100644 index 52c56bbea..000000000 --- a/contracts/contracts/PollFactoryDeployer.sol +++ /dev/null @@ -1,23 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0 - -pragma solidity ^0.8.10; - -import {PollFactory} from 'maci-contracts/contracts/Poll.sol'; - -contract PollFactoryDeployer { - event PollFactoryDeployed(address _pollFactory); - - /** - * @dev Deploy new PollFactory instance. - * @param owner Address of the owner for the new PollFactory instance - */ - function deploy(address owner) - external - returns (PollFactory _pollFactory) - { - _pollFactory = new PollFactory(); - _pollFactory.transferOwnership(owner); - - emit PollFactoryDeployed(address(_pollFactory)); - } -} diff --git a/contracts/contracts/TopupCreditDeployer.sol b/contracts/contracts/TopupCreditDeployer.sol deleted file mode 100644 index c07c4707b..000000000 --- a/contracts/contracts/TopupCreditDeployer.sol +++ /dev/null @@ -1,24 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0 - -pragma solidity ^0.8.10; - -import 'maci-contracts/contracts/TopupCredit.sol'; - -contract TopupCreditDeployer { - event TopupCreditDeployed(address _topupCredit); - - /** - * @dev Deploy new TopupCredit instance. - */ - function deploy(address owner) - external - returns (TopupCredit _topupCredit) - { - require(owner != address(0), 'Invalid owner'); - - _topupCredit = new TopupCredit(); - _topupCredit.transferOwnership(owner); - - emit TopupCreditDeployed(address(_topupCredit)); - } -} diff --git a/contracts/contracts/VkRegistryDeployer.sol b/contracts/contracts/VkRegistryDeployer.sol deleted file mode 100644 index 7c3bac9b4..000000000 --- a/contracts/contracts/VkRegistryDeployer.sol +++ /dev/null @@ -1,24 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0 - -pragma solidity ^0.8.10; - -import 'maci-contracts/contracts/VkRegistry.sol'; - -contract VkRegistryDeployer { - event VkRegistryDeployed(address _vkRegistry); - - /** - * @dev Deploy new VkRegistry instance. - */ - function deploy(address owner) - external - returns (VkRegistry _registry) - { - require(owner != address(0), 'Invalid owner'); - - _registry = new VkRegistry(); - _registry.transferOwnership(owner); - - emit VkRegistryDeployed(address(_registry)); - } -} diff --git a/contracts/e2e/index.ts b/contracts/e2e/index.ts index c39682f99..319a8748a 100644 --- a/contracts/e2e/index.ts +++ b/contracts/e2e/index.ts @@ -3,21 +3,17 @@ import { ethers, waffle } from 'hardhat' import { use, expect } from 'chai' import { solidity } from 'ethereum-waffle' import { BigNumber, Contract, Signer, Wallet, utils } from 'ethers' -import { - Keypair, - createMessage, - Message, - PubKey, - genProofs, - proveOnChain, -} from '@clrfund/common' +import { Keypair, createMessage, Message, PubKey } from '@clrfund/common' import { UNIT } from '../utils/constants' import { getEventArg } from '../utils/contracts' import { + deployVkRegistry, deployMaciFactory, CIRCUITS, getZkeyFilePath, + genProofs, + proveOnChain, } from '../utils/deployment' import { getIpfsHash } from '../utils/ipfs' import { @@ -30,7 +26,9 @@ use(solidity) const ZERO = BigNumber.from(0) -describe('End-to-end Tests', function() { +const roundDuration = 7 * 86400 + +describe('End-to-end Tests', function () { this.timeout(60 * 60 * 1000) this.bail(true) @@ -84,10 +82,10 @@ describe('End-to-end Tests', function() { const maciFactory = await deployMaciFactory(deployer) const setMaciTx = await maciFactory.setMaciParameters( params.treeDepths.stateTreeDepth, - params.treeDepths.intStateTreeDepth, + params.treeDepths.messageBatchTreeDepth, params.treeDepths.messageTreeDepth, params.treeDepths.voteOptionTreeDepth, - params.treeDepths.messageBatchTreeDepth, + params.treeDepths.intStateTreeDepth, processMessagesZkey, tallyVotesZkey ) @@ -176,8 +174,19 @@ describe('End-to-end Tests', function() { }) ) + const vkReigstry = await deployVkRegistry( + deployer, + processMessagesZkey, + tallyVotesZkey, + maciFactory.address, + circuit + ) + // Deploy new funding round and MACI - const newRoundTx = await fundingRoundFactory.deployNewRound() + const newRoundTx = await fundingRoundFactory.deployNewRound( + roundDuration, + vkReigstry.address + ) const fundingRoundAddress = await fundingRoundFactory.getCurrentRound() fundingRound = await ethers.getContractAt( 'FundingRound', @@ -356,8 +365,8 @@ describe('End-to-end Tests', function() { } await fundingRound.connect(contributor).submitMessageBatch( - messages.reverse().map(msg => msg.asContractParam()), - encPubKeys.reverse().map(key => key.asContractParam()) + messages.reverse().map((msg) => msg.asContractParam()), + encPubKeys.reverse().map((key) => key.asContractParam()) ) } @@ -399,8 +408,8 @@ describe('End-to-end Tests', function() { nonce += 1 } await fundingRound.connect(contributor).submitMessageBatch( - messages.reverse().map(msg => msg.asContractParam()), - encPubKeys.reverse().map(key => key.asContractParam()) + messages.reverse().map((msg) => msg.asContractParam()), + encPubKeys.reverse().map((key) => key.asContractParam()) ) } @@ -442,8 +451,8 @@ describe('End-to-end Tests', function() { encPubKeys.push(encPubKey) } await fundingRound.connect(contributor).submitMessageBatch( - messages.reverse().map(msg => msg.asContractParam()), - encPubKeys.reverse().map(key => key.asContractParam()) + messages.reverse().map((msg) => msg.asContractParam()), + encPubKeys.reverse().map((key) => key.asContractParam()) ) const [message, encPubKey] = createMessage( contribution2.stateIndex, @@ -503,8 +512,8 @@ describe('End-to-end Tests', function() { encPubKeys.push(encPubKey) } await fundingRound.connect(contributor).submitMessageBatch( - messages.reverse().map(msg => msg.asContractParam()), - encPubKeys.reverse().map(key => key.asContractParam()) + messages.reverse().map((msg) => msg.asContractParam()), + encPubKeys.reverse().map((key) => key.asContractParam()) ) // contribution 2 @@ -573,8 +582,8 @@ describe('End-to-end Tests', function() { encPubKeys.push(encPubKey) } await fundingRound.connect(contributor).submitMessageBatch( - messages.reverse().map(msg => msg.asContractParam()), - encPubKeys.reverse().map(key => key.asContractParam()) + messages.reverse().map((msg) => msg.asContractParam()), + encPubKeys.reverse().map((key) => key.asContractParam()) ) } @@ -645,8 +654,8 @@ describe('End-to-end Tests', function() { messageBatch1.push(message) encPubKeyBatch1.push(encPubKey) await fundingRound.connect(contributor).submitMessageBatch( - messageBatch1.reverse().map(msg => msg.asContractParam()), - encPubKeyBatch1.reverse().map(key => key.asContractParam()) + messageBatch1.reverse().map((msg) => msg.asContractParam()), + encPubKeyBatch1.reverse().map((key) => key.asContractParam()) ) // Wait for signup period to end to override votes @@ -694,8 +703,8 @@ describe('End-to-end Tests', function() { messageBatch2.push(message) encPubKeyBatch2.push(encPubKey) await fundingRound.connect(contributor).submitMessageBatch( - messageBatch2.reverse().map(msg => msg.asContractParam()), - encPubKeyBatch2.reverse().map(key => key.asContractParam()) + messageBatch2.reverse().map((msg) => msg.asContractParam()), + encPubKeyBatch2.reverse().map((key) => key.asContractParam()) ) // contribution 2 diff --git a/contracts/hardhat.config.ts b/contracts/hardhat.config.ts index 6e0258275..b6a3b1695 100644 --- a/contracts/hardhat.config.ts +++ b/contracts/hardhat.config.ts @@ -86,7 +86,7 @@ const config: HardhatUserConfig = { }, overrides: { 'contracts/FundingRoundFactory.sol': { - version: '0.6.12', + version: '0.8.10', settings: { optimizer: { enabled: true, @@ -95,7 +95,7 @@ const config: HardhatUserConfig = { }, }, 'contracts/FundingRound.sol': { - version: '0.6.12', + version: '0.8.10', settings: { optimizer: { enabled: true, @@ -158,8 +158,7 @@ subtask(TASK_COMPILE_SOLIDITY_GET_SOURCE_PATHS, async (_, __, runSuper) => { return paths.filter((filePath: string) => { return !( - filePath.includes('snarkVerifiers') || - filePath.includes('FundingRoundFactory.sol') + filePath.includes('snarkVerifiers') || filePath.includes('ClrFund.sol') ) }) }) @@ -180,7 +179,7 @@ task( const artifact = JSON.parse( fs .readFileSync( - `../node_modules/maci-contracts/artifacts/contracts/crypto/Hasher.sol/${contractName}.json` + `./node_modules/maci-contracts/artifacts/contracts/crypto/Hasher.sol/${contractName}.json` ) .toString() ) diff --git a/contracts/tasks/index.ts b/contracts/tasks/index.ts index 2cdfb3acb..1988492ab 100644 --- a/contracts/tasks/index.ts +++ b/contracts/tasks/index.ts @@ -1,20 +1,20 @@ import './verifyMaciFactory' import './verifyRoundFactory' -import './verifyRound' -import './verifyMaci' -import './verifyRecipientRegistry' -import './verifyUserRegistry' -import './verifyAll' -import './cancelRound' -import './evmIncreaseTime' -import './auditTally' -import './exportRound' -import './mergeAllocations' -import './setDurations' -import './deploySponsor' -import './loadUsers' +//import './verifyRound' +//import './verifyMaci' +//import './verifyRecipientRegistry' +//import './verifyUserRegistry' +//import './verifyAll' +//import './cancelRound' +//import './evmIncreaseTime' +//import './auditTally' +//import './exportRound' +//import './mergeAllocations' +//import './setDurations' +//import './deploySponsor' +//import './loadUsers' // TODO: make tally script work with MACI v1 //import './tally' -import './findStorageSlot' -import './setStorageRoot' -import './loadMerkleUsers' +//import './findStorageSlot' +//import './setStorageRoot' +//import './loadMerkleUsers' diff --git a/contracts/utils/deployment.ts b/contracts/utils/deployment.ts index cc62ceef1..54357a3ac 100644 --- a/contracts/utils/deployment.ts +++ b/contracts/utils/deployment.ts @@ -1,10 +1,9 @@ import { ethers, config } from 'hardhat' -import { Libraries } from 'hardhat/types/runtime' import { Signer, Contract, utils } from 'ethers' import { link } from 'ethereum-waffle' import path from 'path' +import { setVerifyingKeys, genProofs, proveOnChain } from '@clrfund/maci-cli' -import { MaciParameters } from './maci' import { readFileSync } from 'fs' const userRegistryNames: Record = { @@ -193,6 +192,34 @@ export async function deployContract( return await contract.deployed() } +export async function deployVkRegistry( + account: Signer, + processVkPath: string, + tallyVkPath: string, + owner: string, + circuit = 'micro' +): Promise { + const vkRegistry = await deployContract(account, 'VkRegistry') + + const params = CIRCUITS[circuit] + + await setVerifyingKeys({ + vk_registry: vkRegistry.address, + state_tree_depth: params.treeDepths.stateTreeDepth, + int_state_tree_depth: params.treeDepths.intStateTreeDepth, + msg_tree_depth: params.treeDepths.messageTreeDepth, + vote_option_tree_depth: params.treeDepths.voteOptionTreeDepth, + msg_batch_depth: params.treeDepths.messageBatchTreeDepth, + process_messages_zkey: processVkPath, + tally_votes_zkey: tallyVkPath, + }) + + const ownerTx = await vkRegistry.transferOwnership(owner) + await ownerTx.wait() + + return vkRegistry +} + export async function deployMaciFactory(account: Signer): Promise { const poseidonContracts = await deployPoseidonContracts(account) @@ -289,3 +316,5 @@ export async function deployPoseidonContracts( PoseidonT6Contract, } } + +export { proveOnChain, genProofs } diff --git a/package.json b/package.json index 0d2f643a3..c2fe3e4d9 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,9 @@ "subgraph" ], "nohoist": [ - "**/@nomiclabs/**" + "**/@nomiclabs/**", + "**/maci-contracts/**", + "**/maci-contracts" ] }, "lint-staged": { diff --git a/yarn.lock b/yarn.lock index 8ec7b9b64..aa5c0a2df 100644 --- a/yarn.lock +++ b/yarn.lock @@ -604,34 +604,6 @@ "@chainsafe/persistent-merkle-tree" "^0.4.2" case "^1.6.3" -"@clrfund/maci-cli@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@clrfund/maci-cli/-/maci-cli-1.1.1.tgz#5274bf3b49c09bed71d8b5ed5bbdb3280b47151f" - integrity sha512-j/woChsnH7b2ElcAvBSuozK+od5H8dyW01F3jyA/FXk/gTdCbn9ABNpClnVjp1dGHQFlYfahEuLJ4TUciPsLhw== - dependencies: - "@nomiclabs/hardhat-ethers" "^2.0.2" - argparse "^1.0.10" - circom_runtime "^0.1.22" - circomlib "^2.0.5" - ethers "^5.0.0" - ffiasm "0.1.3" - hardhat "^2.0.11" - js-yaml "4.0.0" - maci-circuits "1.1.1" - maci-common "1.1.1" - maci-contracts "1.1.1" - maci-core "1.1.1" - maci-crypto "1.1.1" - maci-domainobjs "1.1.1" - prompt-async "^0.9.9" - shelljs "^0.8.4" - snarkjs "^0.5.0" - source-map-support "^0.5.19" - typescript "^4.2.3" - web3 "^1.3.4" - xmlhttprequest "1.8.0" - zkey-manager "^0.1.1" - "@colors/colors@1.5.0": version "1.5.0" resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" @@ -7491,11 +7463,6 @@ circomlib@^2.0.0, circomlib@^2.0.5: ffjavascript "0.1.0" web3-utils "^1.3.0" -"circomlib@github:weijiekoh/circomlib#ac85e82c1914d47789e2032fb11ceb2cfdd38a2b": - version "1.0.0" - uid ac85e82c1914d47789e2032fb11ceb2cfdd38a2b - resolved "https://codeload.github.com/weijiekoh/circomlib/tar.gz/ac85e82c1914d47789e2032fb11ceb2cfdd38a2b" - "circomlib@https://github.com/weijiekoh/circomlib#ac85e82c1914d47789e2032fb11ceb2cfdd38a2b": version "1.0.0" resolved "https://github.com/weijiekoh/circomlib#ac85e82c1914d47789e2032fb11ceb2cfdd38a2b" @@ -14754,17 +14721,6 @@ luxon@^3.1.1, luxon@^3.2.1: resolved "https://registry.yarnpkg.com/luxon/-/luxon-3.4.2.tgz#f5bcab779f3d6a943ee7c8621c2b416bc10abd24" integrity sha512-uBoAVCVcajsrqy3pv7eo5jEUz1oeLmCcnMv8n4AJpT5hbpN9lUssAXibNElpbLce3Mhm9dyBzwYLs9zctM/0tA== -maci-circuits@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/maci-circuits/-/maci-circuits-1.1.1.tgz#640d2cf9950013ca192e83f39cb4bbc5dbf59ea4" - integrity sha512-t5Vk8Z45joTot/Yc63rBT0LGNIaENzGHQiZXsFYSFv92waAEpHlDyP5KzE6m2x73i9I8IFx6HNHxm11Ppc8umA== - dependencies: - argparse "^2.0.1" - circomlib "github:weijiekoh/circomlib#ac85e82c1914d47789e2032fb11ceb2cfdd38a2b" - shelljs "^0.8.3" - snarkjs "^0.5.0" - tmp "^0.2.1" - maci-circuits@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/maci-circuits/-/maci-circuits-1.1.2.tgz#56aebc6e8f121dad5c5b3de32a5edd7c920fa5d3" @@ -14803,11 +14759,6 @@ maci-cli@1.1.1: xmlhttprequest "1.8.0" zkey-manager "^0.1.1" -maci-common@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/maci-common/-/maci-common-1.1.1.tgz#63b0ff5e42ec5f2a6f549b0e88b0066fcaf5b45e" - integrity sha512-+t+LMJHvmfyl6Q5j9Qxf1IbtUno9PxS0jdHcjBa7jdZLsuXu0eYDCD0Z+oTg4oA2jdqn68xua2s2moU43pgOMw== - maci-common@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/maci-common/-/maci-common-1.1.2.tgz#8105633d2425a3ce7cf7b3d6700cf82987287b08" @@ -14844,15 +14795,6 @@ maci-contracts@^1.1.1: module-alias "^2.2.2" typescript "^4.2.3" -maci-core@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/maci-core/-/maci-core-1.1.1.tgz#1dd767b2a222c49b7c9bc0f270a0b7096f10463c" - integrity sha512-zoB1sGW2b/l2/bXVYd3YM69GSkmnGmouML1W7IbGTjDZiAXY1FqALug5PEsvVww/wA/+lbu+UoPeKAQM7FDAVg== - dependencies: - maci-crypto "^1.1.1" - maci-domainobjs "^1.1.1" - module-alias "^2.2.2" - maci-core@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/maci-core/-/maci-core-1.1.2.tgz#97dbc70a20fe6fad548d62d3d65ca53d61743435" From d09f22982a702955a65f50db2f369ffb00e3f384 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Wed, 13 Sep 2023 15:19:02 -0400 Subject: [PATCH 009/338] checkout github project using https --- .github/workflows/test-contracts.yml | 4 +++- .prettierignore | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test-contracts.yml b/.github/workflows/test-contracts.yml index 7bcb50b51..211a6d89e 100644 --- a/.github/workflows/test-contracts.yml +++ b/.github/workflows/test-contracts.yml @@ -20,7 +20,9 @@ jobs: with: node-version: ${{ env.NODE_VERSION }} - name: Install - run: yarn + run: | + git config --global url."https://".insteadOf git:// + yarn - name: Run tests run: yarn test:contracts diff --git a/.prettierignore b/.prettierignore index 3321d9b8c..66c22366f 100644 --- a/.prettierignore +++ b/.prettierignore @@ -11,6 +11,8 @@ yarn.lock vue-app/src/graphql/API.ts subgraph/generated vue-app/.eslintrc-auto-import.json +vue-app/src/auto-import.d.ts +vue-app/src/components.d.ts # local config vetur.config.js From 3cbfb25dd2223e1bdc7942fbec0a8dc196302a38 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Wed, 13 Sep 2023 17:00:57 -0400 Subject: [PATCH 010/338] fix missing dependencies --- common/src/index.ts | 12 --------- contracts/package.json | 1 + package.json | 2 ++ yarn.lock | 57 ++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 60 insertions(+), 12 deletions(-) diff --git a/common/src/index.ts b/common/src/index.ts index 6d66794f9..b9a1324c2 100644 --- a/common/src/index.ts +++ b/common/src/index.ts @@ -1,7 +1,3 @@ -import { extractVk } from 'maci-circuits' -import { VerifyingKey } from 'maci-domainobjs' -import { genProcessVkSig, genTallyVkSig, genSubsidyVkSig } from 'maci-core' - export * from './block' export * from './proof' export * from './merkle' @@ -9,11 +5,3 @@ export * from './ipfs' export * from './keypair' export * from './tally' export * from './utils' - -export { - extractVk, - VerifyingKey, - genProcessVkSig, - genTallyVkSig, - genSubsidyVkSig, -} diff --git a/contracts/package.json b/contracts/package.json index 3fe0e64e2..b32ba25c1 100644 --- a/contracts/package.json +++ b/contracts/package.json @@ -29,6 +29,7 @@ }, "devDependencies": { "@clrfund/common": "^0.0.1", + "@clrfund/maci-cli": "^1.1.3", "@ethereum-waffle/mock-contract": "^3.4.4", "@kleros/gtcr-encoder": "^1.4.0", "@nomiclabs/hardhat-ethers": "^2.2.1", diff --git a/package.json b/package.json index c2fe3e4d9..4ffb32004 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,8 @@ ], "nohoist": [ "**/@nomiclabs/**", + "**/maci-cli/**", + "**/maci-cli", "**/maci-contracts/**", "**/maci-contracts" ] diff --git a/yarn.lock b/yarn.lock index aa5c0a2df..c80a226a2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -604,6 +604,33 @@ "@chainsafe/persistent-merkle-tree" "^0.4.2" case "^1.6.3" +"@clrfund/maci-cli@^1.1.3": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@clrfund/maci-cli/-/maci-cli-1.1.3.tgz#1ac174ade46b2126e94b6a8aa3a96e96af7ed97f" + integrity sha512-6Wbwx1sKhLMk/svvKOTXHFTvo1dak1y5J5pME619owolULl55G2Eb9ZHWGrxLbw9AAUZl+hbdUriiRomOLyhzA== + dependencies: + "@nomiclabs/hardhat-ethers" "^2.0.2" + argparse "^1.0.10" + circom_runtime "^0.1.22" + circomlib "^2.0.5" + ethers "^5.0.0" + ffiasm "0.1.3" + hardhat "^2.0.11" + js-yaml "4.0.0" + maci-circuits "1.1.1" + maci-common "1.1.1" + maci-contracts "1.1.1" + maci-core "1.1.1" + maci-crypto "1.1.1" + maci-domainobjs "1.1.1" + prompt-async "^0.9.9" + shelljs "^0.8.4" + snarkjs "^0.5.0" + source-map-support "^0.5.19" + web3 "^1.3.4" + xmlhttprequest "1.8.0" + zkey-manager "^0.1.1" + "@colors/colors@1.5.0": version "1.5.0" resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" @@ -7463,6 +7490,11 @@ circomlib@^2.0.0, circomlib@^2.0.5: ffjavascript "0.1.0" web3-utils "^1.3.0" +"circomlib@github:weijiekoh/circomlib#ac85e82c1914d47789e2032fb11ceb2cfdd38a2b": + version "1.0.0" + uid ac85e82c1914d47789e2032fb11ceb2cfdd38a2b + resolved "https://codeload.github.com/weijiekoh/circomlib/tar.gz/ac85e82c1914d47789e2032fb11ceb2cfdd38a2b" + "circomlib@https://github.com/weijiekoh/circomlib#ac85e82c1914d47789e2032fb11ceb2cfdd38a2b": version "1.0.0" resolved "https://github.com/weijiekoh/circomlib#ac85e82c1914d47789e2032fb11ceb2cfdd38a2b" @@ -14721,6 +14753,17 @@ luxon@^3.1.1, luxon@^3.2.1: resolved "https://registry.yarnpkg.com/luxon/-/luxon-3.4.2.tgz#f5bcab779f3d6a943ee7c8621c2b416bc10abd24" integrity sha512-uBoAVCVcajsrqy3pv7eo5jEUz1oeLmCcnMv8n4AJpT5hbpN9lUssAXibNElpbLce3Mhm9dyBzwYLs9zctM/0tA== +maci-circuits@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/maci-circuits/-/maci-circuits-1.1.1.tgz#640d2cf9950013ca192e83f39cb4bbc5dbf59ea4" + integrity sha512-t5Vk8Z45joTot/Yc63rBT0LGNIaENzGHQiZXsFYSFv92waAEpHlDyP5KzE6m2x73i9I8IFx6HNHxm11Ppc8umA== + dependencies: + argparse "^2.0.1" + circomlib "github:weijiekoh/circomlib#ac85e82c1914d47789e2032fb11ceb2cfdd38a2b" + shelljs "^0.8.3" + snarkjs "^0.5.0" + tmp "^0.2.1" + maci-circuits@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/maci-circuits/-/maci-circuits-1.1.2.tgz#56aebc6e8f121dad5c5b3de32a5edd7c920fa5d3" @@ -14759,6 +14802,11 @@ maci-cli@1.1.1: xmlhttprequest "1.8.0" zkey-manager "^0.1.1" +maci-common@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/maci-common/-/maci-common-1.1.1.tgz#63b0ff5e42ec5f2a6f549b0e88b0066fcaf5b45e" + integrity sha512-+t+LMJHvmfyl6Q5j9Qxf1IbtUno9PxS0jdHcjBa7jdZLsuXu0eYDCD0Z+oTg4oA2jdqn68xua2s2moU43pgOMw== + maci-common@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/maci-common/-/maci-common-1.1.2.tgz#8105633d2425a3ce7cf7b3d6700cf82987287b08" @@ -14795,6 +14843,15 @@ maci-contracts@^1.1.1: module-alias "^2.2.2" typescript "^4.2.3" +maci-core@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/maci-core/-/maci-core-1.1.1.tgz#1dd767b2a222c49b7c9bc0f270a0b7096f10463c" + integrity sha512-zoB1sGW2b/l2/bXVYd3YM69GSkmnGmouML1W7IbGTjDZiAXY1FqALug5PEsvVww/wA/+lbu+UoPeKAQM7FDAVg== + dependencies: + maci-crypto "^1.1.1" + maci-domainobjs "^1.1.1" + module-alias "^2.2.2" + maci-core@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/maci-core/-/maci-core-1.1.2.tgz#97dbc70a20fe6fad548d62d3d65ca53d61743435" From 1f90797c8ab5eca2812dc7b7d474a7142be9a1ca Mon Sep 17 00:00:00 2001 From: yuetloo Date: Thu, 14 Sep 2023 14:59:57 -0400 Subject: [PATCH 011/338] fix contract size limit --- contracts/contracts/ClrFund.sol | 142 ++++++++++++++------ contracts/contracts/FundingRoundFactory.sol | 138 ++++++++++++++----- contracts/contracts/MACIFactory.sol | 129 +++++++++++++++--- contracts/contracts/PollFactoryCreator.sol | 11 ++ contracts/contracts/VkRegistryCreator.sol | 11 ++ 5 files changed, 342 insertions(+), 89 deletions(-) create mode 100644 contracts/contracts/PollFactoryCreator.sol create mode 100644 contracts/contracts/VkRegistryCreator.sol diff --git a/contracts/contracts/ClrFund.sol b/contracts/contracts/ClrFund.sol index 36fd7e85b..4b99f2c8c 100644 --- a/contracts/contracts/ClrFund.sol +++ b/contracts/contracts/ClrFund.sol @@ -6,15 +6,9 @@ import '@openzeppelin/contracts/token/ERC20/ERC20.sol'; import '@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol'; import '@openzeppelin/contracts/utils/structs/EnumerableSet.sol'; -// Import ownable from OpenZeppelin contracts - -import {MACI} from 'maci-contracts/contracts/MACI.sol'; -import {SnarkCommon} from 'maci-contracts/contracts/crypto/SnarkCommon.sol'; import {SignUpGatekeeper} from "maci-contracts/contracts/gatekeepers/SignUpGatekeeper.sol"; import {InitialVoiceCreditProxy} from "maci-contracts/contracts/initialVoiceCreditProxy/InitialVoiceCreditProxy.sol"; -import {Params} from 'maci-contracts/contracts/Params.sol'; import {PollFactory} from 'maci-contracts/contracts/Poll.sol'; -import {DomainObjs} from 'maci-contracts/contracts/DomainObjs.sol'; import './userRegistry/IUserRegistry.sol'; import './recipientRegistry/IRecipientRegistry.sol'; @@ -22,7 +16,7 @@ import './MACIFactory.sol'; import './FundingRound.sol'; import './OwnableUpgradeable.sol'; -contract ClrFund is OwnableUpgradeable, SnarkCommon, Params, DomainObjs { +contract ClrFund is OwnableUpgradeable, IPubKey, SnarkCommon { using EnumerableSet for EnumerableSet.AddressSet; using SafeERC20 for ERC20; @@ -46,6 +40,19 @@ contract ClrFund is OwnableUpgradeable, SnarkCommon, Params, DomainObjs { event TokenChanged(address _token); event CoordinatorChanged(address _coordinator); + // errors + error FundingSourceAlreadyAdded(); + error FundingSourceNotFound(); + error AlreadyFinalized(); + error NotFinalized(); + error NotAuthorized(); + error NoCurrentRound(); + error NoCoordinator(); + error NoToken(); + error NoRecipientRegistry(); + error NoUserRegistry(); + error NotOwnerOfMaciFactory(); + function init( MACIFactory _maciFactory ) @@ -88,7 +95,9 @@ contract ClrFund is OwnableUpgradeable, SnarkCommon, Params, DomainObjs { onlyOwner { bool result = fundingSources.add(_source); - require(result, 'Factory: Funding source already added'); + if (!result) { + revert FundingSourceAlreadyAdded(); + } emit FundingSourceAdded(_source); } @@ -101,7 +110,9 @@ contract ClrFund is OwnableUpgradeable, SnarkCommon, Params, DomainObjs { onlyOwner { bool result = fundingSources.remove(_source); - require(result, 'Factory: Funding source not found'); + if (!result) { + revert FundingSourceNotFound(); + } emit FundingSourceRemoved(_source); } @@ -117,39 +128,55 @@ contract ClrFund is OwnableUpgradeable, SnarkCommon, Params, DomainObjs { } function setMaciParameters( - uint8 _messageTreeDepth, - uint8 _voteOptionTreeDepth - ) + uint8 stateTreeDepth, + uint8 intStateTreeDepth, + uint8 messageTreeSubDepth, + uint8 messageTreeDepth, + uint8 voteOptionTreeDepth, + uint256 maxMessages, + uint256 maxVoteOptions, + uint256 messageBatchSize, + VerifyingKey calldata processVk, + VerifyingKey calldata tallyVk + ) external - onlyOwner + onlyCoordinator { maciFactory.setMaciParameters( - _messageTreeDepth, - _voteOptionTreeDepth + stateTreeDepth, + intStateTreeDepth, + messageTreeSubDepth, + messageTreeDepth, + voteOptionTreeDepth, + maxMessages, + maxVoteOptions, + messageBatchSize, + processVk, + tallyVk ); } - /** + /** * @dev Deploy new funding round. * @param duration The poll duration in seconds - * @param vkRegistry The VkRegistry contract address */ - function deployNewRound(uint256 duration, address vkRegistry, address pollFactory, TreeDepths calldata treeDepths) + function deployNewRound(uint256 duration) external onlyOwner + requireToken + requireCoordinator + requireRecipientRegistry + requireUserRegistry { - require(maciFactory.owner() == address(this), 'Factory: MACI factory is not owned by FR factory'); - require(address(userRegistry) != address(0), 'Factory: User registry is not set'); - require(address(recipientRegistry) != address(0), 'Factory: Recipient registry is not set'); - require(address(nativeToken) != address(0), 'Factory: Native token is not set'); - require(coordinator != address(0), 'Factory: No coordinator'); + if (maciFactory.owner() != address(this)) { + revert NotOwnerOfMaciFactory(); + } FundingRound currentRound = getCurrentRound(); - require( - address(currentRound) == address(0) || currentRound.isFinalized(), - 'Factory: Current round is not finalized' - ); + if (address(currentRound) != address(0) && !currentRound.isFinalized()) { + revert NotFinalized(); + } // Make sure that the max number of recipients is set correctly - (uint256 maxMessages, uint256 maxVoteOptions) = maciFactory.maxValues(); + (, uint256 maxVoteOptions) = maciFactory.maxValues(); recipientRegistry.setMaxRecipients(maxVoteOptions); // Deploy funding round and MACI contracts FundingRound newRound = new FundingRound( @@ -159,18 +186,16 @@ contract ClrFund is OwnableUpgradeable, SnarkCommon, Params, DomainObjs { coordinator ); rounds.push(newRound); + MACI maci = maciFactory.deployMaci( SignUpGatekeeper(newRound), InitialVoiceCreditProxy(newRound), - vkRegistry, - pollFactory, - address(nativeToken) + address(nativeToken), + duration, + coordinatorPubKey ); - MaxValues memory maxValues = MaxValues(maxMessages, maxVoteOptions); - maci.deployPoll(duration, maxValues, treeDepths, coordinatorPubKey); newRound.setMaci(maci); - emit RoundStarted(address(newRound)); } @@ -206,7 +231,8 @@ contract ClrFund is OwnableUpgradeable, SnarkCommon, Params, DomainObjs { onlyOwner { FundingRound currentRound = getCurrentRound(); - require(address(currentRound) != address(0), 'Factory: Funding round has not been deployed'); + requireCurrentRound(currentRound); + ERC20 roundToken = currentRound.nativeToken(); // Factory contract is the default funding source uint256 matchingPoolSize = roundToken.balanceOf(address(this)); @@ -235,8 +261,12 @@ contract ClrFund is OwnableUpgradeable, SnarkCommon, Params, DomainObjs { onlyOwner { FundingRound currentRound = getCurrentRound(); - require(address(currentRound) != address(0), 'Factory: Funding round has not been deployed'); - require(!currentRound.isFinalized(), 'Factory: Current round is finalized'); + requireCurrentRound(currentRound); + + if (currentRound.isFinalized()) { + revert AlreadyFinalized(); + } + currentRound.cancel(); emit RoundFinalized(address(currentRound)); } @@ -287,7 +317,43 @@ contract ClrFund is OwnableUpgradeable, SnarkCommon, Params, DomainObjs { } modifier onlyCoordinator() { - require(msg.sender == coordinator, 'Factory: Sender is not the coordinator'); + if (msg.sender != coordinator) { + revert NotAuthorized(); + } + _; + } + + function requireCurrentRound(FundingRound currentRound) private { + if (address(currentRound) == address(0)) { + revert NoCurrentRound(); + } + } + + modifier requireToken() { + if (address(nativeToken) == address(0)) { + revert NoToken(); + } + _; + } + + modifier requireCoordinator() { + if (coordinator == address(0)) { + revert NoCoordinator(); + } + _; + } + + modifier requireUserRegistry() { + if (address(userRegistry) == address(0)) { + revert NoUserRegistry(); + } + _; + } + + modifier requireRecipientRegistry() { + if (address(recipientRegistry) == address(0)) { + revert NoRecipientRegistry(); + } _; } } diff --git a/contracts/contracts/FundingRoundFactory.sol b/contracts/contracts/FundingRoundFactory.sol index ad82c1f2f..9cc55ef64 100644 --- a/contracts/contracts/FundingRoundFactory.sol +++ b/contracts/contracts/FundingRoundFactory.sol @@ -8,21 +8,33 @@ import '@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol'; import '@openzeppelin/contracts/utils/structs/EnumerableSet.sol'; import {MACI} from 'maci-contracts/contracts/MACI.sol'; -import {SignUpGatekeeper} from "maci-contracts/contracts/gatekeepers/SignUpGatekeeper.sol"; -import {InitialVoiceCreditProxy} from "maci-contracts/contracts/initialVoiceCreditProxy/InitialVoiceCreditProxy.sol"; +import {SignUpGatekeeper} from 'maci-contracts/contracts/gatekeepers/SignUpGatekeeper.sol'; +import {InitialVoiceCreditProxy} from 'maci-contracts/contracts/initialVoiceCreditProxy/InitialVoiceCreditProxy.sol'; +import {IPubKey} from 'maci-contracts/contracts/DomainObjs.sol'; import {SnarkCommon} from 'maci-contracts/contracts/crypto/SnarkCommon.sol'; -import {Params} from 'maci-contracts/contracts/Params.sol'; -import {DomainObjs} from 'maci-contracts/contracts/DomainObjs.sol'; import './userRegistry/IUserRegistry.sol'; import './recipientRegistry/IRecipientRegistry.sol'; import './MACIFactory.sol'; import './FundingRound.sol'; -contract FundingRoundFactory is Ownable, SnarkCommon, Params, DomainObjs { +contract FundingRoundFactory is Ownable, IPubKey, SnarkCommon { using EnumerableSet for EnumerableSet.AddressSet; using SafeERC20 for ERC20; + // errors + error FundingSourceAlreadyAdded(); + error FundingSourceNotFound(); + error AlreadyFinalized(); + error NotFinalized(); + error NotAuthorized(); + error NoCurrentRound(); + error NoCoordinator(); + error NoToken(); + error NoRecipientRegistry(); + error NoUserRegistry(); + error NotOwnerOfMaciFactory(); + // State address public coordinator; @@ -83,7 +95,9 @@ contract FundingRoundFactory is Ownable, SnarkCommon, Params, DomainObjs { onlyOwner { bool result = fundingSources.add(_source); - require(result, 'Factory: Funding source already added'); + if (!result) { + revert FundingSourceAlreadyAdded(); + } emit FundingSourceAdded(_source); } @@ -96,7 +110,9 @@ contract FundingRoundFactory is Ownable, SnarkCommon, Params, DomainObjs { onlyOwner { bool result = fundingSources.remove(_source); - require(result, 'Factory: Funding source not found'); + if (!result) { + revert FundingSourceNotFound(); + } emit FundingSourceRemoved(_source); } @@ -112,39 +128,55 @@ contract FundingRoundFactory is Ownable, SnarkCommon, Params, DomainObjs { } function setMaciParameters( - uint8 _messageTreeDepth, - uint8 _voteOptionTreeDepth + uint8 stateTreeDepth, + uint8 intStateTreeDepth, + uint8 messageTreeSubDepth, + uint8 messageTreeDepth, + uint8 voteOptionTreeDepth, + uint256 maxMessages, + uint256 maxVoteOptions, + uint256 messageBatchSize, + VerifyingKey calldata processVk, + VerifyingKey calldata tallyVk ) external - onlyOwner + onlyCoordinator { maciFactory.setMaciParameters( - _messageTreeDepth, - _voteOptionTreeDepth + stateTreeDepth, + intStateTreeDepth, + messageTreeSubDepth, + messageTreeDepth, + voteOptionTreeDepth, + maxMessages, + maxVoteOptions, + messageBatchSize, + processVk, + tallyVk ); } /** * @dev Deploy new funding round. * @param duration The poll duration in seconds - * @param vkRegistry The VkRegistry contract address */ - function deployNewRound(uint256 duration, address vkRegistry, address pollFactory, TreeDepths calldata treeDepths) + function deployNewRound(uint256 duration) external onlyOwner + requireToken + requireCoordinator + requireRecipientRegistry + requireUserRegistry { - require(maciFactory.owner() == address(this), 'Factory: MACI factory is not owned by FR factory'); - require(address(userRegistry) != address(0), 'Factory: User registry is not set'); - require(address(recipientRegistry) != address(0), 'Factory: Recipient registry is not set'); - require(address(nativeToken) != address(0), 'Factory: Native token is not set'); - require(coordinator != address(0), 'Factory: No coordinator'); + if (maciFactory.owner() != address(this)) { + revert NotOwnerOfMaciFactory(); + } FundingRound currentRound = getCurrentRound(); - require( - address(currentRound) == address(0) || currentRound.isFinalized(), - 'Factory: Current round is not finalized' - ); + if (address(currentRound) != address(0) && !currentRound.isFinalized()) { + revert NotFinalized(); + } // Make sure that the max number of recipients is set correctly - (uint256 maxMessages, uint256 maxVoteOptions) = maciFactory.maxValues(); + (, uint256 maxVoteOptions) = maciFactory.maxValues(); recipientRegistry.setMaxRecipients(maxVoteOptions); // Deploy funding round and MACI contracts FundingRound newRound = new FundingRound( @@ -158,14 +190,11 @@ contract FundingRoundFactory is Ownable, SnarkCommon, Params, DomainObjs { MACI maci = maciFactory.deployMaci( SignUpGatekeeper(newRound), InitialVoiceCreditProxy(newRound), - vkRegistry, - pollFactory, - address(nativeToken) + address(nativeToken), + duration, + coordinatorPubKey ); - MaxValues memory maxValues = MaxValues(maxMessages, maxVoteOptions); - maci.deployPoll(duration, maxValues, treeDepths, coordinatorPubKey); - newRound.setMaci(maci); emit RoundStarted(address(newRound)); } @@ -202,7 +231,8 @@ contract FundingRoundFactory is Ownable, SnarkCommon, Params, DomainObjs { onlyOwner { FundingRound currentRound = getCurrentRound(); - require(address(currentRound) != address(0), 'Factory: Funding round has not been deployed'); + requireCurrentRound(currentRound); + ERC20 roundToken = currentRound.nativeToken(); // Factory contract is the default funding source uint256 matchingPoolSize = roundToken.balanceOf(address(this)); @@ -231,8 +261,12 @@ contract FundingRoundFactory is Ownable, SnarkCommon, Params, DomainObjs { onlyOwner { FundingRound currentRound = getCurrentRound(); - require(address(currentRound) != address(0), 'Factory: Funding round has not been deployed'); - require(!currentRound.isFinalized(), 'Factory: Current round is finalized'); + requireCurrentRound(currentRound); + + if (currentRound.isFinalized()) { + revert AlreadyFinalized(); + } + currentRound.cancel(); emit RoundFinalized(address(currentRound)); } @@ -283,7 +317,43 @@ contract FundingRoundFactory is Ownable, SnarkCommon, Params, DomainObjs { } modifier onlyCoordinator() { - require(msg.sender == coordinator, 'Factory: Sender is not the coordinator'); + if (msg.sender != coordinator) { + revert NotAuthorized(); + } + _; + } + + function requireCurrentRound(FundingRound currentRound) private { + if (address(currentRound) == address(0)) { + revert NoCurrentRound(); + } + } + + modifier requireToken() { + if (address(nativeToken) == address(0)) { + revert NoToken(); + } + _; + } + + modifier requireCoordinator() { + if (coordinator == address(0)) { + revert NoCoordinator(); + } + _; + } + + modifier requireUserRegistry() { + if (address(userRegistry) == address(0)) { + revert NoUserRegistry(); + } + _; + } + + modifier requireRecipientRegistry() { + if (address(recipientRegistry) == address(0)) { + revert NoRecipientRegistry(); + } _; } } diff --git a/contracts/contracts/MACIFactory.sol b/contracts/contracts/MACIFactory.sol index a13e6cba7..de886d310 100644 --- a/contracts/contracts/MACIFactory.sol +++ b/contracts/contracts/MACIFactory.sol @@ -10,31 +10,111 @@ import {TopupCredit} from 'maci-contracts/contracts/TopupCredit.sol'; import {VkRegistry} from 'maci-contracts/contracts/VkRegistry.sol'; import {SnarkCommon} from 'maci-contracts/contracts/crypto/SnarkCommon.sol'; import {Ownable} from '@openzeppelin/contracts/access/Ownable.sol'; -import {Params} from "maci-contracts/contracts/Params.sol"; - -contract MACIFactory is Ownable, Params, SnarkCommon { - // Constants - uint256 private constant MESSAGE_TREE_BASE = 2; - uint256 private constant VOTE_OPTION_TREE_BASE = 5; +import {Params} from 'maci-contracts/contracts/Params.sol'; +import {PollFactoryCreator} from './PollFactoryCreator.sol'; +import {VkRegistryCreator} from './VkRegistryCreator.sol'; +import {IPubKey} from 'maci-contracts/contracts/DomainObjs.sol'; +contract MACIFactory is Ownable, Params, SnarkCommon, IPubKey { // States + bool public initialized = false; + uint8 public stateTreeDepth; + + // treeDepths + TreeDepths public treeDepths; + + VerifyingKey public processVk; + VerifyingKey public tallyVk; + + // max values MaxValues public maxValues; + uint256 public messageBatchSize; // Events event MaciParametersChanged(); event MaciDeployed(address _maci); + // errors + error NotInitialized(); + + function init( + uint8 _stateTreeDepth, + uint8 _intStateTreeDepth, + uint8 _messageTreeSubDepth, + uint8 _messageTreeDepth, + uint8 _voteOptionTreeDepth, + uint256 _maxMessages, + uint256 _maxVoteOptions, + uint256 _messageBatchSize, + VerifyingKey calldata _processVk, + VerifyingKey calldata _tallyVk + ) + external + { + _setMaciParameters( + _stateTreeDepth, + _intStateTreeDepth, + _messageTreeSubDepth, + _messageTreeDepth, + _voteOptionTreeDepth, + _maxMessages, + _maxVoteOptions, + _messageBatchSize, + _processVk, + _tallyVk + ); + initialized = true; + } + function setMaciParameters( + uint8 _stateTreeDepth, + uint8 _intStateTreeDepth, + uint8 _messageTreeSubDepth, uint8 _messageTreeDepth, - uint8 _voteOptionTreeDepth + uint8 _voteOptionTreeDepth, + uint256 _maxMessages, + uint256 _maxVoteOptions, + uint256 _messageBatchSize, + VerifyingKey calldata _processVk, + VerifyingKey calldata _tallyVk ) external - onlyOwner { - maxValues = MaxValues( - MESSAGE_TREE_BASE ** _messageTreeDepth - 1, - VOTE_OPTION_TREE_BASE ** _voteOptionTreeDepth - 1 + _setMaciParameters( + _stateTreeDepth, + _intStateTreeDepth, + _messageTreeSubDepth, + _messageTreeDepth, + _voteOptionTreeDepth, + _maxMessages, + _maxVoteOptions, + _messageBatchSize, + _processVk, + _tallyVk ); + } + + function _setMaciParameters( + uint8 _stateTreeDepth, + uint8 _intStateTreeDepth, + uint8 _messageTreeSubDepth, + uint8 _messageTreeDepth, + uint8 _voteOptionTreeDepth, + uint256 _maxMessages, + uint256 _maxVoteOptions, + uint256 _messageBatchSize, + VerifyingKey calldata _processVk, + VerifyingKey calldata _tallyVk + ) + internal + onlyOwner + { + stateTreeDepth = _stateTreeDepth; + treeDepths = TreeDepths(_intStateTreeDepth, _messageTreeSubDepth, _messageTreeDepth, _voteOptionTreeDepth); + maxValues = MaxValues(_maxMessages, _maxVoteOptions); + messageBatchSize = _messageBatchSize; + processVk = _processVk; + tallyVk = _tallyVk; emit MaciParametersChanged(); } @@ -45,17 +125,19 @@ contract MACIFactory is Ownable, Params, SnarkCommon { function deployMaci( SignUpGatekeeper signUpGatekeeper, InitialVoiceCreditProxy initialVoiceCreditProxy, - address vkRegistry, - address pollFactoryAddress, - address topupCredit + address topupCredit, + uint256 duration, + PubKey calldata coordinatorPubKey ) external onlyOwner returns (MACI _maci) { - require(topupCredit != address(0), 'MACIFactory: topupCredit address cannot be zero'); + if (!initialized ) { + revert NotInitialized(); + } - PollFactory pollFactory = PollFactory(pollFactoryAddress); + PollFactory pollFactory = PollFactoryCreator.create(); _maci = new MACI( pollFactory, signUpGatekeeper, @@ -64,8 +146,21 @@ contract MACIFactory is Ownable, Params, SnarkCommon { pollFactory.transferOwnership(address(_maci)); + VkRegistry vkRegistry = VkRegistryCreator.create(); + vkRegistry.setVerifyingKeys( + stateTreeDepth, + treeDepths.intStateTreeDepth, + treeDepths.messageTreeDepth, + treeDepths.voteOptionTreeDepth, + messageBatchSize, + processVk, + tallyVk + ); + MessageAqFactory messageAqFactory = pollFactory.messageAqFactory(); - _maci.init(VkRegistry(vkRegistry), messageAqFactory, TopupCredit(topupCredit)); + _maci.init(vkRegistry, messageAqFactory, TopupCredit(topupCredit)); + + _maci.deployPoll(duration, maxValues, treeDepths, coordinatorPubKey); emit MaciDeployed(address(_maci)); } diff --git a/contracts/contracts/PollFactoryCreator.sol b/contracts/contracts/PollFactoryCreator.sol new file mode 100644 index 000000000..91923e304 --- /dev/null +++ b/contracts/contracts/PollFactoryCreator.sol @@ -0,0 +1,11 @@ +// SPDX-License-Identifier: GPL-3.0 + +pragma solidity 0.8.10; + +import {PollFactory} from 'maci-contracts/contracts/Poll.sol'; + +library PollFactoryCreator { + function create() external returns (PollFactory pollFactory) { + pollFactory = new PollFactory(); + } +} \ No newline at end of file diff --git a/contracts/contracts/VkRegistryCreator.sol b/contracts/contracts/VkRegistryCreator.sol new file mode 100644 index 000000000..1e74242c8 --- /dev/null +++ b/contracts/contracts/VkRegistryCreator.sol @@ -0,0 +1,11 @@ +// SPDX-License-Identifier: GPL-3.0 + +pragma solidity 0.8.10; + +import {VkRegistry} from 'maci-contracts/contracts/VkRegistry.sol'; + +library VkRegistryCreator { + function create() public returns (VkRegistry vkRegistry) { + vkRegistry = new VkRegistry(); + } +} \ No newline at end of file From bd636edf847304db94ae5c4144068824409c89a5 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Thu, 14 Sep 2023 15:25:42 -0400 Subject: [PATCH 012/338] move tests to maciFactory --- contracts/tests/maciParameters.ts | 32 ------------------------------- 1 file changed, 32 deletions(-) delete mode 100644 contracts/tests/maciParameters.ts diff --git a/contracts/tests/maciParameters.ts b/contracts/tests/maciParameters.ts deleted file mode 100644 index cb4e9dab1..000000000 --- a/contracts/tests/maciParameters.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { expect } from 'chai' -import { MaciParameters } from '../utils/maci' -import { ZERO_ADDRESS } from '../utils/constants' -import { CIRCUITS } from '../utils/deployment' - -describe('Maci Parameters', () => { - it('batch size 4', () => { - const params = CIRCUITS['test'] - const maci = new MaciParameters({ - batchUstVerifier: ZERO_ADDRESS, - qvtVerifier: ZERO_ADDRESS, - ...params.batchSizes, - }) - - const { tallyBatchSize, messageBatchSize } = maci - expect(tallyBatchSize).to.eq(4) - expect(messageBatchSize).to.eq(4) - }) - - it('batch size 64', () => { - const params = CIRCUITS['prod'] - const maci = new MaciParameters({ - batchUstVerifier: ZERO_ADDRESS, - qvtVerifier: ZERO_ADDRESS, - ...params.batchSizes, - }) - - const { tallyBatchSize, messageBatchSize } = params.batchSizes - expect(maci.tallyBatchSize).to.eq(tallyBatchSize) - expect(maci.messageBatchSize).to.eq(messageBatchSize) - }) -}) From ee0699cabffa6fa315192c45e5fe9f7aec821896 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Mon, 18 Sep 2023 19:43:49 -0400 Subject: [PATCH 013/338] integrate with maci v1 --- contracts/contracts/FundingRound.sol | 93 +++- contracts/contracts/FundingRoundFactory.sol | 359 ------------ .../contracts/MessageAqFactoryCreator.sol | 11 + contracts/tests/deployer.ts | 3 +- contracts/tests/factory.ts | 510 ------------------ contracts/tests/round.ts | 62 ++- contracts/utils/deployment.ts | 131 ++--- 7 files changed, 181 insertions(+), 988 deletions(-) delete mode 100644 contracts/contracts/FundingRoundFactory.sol create mode 100644 contracts/contracts/MessageAqFactoryCreator.sol delete mode 100644 contracts/tests/factory.ts diff --git a/contracts/contracts/FundingRound.sol b/contracts/contracts/FundingRound.sol index 22efb1ae9..c41b2cd62 100644 --- a/contracts/contracts/FundingRound.sol +++ b/contracts/contracts/FundingRound.sol @@ -28,6 +28,7 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom // Structs struct ContributorStatus { uint256 voiceCredits; + bool isRegistered; } struct RecipientStatus { @@ -84,18 +85,6 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom _; } - /* - * A modifier that causes the function to revert if the voting period is - * not over. - */ - modifier isAfterVotingDeadline() { - (uint256 deployTime, uint256 duration) = poll.getDeployTimeAndDuration(); - uint256 secondsPassed = block.timestamp - deployTime; - require(secondsPassed > duration, 'FundingRound: Voting period still active'); - _; - } - - /** * @dev Set round parameters. * @param _nativeToken Address of a token which will be accepted for contributions. @@ -118,6 +107,16 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom coordinator = _coordinator; } + /** + * @dev Check if the voting period is over. + */ + function isVotingOver() internal view returns (bool) { + require(address(poll) != address(0), 'FundingRound: Poll not set'); + (uint256 deployTime, uint256 duration) = poll.getDeployTimeAndDuration(); + uint256 secondsPassed = block.timestamp - deployTime; + return (secondsPassed >= duration); + } + /** * @dev Have the votes been tallied */ @@ -133,33 +132,29 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom } /** - * @dev Set the pollId used to look up the poll in MACI. + * @dev Set the MACI poll * @param _pollId The poll id. */ - function setPollAndTallyer(uint256 _pollId, PollProcessorAndTallyer _tallyer) + function setPoll(uint256 _pollId) external - onlyCoordinator + onlyOwner { - require(address(tallyer) != address(0), 'FundingRound: Invalid PollProcessorAndTallyer'); - poll = maci.getPoll(_pollId); require(address(poll) != address(0), 'FundingRound: Poll not found'); pollId = _pollId; - tallyer = _tallyer; - emit PollSet(pollId, address(poll)); } /** * @dev Set the poll tallyer - * @param _tallyer The poll id. + * @param _tallyer The poll processor and tallyer contract address */ - function setPollAndTallyer(PollProcessorAndTallyer _tallyer) + function setTallyer(PollProcessorAndTallyer _tallyer) external onlyCoordinator { - require(address(tallyer) != address(0), 'FundingRound: Invalid PollProcessorAndTallyer'); + require(address(_tallyer) != address(0), 'FundingRound: PollProcessorAndTallyer cannot be zero'); tallyer = _tallyer; @@ -186,7 +181,6 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom * @param amount Contribution amount. */ function contribute( - uint256 contributorIndex, PubKey calldata pubKey, uint256 amount ) @@ -212,6 +206,47 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom emit Contribution(msg.sender, amount); } + /** + * @dev Register user for voting. + * This function is part of SignUpGatekeeper interface. + * @param _data Encoded address of a contributor. + */ + function register( + address /* _caller */, + bytes memory _data + ) + override + public + { + require(msg.sender == address(maci), 'FundingRound: Only MACI contract can register voters'); + address user = abi.decode(_data, (address)); + bool verified = userRegistry.isVerifiedUser(user); + require(verified, 'FundingRound: User has not been verified'); + require(contributors[user].voiceCredits > 0, 'FundingRound: User has not contributed'); + require(!contributors[user].isRegistered, 'FundingRound: User already registered'); + contributors[user].isRegistered = true; + } + + /** + * @dev Get the amount of voice credits for a given address. + * This function is a part of the InitialVoiceCreditProxy interface. + * @param _data Encoded address of a user. + */ + function getVoiceCredits( + address /* _caller */, + bytes memory _data + ) + override + public + view + returns (uint256) + { + address user = abi.decode(_data, (address)); + uint256 initialVoiceCredits = contributors[user].voiceCredits; + require(initialVoiceCredits > 0, 'FundingRound: User does not have any voice credits'); + return initialVoiceCredits; + } + /** * @dev Submit a batch of messages along with corresponding ephemeral public keys. */ @@ -221,7 +256,7 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom ) external { - require(address(poll) != address(0), 'FundingRound: Poll not deployed'); + require(address(poll) != address(0), 'FundingRound: Poll not set'); uint256 batchSize = _messages.length; for (uint8 i = 0; i < batchSize; i++) { @@ -324,27 +359,27 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom ) external onlyOwner - isAfterVotingDeadline { require(!isFinalized, 'FundingRound: Already finalized'); require(address(maci) != address(0), 'FundingRound: MACI not deployed'); - require(address(poll) != address(0), 'FundingRound: Poll not deployed'); + require(isVotingOver(), 'FundingRound: Voting has not been finished'); require(isTallied(), 'FundingRound: Votes has not been tallied'); + // make sure we have received all the tally results - (,,, uint8 voteOptionTreeDepth) = poll.treeDepths(); + /* (,,, uint8 voteOptionTreeDepth) = poll.treeDepths(); uint256 totalResults = uint256(LEAVES_PER_NODE) ** uint256(voteOptionTreeDepth); require(totalTallyResults == totalResults, 'FundingRound: Incomplete tally results'); - + */ /* TODO how to check this in maci v1?? totalVotes = maci.totalVotes(); // If nobody voted, the round should be cancelled to avoid locking of matching funds require(totalVotes > 0, 'FundingRound: No votes'); */ + bool verified = poll.verifySpentVoiceCredits(_totalSpent, _totalSpentSalt); require(verified, 'FundingRound: Incorrect total amount of spent voice credits'); - totalSpent = _totalSpent; // Total amount of spent voice credits is the size of the pool of direct rewards. // Everything else, including unspent voice credits and downscaling error, diff --git a/contracts/contracts/FundingRoundFactory.sol b/contracts/contracts/FundingRoundFactory.sol deleted file mode 100644 index 9cc55ef64..000000000 --- a/contracts/contracts/FundingRoundFactory.sol +++ /dev/null @@ -1,359 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0 - -pragma solidity 0.8.10; - -import '@openzeppelin/contracts/access/Ownable.sol'; -import '@openzeppelin/contracts/token/ERC20/ERC20.sol'; -import '@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol'; -import '@openzeppelin/contracts/utils/structs/EnumerableSet.sol'; - -import {MACI} from 'maci-contracts/contracts/MACI.sol'; -import {SignUpGatekeeper} from 'maci-contracts/contracts/gatekeepers/SignUpGatekeeper.sol'; -import {InitialVoiceCreditProxy} from 'maci-contracts/contracts/initialVoiceCreditProxy/InitialVoiceCreditProxy.sol'; -import {IPubKey} from 'maci-contracts/contracts/DomainObjs.sol'; -import {SnarkCommon} from 'maci-contracts/contracts/crypto/SnarkCommon.sol'; - -import './userRegistry/IUserRegistry.sol'; -import './recipientRegistry/IRecipientRegistry.sol'; -import './MACIFactory.sol'; -import './FundingRound.sol'; - -contract FundingRoundFactory is Ownable, IPubKey, SnarkCommon { - using EnumerableSet for EnumerableSet.AddressSet; - using SafeERC20 for ERC20; - - // errors - error FundingSourceAlreadyAdded(); - error FundingSourceNotFound(); - error AlreadyFinalized(); - error NotFinalized(); - error NotAuthorized(); - error NoCurrentRound(); - error NoCoordinator(); - error NoToken(); - error NoRecipientRegistry(); - error NoUserRegistry(); - error NotOwnerOfMaciFactory(); - - // State - address public coordinator; - - ERC20 public nativeToken; - MACIFactory public maciFactory; - IUserRegistry public userRegistry; - IRecipientRegistry public recipientRegistry; - PubKey public coordinatorPubKey; - - EnumerableSet.AddressSet private fundingSources; - FundingRound[] public rounds; - - // Events - event FundingSourceAdded(address _source); - event FundingSourceRemoved(address _source); - event RoundStarted(address _round); - event RoundFinalized(address _round); - event TokenChanged(address _token); - event CoordinatorChanged(address _coordinator); - - constructor( - MACIFactory _maciFactory - ) - { - maciFactory = _maciFactory; - } - - /** - * @dev Set registry of verified users. - * @param _userRegistry Address of a user registry. - */ - function setUserRegistry(IUserRegistry _userRegistry) - external - onlyOwner - { - userRegistry = _userRegistry; - } - - /** - * @dev Set recipient registry. - * @param _recipientRegistry Address of a recipient registry. - */ - function setRecipientRegistry(IRecipientRegistry _recipientRegistry) - external - onlyOwner - { - recipientRegistry = _recipientRegistry; - (, uint256 maxVoteOptions) = maciFactory.maxValues(); - recipientRegistry.setMaxRecipients(maxVoteOptions); - } - - /** - * @dev Add matching funds source. - * @param _source Address of a funding source. - */ - function addFundingSource(address _source) - external - onlyOwner - { - bool result = fundingSources.add(_source); - if (!result) { - revert FundingSourceAlreadyAdded(); - } - emit FundingSourceAdded(_source); - } - - /** - * @dev Remove matching funds source. - * @param _source Address of the funding source. - */ - function removeFundingSource(address _source) - external - onlyOwner - { - bool result = fundingSources.remove(_source); - if (!result) { - revert FundingSourceNotFound(); - } - emit FundingSourceRemoved(_source); - } - - function getCurrentRound() - public - view - returns (FundingRound _currentRound) - { - if (rounds.length == 0) { - return FundingRound(address(0)); - } - return rounds[rounds.length - 1]; - } - - function setMaciParameters( - uint8 stateTreeDepth, - uint8 intStateTreeDepth, - uint8 messageTreeSubDepth, - uint8 messageTreeDepth, - uint8 voteOptionTreeDepth, - uint256 maxMessages, - uint256 maxVoteOptions, - uint256 messageBatchSize, - VerifyingKey calldata processVk, - VerifyingKey calldata tallyVk - ) - external - onlyCoordinator - { - maciFactory.setMaciParameters( - stateTreeDepth, - intStateTreeDepth, - messageTreeSubDepth, - messageTreeDepth, - voteOptionTreeDepth, - maxMessages, - maxVoteOptions, - messageBatchSize, - processVk, - tallyVk - ); - } - - /** - * @dev Deploy new funding round. - * @param duration The poll duration in seconds - */ - function deployNewRound(uint256 duration) - external - onlyOwner - requireToken - requireCoordinator - requireRecipientRegistry - requireUserRegistry - { - if (maciFactory.owner() != address(this)) { - revert NotOwnerOfMaciFactory(); - } - FundingRound currentRound = getCurrentRound(); - if (address(currentRound) != address(0) && !currentRound.isFinalized()) { - revert NotFinalized(); - } - // Make sure that the max number of recipients is set correctly - (, uint256 maxVoteOptions) = maciFactory.maxValues(); - recipientRegistry.setMaxRecipients(maxVoteOptions); - // Deploy funding round and MACI contracts - FundingRound newRound = new FundingRound( - nativeToken, - userRegistry, - recipientRegistry, - coordinator - ); - rounds.push(newRound); - - MACI maci = maciFactory.deployMaci( - SignUpGatekeeper(newRound), - InitialVoiceCreditProxy(newRound), - address(nativeToken), - duration, - coordinatorPubKey - ); - - newRound.setMaci(maci); - emit RoundStarted(address(newRound)); - } - - /** - * @dev Get total amount of matching funds. - */ - function getMatchingFunds(ERC20 token) - external - view - returns (uint256) - { - uint256 matchingPoolSize = token.balanceOf(address(this)); - for (uint256 index = 0; index < fundingSources.length(); index++) { - address fundingSource = fundingSources.at(index); - uint256 allowance = token.allowance(fundingSource, address(this)); - uint256 balance = token.balanceOf(fundingSource); - uint256 contribution = allowance < balance ? allowance : balance; - matchingPoolSize += contribution; - } - return matchingPoolSize; - } - - /** - * @dev Transfer funds from matching pool to current funding round and finalize it. - * @param _totalSpent Total amount of spent voice credits. - * @param _totalSpentSalt The salt. - */ - function transferMatchingFunds( - uint256 _totalSpent, - uint256 _totalSpentSalt - ) - external - onlyOwner - { - FundingRound currentRound = getCurrentRound(); - requireCurrentRound(currentRound); - - ERC20 roundToken = currentRound.nativeToken(); - // Factory contract is the default funding source - uint256 matchingPoolSize = roundToken.balanceOf(address(this)); - if (matchingPoolSize > 0) { - roundToken.safeTransfer(address(currentRound), matchingPoolSize); - } - // Pull funds from other funding sources - for (uint256 index = 0; index < fundingSources.length(); index++) { - address fundingSource = fundingSources.at(index); - uint256 allowance = roundToken.allowance(fundingSource, address(this)); - uint256 balance = roundToken.balanceOf(fundingSource); - uint256 contribution = allowance < balance ? allowance : balance; - if (contribution > 0) { - roundToken.safeTransferFrom(fundingSource, address(currentRound), contribution); - } - } - currentRound.finalize(_totalSpent, _totalSpentSalt); - emit RoundFinalized(address(currentRound)); - } - - /** - * @dev Cancel current round. - */ - function cancelCurrentRound() - external - onlyOwner - { - FundingRound currentRound = getCurrentRound(); - requireCurrentRound(currentRound); - - if (currentRound.isFinalized()) { - revert AlreadyFinalized(); - } - - currentRound.cancel(); - emit RoundFinalized(address(currentRound)); - } - - /** - * @dev Set token in which contributions are accepted. - * @param _token Address of the token contract. - */ - function setToken(address _token) - external - onlyOwner - { - nativeToken = ERC20(_token); - emit TokenChanged(_token); - } - - /** - * @dev Set coordinator's address and public key. - * @param _coordinator Coordinator's address. - * @param _coordinatorPubKey Coordinator's public key. - */ - function setCoordinator( - address _coordinator, - PubKey memory _coordinatorPubKey - ) - external - onlyOwner - { - coordinator = _coordinator; - coordinatorPubKey = _coordinatorPubKey; - emit CoordinatorChanged(_coordinator); - } - - function coordinatorQuit() - external - onlyCoordinator - { - // The fact that they quit is obvious from - // the address being 0x0 - coordinator = address(0); - coordinatorPubKey = PubKey(0, 0); - FundingRound currentRound = getCurrentRound(); - if (address(currentRound) != address(0) && !currentRound.isFinalized()) { - currentRound.cancel(); - emit RoundFinalized(address(currentRound)); - } - emit CoordinatorChanged(address(0)); - } - - modifier onlyCoordinator() { - if (msg.sender != coordinator) { - revert NotAuthorized(); - } - _; - } - - function requireCurrentRound(FundingRound currentRound) private { - if (address(currentRound) == address(0)) { - revert NoCurrentRound(); - } - } - - modifier requireToken() { - if (address(nativeToken) == address(0)) { - revert NoToken(); - } - _; - } - - modifier requireCoordinator() { - if (coordinator == address(0)) { - revert NoCoordinator(); - } - _; - } - - modifier requireUserRegistry() { - if (address(userRegistry) == address(0)) { - revert NoUserRegistry(); - } - _; - } - - modifier requireRecipientRegistry() { - if (address(recipientRegistry) == address(0)) { - revert NoRecipientRegistry(); - } - _; - } -} diff --git a/contracts/contracts/MessageAqFactoryCreator.sol b/contracts/contracts/MessageAqFactoryCreator.sol new file mode 100644 index 000000000..c89b2aadd --- /dev/null +++ b/contracts/contracts/MessageAqFactoryCreator.sol @@ -0,0 +1,11 @@ +// SPDX-License-Identifier: GPL-3.0 + +pragma solidity 0.8.10; + +import {MessageAqFactory} from 'maci-contracts/contracts/Poll.sol'; + +library MessageAqFactoryCreator { + function create() public returns (MessageAqFactory factory) { + factory = new MessageAqFactory(); + } +} \ No newline at end of file diff --git a/contracts/tests/deployer.ts b/contracts/tests/deployer.ts index 51f627463..e23ffd410 100644 --- a/contracts/tests/deployer.ts +++ b/contracts/tests/deployer.ts @@ -27,8 +27,7 @@ describe('Clr fund deployer', () => { const coordinatorPubKey = new Keypair().pubKey.asContractParam() beforeEach(async () => { - const circuit = 'prod' - maciFactory = await deployMaciFactory(deployer, circuit) + maciFactory = await deployMaciFactory(deployer) maciParameters = await MaciParameters.read(maciFactory) factoryTemplate = await deployContract(deployer, 'ClrFund') diff --git a/contracts/tests/factory.ts b/contracts/tests/factory.ts deleted file mode 100644 index fabb31dfb..000000000 --- a/contracts/tests/factory.ts +++ /dev/null @@ -1,510 +0,0 @@ -import { ethers, waffle } from 'hardhat' -import { use, expect } from 'chai' -import { solidity } from 'ethereum-waffle' -import { Contract } from 'ethers' -import { genRandomSalt } from 'maci-crypto' -import { Keypair } from '@clrfund/common' - -import { ZERO_ADDRESS, UNIT } from '../utils/constants' -import { getGasUsage, getEventArg } from '../utils/contracts' -import { deployContract, deployMaciFactory } from '../utils/deployment' -import { MaciParameters } from '../utils/maci' - -use(solidity) - -describe('Funding Round Factory', () => { - const provider = waffle.provider - const [, deployer, coordinator, contributor] = provider.getWallets() - - let maciFactory: Contract - let userRegistry: Contract - let recipientRegistry: Contract - let factory: Contract - let token: Contract - let maciParameters: MaciParameters - const coordinatorPubKey = new Keypair().pubKey.asContractParam() - - beforeEach(async () => { - const circuit = 'prod' - maciFactory = await deployMaciFactory(deployer, circuit) - maciParameters = await MaciParameters.read(maciFactory) - - factory = await deployContract(deployer, 'FundingRoundFactory', [ - maciFactory.address, - ]) - - expect(factory.address).to.properAddress - expect(await getGasUsage(factory.deployTransaction)).lessThan(5400000) - - await maciFactory.transferOwnership(factory.address) - - const SimpleUserRegistry = await ethers.getContractFactory( - 'SimpleUserRegistry', - deployer - ) - userRegistry = await SimpleUserRegistry.deploy() - const SimpleRecipientRegistry = await ethers.getContractFactory( - 'SimpleRecipientRegistry', - deployer - ) - recipientRegistry = await SimpleRecipientRegistry.deploy(factory.address) - - // Deploy token contract and transfer tokens to contributor - const tokenInitialSupply = UNIT.mul(1000) - const Token = await ethers.getContractFactory('AnyOldERC20Token', deployer) - token = await Token.deploy(tokenInitialSupply) - expect(token.address).to.properAddress - await token.transfer(contributor.address, tokenInitialSupply) - }) - - it('initializes factory', async () => { - expect(await factory.coordinator()).to.equal(ZERO_ADDRESS) - expect(await factory.nativeToken()).to.equal(ZERO_ADDRESS) - expect(await factory.maciFactory()).to.equal(maciFactory.address) - expect(await factory.userRegistry()).to.equal(ZERO_ADDRESS) - expect(await factory.recipientRegistry()).to.equal(ZERO_ADDRESS) - }) - - it('transfers ownership to another address', async () => { - await expect(factory.transferOwnership(coordinator.address)) - .to.emit(factory, 'OwnershipTransferred') - .withArgs(deployer.address, coordinator.address) - }) - - describe('changing user registry', () => { - it('allows owner to set user registry', async () => { - await factory.setUserRegistry(userRegistry.address) - expect(await factory.userRegistry()).to.equal(userRegistry.address) - }) - - it('allows only owner to set user registry', async () => { - await expect( - factory.connect(contributor).setUserRegistry(userRegistry.address) - ).to.be.revertedWith('Ownable: caller is not the owner') - }) - - it('allows owner to change recipient registry', async () => { - await factory.setRecipientRegistry(recipientRegistry.address) - const SimpleUserRegistry = await ethers.getContractFactory( - 'SimpleUserRegistry', - deployer - ) - const anotherUserRegistry = await SimpleUserRegistry.deploy() - await factory.setUserRegistry(anotherUserRegistry.address) - expect(await factory.userRegistry()).to.equal(anotherUserRegistry.address) - }) - }) - - describe('changing recipient registry', () => { - it('allows owner to set recipient registry', async () => { - await factory.setRecipientRegistry(recipientRegistry.address) - expect(await factory.recipientRegistry()).to.equal( - recipientRegistry.address - ) - expect(await recipientRegistry.controller()).to.equal(factory.address) - expect(await recipientRegistry.maxRecipients()).to.equal( - 5 ** maciParameters.voteOptionTreeDepth - 1 - ) - }) - - it('allows only owner to set recipient registry', async () => { - await expect( - factory - .connect(contributor) - .setRecipientRegistry(recipientRegistry.address) - ).to.be.revertedWith('Ownable: caller is not the owner') - }) - - it('allows owner to change recipient registry', async () => { - await factory.setRecipientRegistry(recipientRegistry.address) - const SimpleRecipientRegistry = await ethers.getContractFactory( - 'SimpleRecipientRegistry', - deployer - ) - const anotherRecipientRegistry = await SimpleRecipientRegistry.deploy( - factory.address - ) - await factory.setRecipientRegistry(anotherRecipientRegistry.address) - expect(await factory.recipientRegistry()).to.equal( - anotherRecipientRegistry.address - ) - }) - }) - - describe('managing funding sources', () => { - it('allows owner to add funding source', async () => { - await expect(factory.addFundingSource(contributor.address)) - .to.emit(factory, 'FundingSourceAdded') - .withArgs(contributor.address) - }) - - it('allows only owner to add funding source', async () => { - await expect( - factory.connect(contributor).addFundingSource(contributor.address) - ).to.be.revertedWith('Ownable: caller is not the owner') - }) - - it('reverts if funding source is already added', async () => { - await factory.addFundingSource(contributor.address) - await expect( - factory.addFundingSource(contributor.address) - ).to.be.revertedWith('Factory: Funding source already added') - }) - - it('allows owner to remove funding source', async () => { - await factory.addFundingSource(contributor.address) - await expect(factory.removeFundingSource(contributor.address)) - .to.emit(factory, 'FundingSourceRemoved') - .withArgs(contributor.address) - }) - - it('allows only owner to remove funding source', async () => { - await factory.addFundingSource(contributor.address) - await expect( - factory.connect(contributor).removeFundingSource(contributor.address) - ).to.be.revertedWith('Ownable: caller is not the owner') - }) - - it('reverts if funding source is already removed', async () => { - await factory.addFundingSource(contributor.address) - await factory.removeFundingSource(contributor.address) - await expect( - factory.removeFundingSource(contributor.address) - ).to.be.revertedWith('Factory: Funding source not found') - }) - }) - - it('allows direct contributions to the matching pool', async () => { - const contributionAmount = UNIT.mul(10) - await factory.setToken(token.address) - await expect( - token.connect(contributor).transfer(factory.address, contributionAmount) - ) - .to.emit(token, 'Transfer') - .withArgs(contributor.address, factory.address, contributionAmount) - expect(await token.balanceOf(factory.address)).to.equal(contributionAmount) - }) - - it('sets MACI parameters', async () => { - maciParameters.update({ voteOptionTreeDepth: 3 }) - await expect(factory.setMaciParameters(...maciParameters.values())).to.emit( - maciFactory, - 'MaciParametersChanged' - ) - const treeDepths = await maciFactory.treeDepths() - expect(treeDepths.voteOptionTreeDepth).to.equal(3) - }) - - it('allows only owner to set MACI parameters', async () => { - const coordinatorFactory = factory.connect(coordinator) - await expect( - coordinatorFactory.setMaciParameters(...maciParameters.values()) - ).to.be.revertedWith('Ownable: caller is not the owner') - }) - - describe('deploying funding round', () => { - it('deploys funding round', async () => { - await factory.setUserRegistry(userRegistry.address) - await factory.setRecipientRegistry(recipientRegistry.address) - await factory.setToken(token.address) - await factory.setCoordinator(coordinator.address, coordinatorPubKey) - const deployed = factory.deployNewRound() - await expect(deployed).to.emit(factory, 'RoundStarted') - const deployTx = await deployed - expect(await getGasUsage(deployTx)).lessThan(13000000) - - const fundingRoundAddress = await factory.getCurrentRound() - expect(fundingRoundAddress).to.properAddress - expect(fundingRoundAddress).to.not.equal(ZERO_ADDRESS) - - const fundingRound = await ethers.getContractAt( - 'FundingRound', - fundingRoundAddress - ) - expect(await fundingRound.owner()).to.equal(factory.address) - expect(await fundingRound.nativeToken()).to.equal(token.address) - - const maciAddress = await getEventArg( - deployTx, - maciFactory, - 'MaciDeployed', - '_maci' - ) - expect(await fundingRound.maci()).to.equal(maciAddress) - const maci = await ethers.getContractAt('MACI', maciAddress) - const roundCoordinatorPubKey = await maci.coordinatorPubKey() - expect(roundCoordinatorPubKey.x).to.equal(coordinatorPubKey.x) - expect(roundCoordinatorPubKey.y).to.equal(coordinatorPubKey.y) - }) - - it('reverts if user registry is not set', async () => { - await factory.setRecipientRegistry(recipientRegistry.address) - await factory.setToken(token.address) - await factory.setCoordinator(coordinator.address, coordinatorPubKey) - await expect(factory.deployNewRound()).to.be.revertedWith( - 'Factory: User registry is not set' - ) - }) - - it('reverts if recipient registry is not set', async () => { - await factory.setUserRegistry(userRegistry.address) - await factory.setToken(token.address) - await factory.setCoordinator(coordinator.address, coordinatorPubKey) - await expect(factory.deployNewRound()).to.be.revertedWith( - 'Factory: Recipient registry is not set' - ) - }) - - it('reverts if native token is not set', async () => { - await factory.setUserRegistry(userRegistry.address) - await factory.setRecipientRegistry(recipientRegistry.address) - await factory.setCoordinator(coordinator.address, coordinatorPubKey) - await expect(factory.deployNewRound()).to.be.revertedWith( - 'Factory: Native token is not set' - ) - }) - - it('reverts if coordinator is not set', async () => { - await factory.setUserRegistry(userRegistry.address) - await factory.setRecipientRegistry(recipientRegistry.address) - await factory.setToken(token.address) - await expect(factory.deployNewRound()).to.be.revertedWith( - 'Factory: No coordinator' - ) - }) - - it('reverts if current round is not finalized', async () => { - await factory.setUserRegistry(userRegistry.address) - await factory.setRecipientRegistry(recipientRegistry.address) - await factory.setToken(token.address) - await factory.setCoordinator(coordinator.address, coordinatorPubKey) - await factory.deployNewRound() - await expect(factory.deployNewRound()).to.be.revertedWith( - 'Factory: Current round is not finalized' - ) - }) - - it('deploys new funding round after previous round has been finalized', async () => { - await factory.setUserRegistry(userRegistry.address) - await factory.setRecipientRegistry(recipientRegistry.address) - await factory.setToken(token.address) - await factory.setCoordinator(coordinator.address, coordinatorPubKey) - await factory.deployNewRound() - await factory.cancelCurrentRound() - await expect(factory.deployNewRound()).to.emit(factory, 'RoundStarted') - }) - - it('only owner can deploy funding round', async () => { - await factory.setUserRegistry(userRegistry.address) - await factory.setRecipientRegistry(recipientRegistry.address) - await factory.setToken(token.address) - await factory.setCoordinator(coordinator.address, coordinatorPubKey) - const factoryAsContributor = factory.connect(contributor) - await expect(factoryAsContributor.deployNewRound()).to.be.revertedWith( - 'Ownable: caller is not the owner' - ) - }) - }) - - describe('transferring matching funds', () => { - const contributionAmount = UNIT.mul(10) - const totalSpent = UNIT.mul(100) - const totalSpentSalt = genRandomSalt().toString() - let roundDuration: number - - beforeEach(async () => { - await factory.setUserRegistry(userRegistry.address) - await factory.setRecipientRegistry(recipientRegistry.address) - await factory.setToken(token.address) - await factory.setCoordinator(coordinator.address, coordinatorPubKey) - roundDuration = - maciParameters.signUpDuration + maciParameters.votingDuration + 10 - }) - - it('returns the amount of available matching funding', async () => { - await factory.addFundingSource(deployer.address) - await factory.addFundingSource(contributor.address) - // Allowance is more than available balance - await token.connect(deployer).approve(factory.address, contributionAmount) - // Allowance is less than available balance - await token - .connect(contributor) - .approve(factory.address, contributionAmount) - // Direct contribution - await token - .connect(contributor) - .transfer(factory.address, contributionAmount) - await factory.deployNewRound() - expect(await factory.getMatchingFunds(token.address)).to.equal( - contributionAmount.mul(2) - ) - }) - - it('allows owner to finalize round', async () => { - await token - .connect(contributor) - .transfer(factory.address, contributionAmount) - await factory.deployNewRound() - await provider.send('evm_increaseTime', [roundDuration]) - await expect( - factory.transferMatchingFunds(totalSpent, totalSpentSalt) - ).to.be.revertedWith('FundingRound: Votes has not been tallied') - }) - - it('allows owner to finalize round even without matching funds', async () => { - await factory.deployNewRound() - await provider.send('evm_increaseTime', [roundDuration]) - await expect( - factory.transferMatchingFunds(totalSpent, totalSpentSalt) - ).to.be.revertedWith('FundingRound: Votes has not been tallied') - }) - - it('pulls funds from funding source', async () => { - await factory.addFundingSource(contributor.address) - token.connect(contributor).approve(factory.address, contributionAmount) - await factory.addFundingSource(deployer.address) // Doesn't have tokens - await factory.deployNewRound() - await provider.send('evm_increaseTime', [roundDuration]) - await expect( - factory.transferMatchingFunds(totalSpent, totalSpentSalt) - ).to.be.revertedWith('FundingRound: Votes has not been tallied') - }) - - it('pulls funds from funding source if allowance is greater than balance', async () => { - await factory.addFundingSource(contributor.address) - token - .connect(contributor) - .approve(factory.address, contributionAmount.mul(2)) - await factory.deployNewRound() - await provider.send('evm_increaseTime', [roundDuration]) - await expect( - factory.transferMatchingFunds(totalSpent, totalSpentSalt) - ).to.be.revertedWith('FundingRound: Votes has not been tallied') - }) - - it('allows only owner to finalize round', async () => { - await factory.deployNewRound() - await provider.send('evm_increaseTime', [roundDuration]) - await expect( - factory - .connect(contributor) - .transferMatchingFunds(totalSpent, totalSpentSalt) - ).to.be.revertedWith('Ownable: caller is not the owner') - }) - - it('reverts if round has not been deployed', async () => { - await expect( - factory.transferMatchingFunds(totalSpent, totalSpentSalt) - ).to.be.revertedWith('Factory: Funding round has not been deployed') - }) - }) - - describe('cancelling round', () => { - beforeEach(async () => { - await factory.setUserRegistry(userRegistry.address) - await factory.setRecipientRegistry(recipientRegistry.address) - await factory.setToken(token.address) - await factory.setCoordinator(coordinator.address, coordinatorPubKey) - }) - - it('allows owner to cancel round', async () => { - await factory.deployNewRound() - const fundingRoundAddress = await factory.getCurrentRound() - const fundingRound = await ethers.getContractAt( - 'FundingRound', - fundingRoundAddress - ) - await expect(factory.cancelCurrentRound()) - .to.emit(factory, 'RoundFinalized') - .withArgs(fundingRoundAddress) - expect(await fundingRound.isCancelled()).to.equal(true) - }) - - it('allows only owner to cancel round', async () => { - await factory.deployNewRound() - await expect( - factory.connect(contributor).cancelCurrentRound() - ).to.be.revertedWith('Ownable: caller is not the owner') - }) - - it('reverts if round has not been deployed', async () => { - await expect(factory.cancelCurrentRound()).to.be.revertedWith( - 'Factory: Funding round has not been deployed' - ) - }) - - it('reverts if round is finalized', async () => { - await factory.deployNewRound() - await factory.cancelCurrentRound() - await expect(factory.cancelCurrentRound()).to.be.revertedWith( - 'Factory: Current round is finalized' - ) - }) - }) - - it('allows owner to set native token', async () => { - await expect(factory.setToken(token.address)) - .to.emit(factory, 'TokenChanged') - .withArgs(token.address) - expect(await factory.nativeToken()).to.equal(token.address) - }) - - it('only owner can set native token', async () => { - const factoryAsContributor = factory.connect(contributor) - await expect( - factoryAsContributor.setToken(token.address) - ).to.be.revertedWith('Ownable: caller is not the owner') - }) - - it('allows owner to change coordinator', async () => { - await expect(factory.setCoordinator(coordinator.address, coordinatorPubKey)) - .to.emit(factory, 'CoordinatorChanged') - .withArgs(coordinator.address) - expect(await factory.coordinator()).to.eq(coordinator.address) - }) - - it('allows only the owner to set a new coordinator', async () => { - const factoryAsContributor = factory.connect(contributor) - await expect( - factoryAsContributor.setCoordinator( - coordinator.address, - coordinatorPubKey - ) - ).to.be.revertedWith('Ownable: caller is not the owner') - }) - - it('allows coordinator to call coordinatorQuit and sets coordinator to null', async () => { - await factory.setCoordinator(coordinator.address, coordinatorPubKey) - const factoryAsCoordinator = factory.connect(coordinator) - await expect(factoryAsCoordinator.coordinatorQuit()) - .to.emit(factory, 'CoordinatorChanged') - .withArgs(ZERO_ADDRESS) - expect(await factory.coordinator()).to.equal(ZERO_ADDRESS) - }) - - it('only coordinator can call coordinatorQuit', async () => { - await factory.setCoordinator(coordinator.address, coordinatorPubKey) - await expect(factory.coordinatorQuit()).to.be.revertedWith( - 'Factory: Sender is not the coordinator' - ) - }) - - it('should cancel current round when coordinator quits', async () => { - await factory.setUserRegistry(userRegistry.address) - await factory.setRecipientRegistry(recipientRegistry.address) - await factory.setToken(token.address) - await factory.setCoordinator(coordinator.address, coordinatorPubKey) - await factory.deployNewRound() - const fundingRoundAddress = await factory.getCurrentRound() - const fundingRound = await ethers.getContractAt( - 'FundingRound', - fundingRoundAddress - ) - - const factoryAsCoordinator = factory.connect(coordinator) - await expect(factoryAsCoordinator.coordinatorQuit()) - .to.emit(factory, 'RoundFinalized') - .withArgs(fundingRoundAddress) - expect(await fundingRound.isCancelled()).to.equal(true) - }) -}) diff --git a/contracts/tests/round.ts b/contracts/tests/round.ts index 1d21be7d4..178a2540b 100644 --- a/contracts/tests/round.ts +++ b/contracts/tests/round.ts @@ -14,13 +14,19 @@ import { ALPHA_PRECISION, } from '../utils/constants' import { getEventArg, getGasUsage } from '../utils/contracts' -import { deployMaciFactory } from '../utils/deployment' +import { + deployPoseidonLibraries, + deployMaciFactory, + deployContractWithLinkedLibraries, + CIRCUITS, +} from '../utils/deployment' import { bnSqrt, createMessage, addTallyResultsBatch, getRecipientClaimData, getRecipientTallyResultsBatch, + MaciParameters, } from '../utils/maci' import { sha256 } from 'ethers/lib/utils' @@ -109,22 +115,49 @@ describe('Funding Round', () => { IRecipientRegistryArtifact.abi ) - const FundingRound = await ethers.getContractFactory('FundingRound', { - signer: deployer, - }) - fundingRound = await FundingRound.deploy( - token.address, - userRegistry.address, - recipientRegistry.address, - coordinator.address + const libraries = await deployPoseidonLibraries(deployer) + const fundingRound = await deployContractWithLinkedLibraries( + deployer, + 'FundingRound', + libraries, + [ + token.address, + userRegistry.address, + recipientRegistry.address, + coordinator.address, + ] + ) + const VkRegistryArtifact = await artifacts.readArtifact('VkRegistry') + const vkRegistry = await deployMockContract( + deployer, + VkRegistryArtifact.abi + ) + const pollFactory = await deployContractWithLinkedLibraries( + deployer, + 'PollFactory', + libraries ) - const circuit = 'prod' - const maciFactory = await deployMaciFactory(deployer, circuit) + const maciFactory = await deployMaciFactory(deployer) + await vkRegistry.mock.owner.returns(maciFactory.address) + + const params = CIRCUITS['micro'] + const maciParams = new MaciParameters({ ...params.maxValues }) + const setMaciParamsTx = await maciFactory.setMaciParameters( + ...maciParams.values() + ) + + await setMaciParamsTx.wait() + + const transferTx = await pollFactory.transferOwnership(maciFactory.address) + await transferTx.wait() + + console.log('before deployMaci...') const maciDeployed = await maciFactory.deployMaci( fundingRound.address, fundingRound.address, - coordinator.address, - coordinatorPubKey.asContractParam() + vkRegistry.address, + pollFactory.address, + token.address ) const maciAddress = await getEventArg( maciDeployed, @@ -132,7 +165,10 @@ describe('Funding Round', () => { 'MaciDeployed', '_maci' ) + console.log('maci', maciAddress) + maci = await ethers.getContractAt('MACI', maciAddress) + console.log('maci', maciAddress) }) it('initializes funding round correctly', async () => { diff --git a/contracts/utils/deployment.ts b/contracts/utils/deployment.ts index 54357a3ac..068d1a251 100644 --- a/contracts/utils/deployment.ts +++ b/contracts/utils/deployment.ts @@ -6,6 +6,8 @@ import { setVerifyingKeys, genProofs, proveOnChain } from '@clrfund/maci-cli' import { readFileSync } from 'fs' +const TREE_ARITY = 5 + const userRegistryNames: Record = { simple: 'SimpleUserRegistry', brightid: 'BrightIdUserRegistry', @@ -19,13 +21,6 @@ export interface BrightIdParams { sponsor: string } -export interface PoseidonContracts { - PoseidonT3Contract: Contract - PoseidonT4Contract: Contract - PoseidonT5Contract: Contract - PoseidonT6Contract: Contract -} - /** * Return the brightid user registry contructor parameter values * @param userRegistryType user registry type @@ -66,71 +61,39 @@ export function linkBytecode( return linkable.evm.bytecode.object } -// custom configuration for MACI parameters. +// custom configuration for MACI parameters export const CIRCUITS: { [name: string]: any } = { - test: { - batchUstVerifier: 'BatchUpdateStateTreeVerifier', - qvtVerifier: 'QuadVoteTallyVerifier', - treeDepths: { - stateTreeDepth: 4, - messageTreeDepth: 4, - voteOptionTreeDepth: 2, - }, - batchSizes: { - tallyBatchSize: 4, - messageBatchSize: 4, - }, - }, - small: { - batchUstVerifier: 'BatchUpdateStateTreeVerifierSmall', - qvtVerifier: 'QuadVoteTallyVerifierSmall', - treeDepths: { - stateTreeDepth: 8, - messageTreeDepth: 11, - voteOptionTreeDepth: 3, - }, - batchSizes: { - tallyBatchSize: 4, - messageBatchSize: 4, - }, - }, - medium: { - batchUstVerifier: 'BatchUpdateStateTreeVerifierMedium', - qvtVerifier: 'QuadVoteTallyVerifierMedium', - treeDepths: { - stateTreeDepth: 9, - messageTreeDepth: 13, - voteOptionTreeDepth: 3, - }, - batchSizes: { - tallyBatchSize: 4, - messageBatchSize: 4, - }, - }, - x32: { - batchUstVerifier: 'BatchUpdateStateTreeVerifier32', - qvtVerifier: 'QuadVoteTallyVerifier32', - treeDepths: { - stateTreeDepth: 32, - messageTreeDepth: 32, - voteOptionTreeDepth: 3, - }, - batchSizes: { - tallyBatchSize: 8, - messageBatchSize: 8, - }, - }, + // TODO: check if the maci v1 only supports micro based on the following comment: + // https://github.com/privacy-scaling-explorations/maci/blob/master/contracts/contracts/MACI.sol#L25 micro: { //https://github.com/privacy-scaling-explorations/maci/wiki/Precompiled-v1.1.1#micro-size processMessagesZkey: 'ProcessMessages_10-2-1-2_test.0.zkey', tallyVotesZkey: 'TallyVotes_10-1-2_test.0.zkey', treeDepths: { + // TODO: confirm if the following 4 parameters are the 4 parameters in processMessages.circom stateTreeDepth: 10, messageTreeDepth: 2, + // TODO: confirm if messageBatchTreeDepth is the same as _messageTreeSubDepth in TreeDepths. + // TODO: is messageBatchTreeDepth == intStateTreeDepth?? messageBatchTreeDepth: 1, voteOptionTreeDepth: 2, + // TODO: confirm if intStateTreeDepth is the 2nd param in tallyVotes.circom intStateTreeDepth: 1, }, + maxValues: { + // maxMessages and maxVoteOptions are calculated using treeArity = 5 as seen in the following code: + // https://github.com/privacy-scaling-explorations/maci/blob/master/contracts/contracts/Poll.sol#L115 + // treeArity ** messageTreeDepth + maxMessages: TREE_ARITY ** 2, + // treeArity ** voteOptionTreeDepth + maxVoteOptions: TREE_ARITY ** 2, + }, + batchSizes: { + // TODO: confirm the following mapping + // https://github.com/privacy-scaling-explorations/maci/blob/master/contracts/contracts/MACI.sol#L259 + // treeArity ** messageBatchTreeDepth + messageBatchSize: TREE_ARITY ** 1, + }, }, //https://github.com/privacy-scaling-explorations/maci/wiki/Precompiled-v1.1.1#prod-size prod: { @@ -143,6 +106,16 @@ export const CIRCUITS: { [name: string]: any } = { voteOptionTreeDepth: 4, intStateTreeDepth: 3, }, + maxValues: { + maxMessages: TREE_ARITY ** 9, + maxVoteOptions: TREE_ARITY ** 4, + }, + batchSizes: { + // TODO: confirm the following mapping + // https://github.com/privacy-scaling-explorations/maci/blob/master/contracts/contracts/MACI.sol#L259 + // treeArity ** messageBatchTreeDepth + messageBatchSize: TREE_ARITY ** 3, + }, }, } @@ -182,6 +155,20 @@ export async function deployPoseidon( return Poseidon.deploy() } +export async function deployContractWithLinkedLibraries( + signer: Signer, + contractName: string, + libraries: { [name: string]: string }, + contractArgs: any[] = [] +): Promise { + const contractFactory = await ethers.getContractFactory(contractName, { + signer, + libraries, + }) + const contract = await contractFactory.deploy(...contractArgs) + return await contract.deployed() +} + export async function deployContract( account: Signer, contractName: string, @@ -221,14 +208,7 @@ export async function deployVkRegistry( } export async function deployMaciFactory(account: Signer): Promise { - const poseidonContracts = await deployPoseidonContracts(account) - - const libraries = { - PoseidonT3: poseidonContracts.PoseidonT3Contract.address, - PoseidonT4: poseidonContracts.PoseidonT4Contract.address, - PoseidonT5: poseidonContracts.PoseidonT5Contract.address, - PoseidonT6: poseidonContracts.PoseidonT6Contract.address, - } + const libraries = await deployPoseidonLibraries(account) const MACIFactory = await ethers.getContractFactory('MACIFactory', { signer: account, @@ -301,20 +281,21 @@ export function getZkeyFilePath(name: string): string { * @param signer The signer for the deployment transaction * @returns the deployed poseidon contracts */ -export async function deployPoseidonContracts( +export async function deployPoseidonLibraries( signer: Signer -): Promise { +): Promise<{ [name: string]: string }> { const PoseidonT3Contract = await deployPoseidon(signer, 'PoseidonT3') const PoseidonT4Contract = await deployPoseidon(signer, 'PoseidonT4') const PoseidonT5Contract = await deployPoseidon(signer, 'PoseidonT5') const PoseidonT6Contract = await deployPoseidon(signer, 'PoseidonT6') - return { - PoseidonT3Contract, - PoseidonT4Contract, - PoseidonT5Contract, - PoseidonT6Contract, + const libraries = { + PoseidonT3: PoseidonT3Contract.address, + PoseidonT4: PoseidonT4Contract.address, + PoseidonT5: PoseidonT5Contract.address, + PoseidonT6: PoseidonT6Contract.address, } + return libraries } export { proveOnChain, genProofs } From 8324db4a80d0f0b92207faf4c5372e4e9710cb5f Mon Sep 17 00:00:00 2001 From: yuetloo Date: Tue, 19 Sep 2023 17:23:46 -0400 Subject: [PATCH 014/338] reduce contract size by using custom error --- contracts/contracts/FundingRound.sol | 197 +++++++++++++++++++++------ 1 file changed, 155 insertions(+), 42 deletions(-) diff --git a/contracts/contracts/FundingRound.sol b/contracts/contracts/FundingRound.sol index c41b2cd62..45fffdf9d 100644 --- a/contracts/contracts/FundingRound.sol +++ b/contracts/contracts/FundingRound.sol @@ -17,7 +17,38 @@ import './recipientRegistry/IRecipientRegistry.sol'; contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, DomainObjs { using SafeERC20 for ERC20; - error VOTING_PERIOD_NOT_PASSED(); + + // Errors + error OnlyMaciCanRegisterVoters(); + error NotCoordinator(); + error PollNotSet(); + error PollProcessorAndTallyerNotSet(); + error InvalidPollId(); + error InvalidPollProcessorAndTallyer(); + error MaciAlreadySet(); + error MaciNotSet(); + error ContributionAmountIsZero(); + error ContributionAmountTooLarge(); + error AlreadyContributed(); + error UserNotVerified(); + error UserHasNotContributed(); + error UserAlreadyRegistered(); + error NoVoiceCredits(); + error NothingToWithdraw(); + error RoundNotCancelled(); + error RoundCancelled(); + error RoundAlreadyFinalized(); + error RoundNotFinalized(); + error VotesNotTallied(); + error EmptyTallyHash(); + error InvalidBudget(); + error NoProjectHasMoreThanOneVote(); + error VoteResultsAlreadyVerified(); + error IncorrectTallyResult(); + error IncorrectSpentVoiceCredits(); + error VotingIsNotOver(); + error FundsAlreadyClaimed(); + error TallyHashNotPublished(); // Constants uint256 private constant MAX_VOICE_CREDITS = 10 ** 9; // MACI allows 2 ** 32 voice credits max @@ -81,7 +112,9 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom event TallyerSet(address indexed tallyer); modifier onlyCoordinator() { - require(msg.sender == coordinator, 'FundingRound: Sender is not the coordinator'); + if(msg.sender != coordinator) { + revert NotCoordinator(); + } _; } @@ -111,7 +144,9 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom * @dev Check if the voting period is over. */ function isVotingOver() internal view returns (bool) { - require(address(poll) != address(0), 'FundingRound: Poll not set'); + if (address(poll) == address(0)) { + revert PollNotSet(); + } (uint256 deployTime, uint256 duration) = poll.getDeployTimeAndDuration(); uint256 secondsPassed = block.timestamp - deployTime; return (secondsPassed >= duration); @@ -121,14 +156,16 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom * @dev Have the votes been tallied */ function isTallied() internal view returns (bool) { - require(address(tallyer) != address(0), 'FundingRound: Poll tallyer not set'); + if (address(tallyer) == address(0)) { + revert PollProcessorAndTallyerNotSet(); + } (uint256 numSignUps, ) = poll.numSignUpsAndMessages(); (, uint256 tallyBatchSize, ) = poll.batchSizes(); uint256 tallyBatchNum = tallyer.tallyBatchNum(); uint256 totalTallied = tallyBatchNum * tallyBatchSize; - return totalTallied > numSignUps; + return totalTallied >= numSignUps; } /** @@ -140,7 +177,9 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom onlyOwner { poll = maci.getPoll(_pollId); - require(address(poll) != address(0), 'FundingRound: Poll not found'); + if (address(poll) == address(0)) { + revert InvalidPollId(); + } pollId = _pollId; emit PollSet(pollId, address(poll)); @@ -154,7 +193,9 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom external onlyCoordinator { - require(address(_tallyer) != address(0), 'FundingRound: PollProcessorAndTallyer cannot be zero'); + if (address(_tallyer) == address(0)) { + revert InvalidPollProcessorAndTallyer(); + } tallyer = _tallyer; @@ -170,7 +211,9 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom external onlyOwner { - require(address(maci) == address(0), 'FundingRound: Already linked to MACI instance'); + if (address(maci) != address(0)) { + revert MaciAlreadySet(); + } maci = _maci; } @@ -186,13 +229,16 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom ) external { - require(address(maci) != address(0), 'FundingRound: MACI not deployed'); - require(!isFinalized, 'FundingRound: Round finalized'); - require(amount > 0, 'FundingRound: Contribution amount must be greater than zero'); - require(amount <= MAX_VOICE_CREDITS * voiceCreditFactor, 'FundingRound: Contribution amount is too large'); + if (address(maci) == address(0)) revert MaciNotSet(); + if (isFinalized) revert RoundAlreadyFinalized(); + if (amount == 0) revert ContributionAmountIsZero(); + if (amount > MAX_VOICE_CREDITS * voiceCreditFactor) revert ContributionAmountTooLarge(); + if (contributors[msg.sender].voiceCredits != 0) { + revert AlreadyContributed(); + } + uint256 voiceCredits = amount / voiceCreditFactor; - uint256 currentVoiceCredits = contributors[msg.sender].voiceCredits; - contributors[msg.sender] = ContributorStatus(voiceCredits + currentVoiceCredits); + contributors[msg.sender] = ContributorStatus(voiceCredits, false); contributorCount += 1; bytes memory signUpGatekeeperData = abi.encode(msg.sender, voiceCredits); bytes memory initialVoiceCreditProxyData = abi.encode(msg.sender); @@ -218,12 +264,25 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom override public { - require(msg.sender == address(maci), 'FundingRound: Only MACI contract can register voters'); + if (msg.sender != address(maci)) { + revert OnlyMaciCanRegisterVoters(); + } + address user = abi.decode(_data, (address)); bool verified = userRegistry.isVerifiedUser(user); - require(verified, 'FundingRound: User has not been verified'); - require(contributors[user].voiceCredits > 0, 'FundingRound: User has not contributed'); - require(!contributors[user].isRegistered, 'FundingRound: User already registered'); + + if (!verified) { + revert UserNotVerified(); + } + + if (contributors[user].voiceCredits <= 0) { + revert UserHasNotContributed(); + } + + if (contributors[user].isRegistered) { + revert UserAlreadyRegistered(); + } + contributors[user].isRegistered = true; } @@ -243,7 +302,11 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom { address user = abi.decode(_data, (address)); uint256 initialVoiceCredits = contributors[user].voiceCredits; - require(initialVoiceCredits > 0, 'FundingRound: User does not have any voice credits'); + + if (initialVoiceCredits <= 0) { + revert NoVoiceCredits(); + } + return initialVoiceCredits; } @@ -256,7 +319,9 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom ) external { - require(address(poll) != address(0), 'FundingRound: Poll not set'); + if (address(poll) == address(0)) { + revert PollNotSet(); + } uint256 batchSize = _messages.length; for (uint8 i = 0; i < batchSize; i++) { @@ -272,7 +337,9 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom public returns (bool[] memory result) { - require(isCancelled, 'FundingRound: Round not cancelled'); + if (!isCancelled) { + revert RoundNotCancelled(); + } result = new bool[](_contributors.length); // Reconstruction of exact contribution amount from VCs may not be possible due to a loss of precision @@ -300,7 +367,9 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom msgSender[0] = msg.sender; bool[] memory results = withdrawContributions(msgSender); - require(results[0], 'FundingRound: Nothing to withdraw'); + if (!results[0]) { + revert NothingToWithdraw(); + } } /** @@ -311,8 +380,12 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom external onlyCoordinator { - require(!isFinalized, 'FundingRound: Round finalized'); - require(bytes(_tallyHash).length != 0, 'FundingRound: Tally hash is empty string'); + if (isFinalized) { + revert RoundAlreadyFinalized(); + } + if (bytes(_tallyHash).length == 0) { + revert EmptyTallyHash(); + } tallyHash = _tallyHash; emit TallyPublished(_tallyHash); @@ -336,10 +409,16 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom { // make sure budget = contributions + matching pool uint256 contributions = _totalSpent * voiceCreditFactor; - require(_budget >= contributions, 'FundingRound: Invalid budget'); - // guard against division by zero when fewer than 1 contributor for each project - require(_totalVotesSquares > _totalSpent, "FundingRound: Total quadratic votes must be greater than total spent voice credits"); + if (_budget < contributions) { + revert InvalidBudget(); + } + + // guard against division by zero. + // This happens when no project receives more than one vote + if (_totalVotesSquares <= _totalSpent) { + revert NoProjectHasMoreThanOneVote(); + } return (_budget - contributions) * ALPHA_PRECISION / (voiceCreditFactor * (_totalVotesSquares - _totalSpent)); @@ -360,11 +439,22 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom external onlyOwner { - require(!isFinalized, 'FundingRound: Already finalized'); - require(address(maci) != address(0), 'FundingRound: MACI not deployed'); - require(isVotingOver(), 'FundingRound: Voting has not been finished'); - require(isTallied(), 'FundingRound: Votes has not been tallied'); - + if (isFinalized) { + revert RoundAlreadyFinalized(); + } + if (address(maci) == address(0)) { + revert MaciNotSet(); + } + if (!isVotingOver()) { + revert VotingIsNotOver(); + } + if (!isTallied()) { + revert VotesNotTallied(); + } + if (bytes(tallyHash).length == 0) { + revert TallyHashNotPublished(); + } + // make sure we have received all the tally results /* (,,, uint8 voteOptionTreeDepth) = poll.treeDepths(); @@ -378,7 +468,9 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom */ bool verified = poll.verifySpentVoiceCredits(_totalSpent, _totalSpentSalt); - require(verified, 'FundingRound: Incorrect total amount of spent voice credits'); + if (!verified) { + revert IncorrectSpentVoiceCredits(); + } totalSpent = _totalSpent; // Total amount of spent voice credits is the size of the pool of direct rewards. @@ -399,7 +491,9 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom external onlyOwner { - require(!isFinalized, 'FundingRound: Already finalized'); + if (isFinalized) { + revert RoundAlreadyFinalized(); + } isFinalized = true; isCancelled = true; } @@ -437,9 +531,17 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom ) external { - require(isFinalized, 'FundingRound: Round not finalized'); - require(!isCancelled, 'FundingRound: Round has been cancelled'); - require(!recipients[_voteOptionIndex].fundsClaimed, 'FundingRound: Funds already claimed'); + if (!isFinalized) { + revert RoundNotFinalized(); + } + + if (isCancelled) { + revert RoundCancelled(); + } + + if (recipients[_voteOptionIndex].fundsClaimed) { + revert FundsAlreadyClaimed(); + } recipients[_voteOptionIndex].fundsClaimed = true; { @@ -451,7 +553,9 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom _spentSalt ); - require(verified, 'FundingRound: Incorrect amount of spent voice credits'); + if (!verified) { + revert IncorrectSpentVoiceCredits(); + } } (uint256 startTime, uint256 duration) = poll.getDeployTimeAndDuration(); @@ -489,7 +593,9 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom private { RecipientStatus storage recipient = recipients[_voteOptionIndex]; - require(!recipient.tallyVerified, 'FundingRound: Vote results already verified'); + if (recipient.tallyVerified) { + revert VoteResultsAlreadyVerified(); + } bool resultVerified = poll.verifyTallyResult( _voteOptionIndex, @@ -499,7 +605,10 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom _perVOSpentVoiceCreditsHash, _tallyCommitment ); - require(resultVerified, 'FundingRound: Incorrect tally result'); + + if (!resultVerified) { + revert IncorrectTallyResult(); + } recipient.tallyVerified = true; recipient.tallyResult = _tallyResult; @@ -527,8 +636,12 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom external onlyCoordinator { - require(isTallied(), 'FundingRound: Votes have not been tallied'); - require(!isFinalized, 'FundingRound: Already finalized'); + if (!isTallied()) { + revert VotesNotTallied(); + } + if (isFinalized) { + revert RoundAlreadyFinalized(); + } for (uint256 i = 0; i < _voteOptionIndices.length; i++) { _addTallyResult( From f88fa0686b204842cb55be8eab2c137c7003dcce Mon Sep 17 00:00:00 2001 From: yuetloo Date: Tue, 19 Sep 2023 17:25:33 -0400 Subject: [PATCH 015/338] reduce contract size and bug fixes --- contracts/contracts/MACIFactory.sol | 161 ++++++++++++---------------- 1 file changed, 71 insertions(+), 90 deletions(-) diff --git a/contracts/contracts/MACIFactory.sol b/contracts/contracts/MACIFactory.sol index de886d310..a29a44d03 100644 --- a/contracts/contracts/MACIFactory.sol +++ b/contracts/contracts/MACIFactory.sol @@ -12,21 +12,17 @@ import {SnarkCommon} from 'maci-contracts/contracts/crypto/SnarkCommon.sol'; import {Ownable} from '@openzeppelin/contracts/access/Ownable.sol'; import {Params} from 'maci-contracts/contracts/Params.sol'; import {PollFactoryCreator} from './PollFactoryCreator.sol'; -import {VkRegistryCreator} from './VkRegistryCreator.sol'; +import {MessageAqFactoryCreator} from './MessageAqFactoryCreator.sol'; import {IPubKey} from 'maci-contracts/contracts/DomainObjs.sol'; contract MACIFactory is Ownable, Params, SnarkCommon, IPubKey { - // States - bool public initialized = false; - uint8 public stateTreeDepth; + // Constants + uint8 private constant VOTE_OPTION_TREE_BASE = 5; - // treeDepths + // State + VkRegistry public vkRegistry; + uint8 public stateTreeDepth; TreeDepths public treeDepths; - - VerifyingKey public processVk; - VerifyingKey public tallyVk; - - // max values MaxValues public maxValues; uint256 public messageBatchSize; @@ -36,85 +32,68 @@ contract MACIFactory is Ownable, Params, SnarkCommon, IPubKey { // errors error NotInitialized(); + error CannotDecreaseVoteOptionDepth(); + error ProcessVkNotSet(); + error TallyVkNotSet(); + error InvalidVkRegistry(); - function init( - uint8 _stateTreeDepth, - uint8 _intStateTreeDepth, - uint8 _messageTreeSubDepth, - uint8 _messageTreeDepth, - uint8 _voteOptionTreeDepth, - uint256 _maxMessages, - uint256 _maxVoteOptions, - uint256 _messageBatchSize, - VerifyingKey calldata _processVk, - VerifyingKey calldata _tallyVk - ) - external - { - _setMaciParameters( - _stateTreeDepth, - _intStateTreeDepth, - _messageTreeSubDepth, - _messageTreeDepth, - _voteOptionTreeDepth, - _maxMessages, - _maxVoteOptions, - _messageBatchSize, - _processVk, - _tallyVk - ); - initialized = true; + constructor(VkRegistry _vkRegistry) { + _setVkRegistry(_vkRegistry); } - function setMaciParameters( - uint8 _stateTreeDepth, - uint8 _intStateTreeDepth, - uint8 _messageTreeSubDepth, - uint8 _messageTreeDepth, - uint8 _voteOptionTreeDepth, - uint256 _maxMessages, - uint256 _maxVoteOptions, - uint256 _messageBatchSize, - VerifyingKey calldata _processVk, - VerifyingKey calldata _tallyVk - ) - external - { - _setMaciParameters( - _stateTreeDepth, - _intStateTreeDepth, - _messageTreeSubDepth, - _messageTreeDepth, - _voteOptionTreeDepth, - _maxMessages, - _maxVoteOptions, - _messageBatchSize, - _processVk, - _tallyVk - ); + function _setVkRegistry(VkRegistry _vkRegistry) internal { + if (address(_vkRegistry) == address(0)) { + revert InvalidVkRegistry(); + } + + vkRegistry = _vkRegistry; } - function _setMaciParameters( + function setVkRegistry(VkRegistry _vkRegistry) public onlyOwner { + _setVkRegistry(_vkRegistry); + } + + function setMaciParameters( uint8 _stateTreeDepth, - uint8 _intStateTreeDepth, - uint8 _messageTreeSubDepth, - uint8 _messageTreeDepth, - uint8 _voteOptionTreeDepth, - uint256 _maxMessages, - uint256 _maxVoteOptions, + TreeDepths calldata _treeDepths, + MaxValues calldata _maxValues, uint256 _messageBatchSize, VerifyingKey calldata _processVk, VerifyingKey calldata _tallyVk ) - internal + public onlyOwner { + if (_treeDepths.voteOptionTreeDepth < treeDepths.voteOptionTreeDepth) { + revert CannotDecreaseVoteOptionDepth(); + } + + if (!vkRegistry.hasProcessVk( + _stateTreeDepth, + _treeDepths.messageTreeDepth, + _treeDepths.voteOptionTreeDepth, + _messageBatchSize) || + !vkRegistry.hasTallyVk( + _stateTreeDepth, + _treeDepths.intStateTreeDepth, + _treeDepths.voteOptionTreeDepth + ) + ) { + vkRegistry.setVerifyingKeys( + _stateTreeDepth, + _treeDepths.intStateTreeDepth, + _treeDepths.messageTreeDepth, + _treeDepths.voteOptionTreeDepth, + _messageBatchSize, + _processVk, + _tallyVk + ); + } + stateTreeDepth = _stateTreeDepth; - treeDepths = TreeDepths(_intStateTreeDepth, _messageTreeSubDepth, _messageTreeDepth, _voteOptionTreeDepth); - maxValues = MaxValues(_maxMessages, _maxVoteOptions); + maxValues = _maxValues; + treeDepths = _treeDepths; messageBatchSize = _messageBatchSize; - processVk = _processVk; - tallyVk = _tallyVk; emit MaciParametersChanged(); } @@ -133,8 +112,21 @@ contract MACIFactory is Ownable, Params, SnarkCommon, IPubKey { onlyOwner returns (MACI _maci) { - if (!initialized ) { - revert NotInitialized(); + if (!vkRegistry.hasProcessVk( + stateTreeDepth, + treeDepths.messageTreeDepth, + treeDepths.voteOptionTreeDepth, + messageBatchSize) + ) { + revert ProcessVkNotSet(); + } + + if (!vkRegistry.hasTallyVk( + stateTreeDepth, + treeDepths.intStateTreeDepth, + treeDepths.voteOptionTreeDepth) + ) { + revert TallyVkNotSet(); } PollFactory pollFactory = PollFactoryCreator.create(); @@ -143,23 +135,12 @@ contract MACIFactory is Ownable, Params, SnarkCommon, IPubKey { signUpGatekeeper, initialVoiceCreditProxy ); - pollFactory.transferOwnership(address(_maci)); - VkRegistry vkRegistry = VkRegistryCreator.create(); - vkRegistry.setVerifyingKeys( - stateTreeDepth, - treeDepths.intStateTreeDepth, - treeDepths.messageTreeDepth, - treeDepths.voteOptionTreeDepth, - messageBatchSize, - processVk, - tallyVk - ); + MessageAqFactory messageAqFactory = MessageAqFactoryCreator.create(); + messageAqFactory.transferOwnership(address(pollFactory)); - MessageAqFactory messageAqFactory = pollFactory.messageAqFactory(); _maci.init(vkRegistry, messageAqFactory, TopupCredit(topupCredit)); - _maci.deployPoll(duration, maxValues, treeDepths, coordinatorPubKey); emit MaciDeployed(address(_maci)); From d106ce88edcf8310d0130b02a06723e7883bb8fb Mon Sep 17 00:00:00 2001 From: yuetloo Date: Tue, 19 Sep 2023 17:27:02 -0400 Subject: [PATCH 016/338] fix test cases with new custom errors --- contracts/tests/deployer.ts | 197 +++++++++++++++++++++++++----------- 1 file changed, 139 insertions(+), 58 deletions(-) diff --git a/contracts/tests/deployer.ts b/contracts/tests/deployer.ts index e23ffd410..b76c522e7 100644 --- a/contracts/tests/deployer.ts +++ b/contracts/tests/deployer.ts @@ -1,17 +1,51 @@ import { ethers, waffle } from 'hardhat' import { use, expect } from 'chai' import { solidity } from 'ethereum-waffle' -import { Contract } from 'ethers' +import { Signer, Contract, ContractTransaction } from 'ethers' import { genRandomSalt } from 'maci-crypto' import { Keypair } from '@clrfund/common' import { ZERO_ADDRESS, UNIT } from '../utils/constants' import { getGasUsage, getEventArg } from '../utils/contracts' -import { deployContract, deployMaciFactory } from '../utils/deployment' +import { + deployContract, + deployContractWithLinkedLibraries, + deployMaciFactory, + deployPoseidonLibraries, +} from '../utils/deployment' import { MaciParameters } from '../utils/maci' use(solidity) +const roundDuration = 10000 + +async function setMaciParameters( + clrfund: Contract, + signer: Signer, + circuit: string +): Promise { + const clrfundAsSigner = clrfund.connect(signer) + const params = MaciParameters.mock(circuit) + return clrfundAsSigner.setMaciParameters(...params.asContractParam()) +} + +async function setRoundTallyer( + clrfund: Contract, + coordinator: Signer +): Promise { + const verifier = await deployContract(coordinator, 'MockVerifier') + const ppt = await deployContract(coordinator, 'PollProcessorAndTallyer', [ + verifier.address, + ]) + const roundAddress = await clrfund.getCurrentRound() + const round = await ethers.getContractAt( + 'FundingRound', + roundAddress, + coordinator + ) + return round.setTallyer(ppt.address) +} + describe('Clr fund deployer', () => { const provider = waffle.provider const [, deployer, coordinator, contributor] = provider.getWallets() @@ -25,12 +59,20 @@ describe('Clr fund deployer', () => { let token: Contract let maciParameters: MaciParameters const coordinatorPubKey = new Keypair().pubKey.asContractParam() + let poseidonContracts: { [name: string]: string } beforeEach(async () => { - maciFactory = await deployMaciFactory(deployer) - maciParameters = await MaciParameters.read(maciFactory) - - factoryTemplate = await deployContract(deployer, 'ClrFund') + if (!poseidonContracts) { + poseidonContracts = await deployPoseidonLibraries(deployer) + } + maciFactory = await deployMaciFactory(deployer, poseidonContracts) + maciParameters = await MaciParameters.mock('micro') + + factoryTemplate = await deployContractWithLinkedLibraries( + deployer, + 'ClrFund', + poseidonContracts + ) expect(factoryTemplate.address).to.properAddress expect(await getGasUsage(factoryTemplate.deployTransaction)).lessThan( @@ -46,7 +88,9 @@ describe('Clr fund deployer', () => { 5400000 ) - const newInstanceTx = await clrFundDeployer.deployFund(maciFactory.address) + const newInstanceTx = await clrFundDeployer.deployClrFund( + maciFactory.address + ) const instanceAddress = await getEventArg( newInstanceTx, clrFundDeployer, @@ -152,13 +196,16 @@ describe('Clr fund deployer', () => { describe('changing recipient registry', () => { it('allows owner to set recipient registry', async () => { + await factory.setCoordinator(coordinator.address, coordinatorPubKey) + await setMaciParameters(factory, coordinator, 'micro') await factory.setRecipientRegistry(recipientRegistry.address) expect(await factory.recipientRegistry()).to.equal( recipientRegistry.address ) expect(await recipientRegistry.controller()).to.equal(factory.address) + const params = MaciParameters.mock('micro') expect(await recipientRegistry.maxRecipients()).to.equal( - 5 ** maciParameters.voteOptionTreeDepth - 1 + 5 ** params.voteOptionTreeDepth ) }) @@ -203,7 +250,7 @@ describe('Clr fund deployer', () => { await factory.addFundingSource(contributor.address) await expect( factory.addFundingSource(contributor.address) - ).to.be.revertedWith('Factory: Funding source already added') + ).to.be.revertedWith('FundingSourceAlreadyAdded') }) it('allows owner to remove funding source', async () => { @@ -225,7 +272,7 @@ describe('Clr fund deployer', () => { await factory.removeFundingSource(contributor.address) await expect( factory.removeFundingSource(contributor.address) - ).to.be.revertedWith('Factory: Funding source not found') + ).to.be.revertedWith('FundingSourceNotFound') }) }) @@ -241,20 +288,25 @@ describe('Clr fund deployer', () => { }) it('sets MACI parameters', async () => { - maciParameters.update({ voteOptionTreeDepth: 3 }) - await expect(factory.setMaciParameters(...maciParameters.values())).to.emit( - maciFactory, - 'MaciParametersChanged' - ) + const newMaciParameters = MaciParameters.mock('prod') + const factoryAsCoordinator = factory.connect(coordinator) + await factory.setCoordinator(coordinator.address, coordinatorPubKey) + + await expect( + factoryAsCoordinator.setMaciParameters( + ...newMaciParameters.asContractParam() + ) + ).to.emit(maciFactory, 'MaciParametersChanged') const treeDepths = await maciFactory.treeDepths() - expect(treeDepths.voteOptionTreeDepth).to.equal(3) + expect(treeDepths.voteOptionTreeDepth).to.equal( + newMaciParameters.voteOptionTreeDepth + ) }) - it('allows only owner to set MACI parameters', async () => { - const coordinatorFactory = factory.connect(coordinator) + it('allows only coordinator to set MACI parameters', async () => { await expect( - coordinatorFactory.setMaciParameters(...maciParameters.values()) - ).to.be.revertedWith('Ownable: caller is not the owner') + factory.setMaciParameters(...maciParameters.asContractParam()) + ).to.be.revertedWith('NotAuthorized') }) describe('deploying funding round', () => { @@ -263,10 +315,12 @@ describe('Clr fund deployer', () => { await factory.setRecipientRegistry(recipientRegistry.address) await factory.setToken(token.address) await factory.setCoordinator(coordinator.address, coordinatorPubKey) - const deployed = factory.deployNewRound() + await setMaciParameters(factory, coordinator, 'micro') + const deployed = factory.deployNewRound(roundDuration) await expect(deployed).to.emit(factory, 'RoundStarted') const deployTx = await deployed - expect(await getGasUsage(deployTx)).lessThan(13000000) + // TODO: fix gas usage for deployNewRound() + expect(await getGasUsage(deployTx)).lessThan(20000000) const fundingRoundAddress = await factory.getCurrentRound() expect(fundingRoundAddress).to.properAddress @@ -285,9 +339,17 @@ describe('Clr fund deployer', () => { 'MaciDeployed', '_maci' ) + expect(await fundingRound.maci()).to.equal(maciAddress) const maci = await ethers.getContractAt('MACI', maciAddress) - const roundCoordinatorPubKey = await maci.coordinatorPubKey() + const pollAddress = await getEventArg( + deployTx, + maci, + 'DeployPoll', + '_pollAddr' + ) + const poll = await ethers.getContractAt('Poll', pollAddress) + const roundCoordinatorPubKey = await poll.coordinatorPubKey() expect(roundCoordinatorPubKey.x).to.equal(coordinatorPubKey.x) expect(roundCoordinatorPubKey.y).to.equal(coordinatorPubKey.y) }) @@ -296,8 +358,10 @@ describe('Clr fund deployer', () => { await factory.setRecipientRegistry(recipientRegistry.address) await factory.setToken(token.address) await factory.setCoordinator(coordinator.address, coordinatorPubKey) - await expect(factory.deployNewRound()).to.be.revertedWith( - 'Factory: User registry is not set' + await setMaciParameters(factory, coordinator, 'micro') + + await expect(factory.deployNewRound(roundDuration)).to.be.revertedWith( + 'NoUserRegistry' ) }) @@ -305,8 +369,10 @@ describe('Clr fund deployer', () => { await factory.setUserRegistry(userRegistry.address) await factory.setToken(token.address) await factory.setCoordinator(coordinator.address, coordinatorPubKey) - await expect(factory.deployNewRound()).to.be.revertedWith( - 'Factory: Recipient registry is not set' + await setMaciParameters(factory, coordinator, 'micro') + + await expect(factory.deployNewRound(roundDuration)).to.be.revertedWith( + 'NoRecipientRegistry' ) }) @@ -314,8 +380,10 @@ describe('Clr fund deployer', () => { await factory.setUserRegistry(userRegistry.address) await factory.setRecipientRegistry(recipientRegistry.address) await factory.setCoordinator(coordinator.address, coordinatorPubKey) - await expect(factory.deployNewRound()).to.be.revertedWith( - 'Factory: Native token is not set' + await setMaciParameters(factory, coordinator, 'micro') + + await expect(factory.deployNewRound(roundDuration)).to.be.revertedWith( + 'NoToken' ) }) @@ -323,8 +391,8 @@ describe('Clr fund deployer', () => { await factory.setUserRegistry(userRegistry.address) await factory.setRecipientRegistry(recipientRegistry.address) await factory.setToken(token.address) - await expect(factory.deployNewRound()).to.be.revertedWith( - 'Factory: No coordinator' + await expect(factory.deployNewRound(roundDuration)).to.be.revertedWith( + 'NoCoordinator' ) }) @@ -333,9 +401,11 @@ describe('Clr fund deployer', () => { await factory.setRecipientRegistry(recipientRegistry.address) await factory.setToken(token.address) await factory.setCoordinator(coordinator.address, coordinatorPubKey) - await factory.deployNewRound() - await expect(factory.deployNewRound()).to.be.revertedWith( - 'Factory: Current round is not finalized' + await setMaciParameters(factory, coordinator, 'micro') + + await factory.deployNewRound(roundDuration) + await expect(factory.deployNewRound(roundDuration)).to.be.revertedWith( + 'NotFinalized' ) }) @@ -344,9 +414,14 @@ describe('Clr fund deployer', () => { await factory.setRecipientRegistry(recipientRegistry.address) await factory.setToken(token.address) await factory.setCoordinator(coordinator.address, coordinatorPubKey) - await factory.deployNewRound() + await setMaciParameters(factory, coordinator, 'micro') + + await factory.deployNewRound(roundDuration) await factory.cancelCurrentRound() - await expect(factory.deployNewRound()).to.emit(factory, 'RoundStarted') + await expect(factory.deployNewRound(roundDuration)).to.emit( + factory, + 'RoundStarted' + ) }) it('only owner can deploy funding round', async () => { @@ -354,10 +429,12 @@ describe('Clr fund deployer', () => { await factory.setRecipientRegistry(recipientRegistry.address) await factory.setToken(token.address) await factory.setCoordinator(coordinator.address, coordinatorPubKey) + await setMaciParameters(factory, coordinator, 'micro') + const factoryAsContributor = factory.connect(contributor) - await expect(factoryAsContributor.deployNewRound()).to.be.revertedWith( - 'Ownable: caller is not the owner' - ) + await expect( + factoryAsContributor.deployNewRound(roundDuration) + ).to.be.revertedWith('Ownable: caller is not the owner') }) }) @@ -365,15 +442,13 @@ describe('Clr fund deployer', () => { const contributionAmount = UNIT.mul(10) const totalSpent = UNIT.mul(100) const totalSpentSalt = genRandomSalt().toString() - let roundDuration: number beforeEach(async () => { await factory.setUserRegistry(userRegistry.address) await factory.setRecipientRegistry(recipientRegistry.address) await factory.setToken(token.address) await factory.setCoordinator(coordinator.address, coordinatorPubKey) - roundDuration = - maciParameters.signUpDuration + maciParameters.votingDuration + 10 + await setMaciParameters(factory, coordinator, 'micro') }) it('returns the amount of available matching funding', async () => { @@ -389,7 +464,8 @@ describe('Clr fund deployer', () => { await token .connect(contributor) .transfer(factory.address, contributionAmount) - await factory.deployNewRound() + + await factory.deployNewRound(roundDuration) expect(await factory.getMatchingFunds(token.address)).to.equal( contributionAmount.mul(2) ) @@ -399,16 +475,18 @@ describe('Clr fund deployer', () => { await token .connect(contributor) .transfer(factory.address, contributionAmount) - await factory.deployNewRound() + await factory.deployNewRound(roundDuration) await provider.send('evm_increaseTime', [roundDuration]) + await setRoundTallyer(factory, coordinator) await expect( factory.transferMatchingFunds(totalSpent, totalSpentSalt) ).to.be.revertedWith('FundingRound: Votes has not been tallied') }) it('allows owner to finalize round even without matching funds', async () => { - await factory.deployNewRound() + await factory.deployNewRound(roundDuration) await provider.send('evm_increaseTime', [roundDuration]) + await setRoundTallyer(factory, coordinator) await expect( factory.transferMatchingFunds(totalSpent, totalSpentSalt) ).to.be.revertedWith('FundingRound: Votes has not been tallied') @@ -418,8 +496,9 @@ describe('Clr fund deployer', () => { await factory.addFundingSource(contributor.address) token.connect(contributor).approve(factory.address, contributionAmount) await factory.addFundingSource(deployer.address) // Doesn't have tokens - await factory.deployNewRound() + await factory.deployNewRound(roundDuration) await provider.send('evm_increaseTime', [roundDuration]) + await setRoundTallyer(factory, coordinator) await expect( factory.transferMatchingFunds(totalSpent, totalSpentSalt) ).to.be.revertedWith('FundingRound: Votes has not been tallied') @@ -430,16 +509,18 @@ describe('Clr fund deployer', () => { token .connect(contributor) .approve(factory.address, contributionAmount.mul(2)) - await factory.deployNewRound() + await factory.deployNewRound(roundDuration) await provider.send('evm_increaseTime', [roundDuration]) + await setRoundTallyer(factory, coordinator) await expect( factory.transferMatchingFunds(totalSpent, totalSpentSalt) ).to.be.revertedWith('FundingRound: Votes has not been tallied') }) it('allows only owner to finalize round', async () => { - await factory.deployNewRound() + await factory.deployNewRound(roundDuration) await provider.send('evm_increaseTime', [roundDuration]) + await setRoundTallyer(factory, coordinator) await expect( factory .connect(contributor) @@ -450,7 +531,7 @@ describe('Clr fund deployer', () => { it('reverts if round has not been deployed', async () => { await expect( factory.transferMatchingFunds(totalSpent, totalSpentSalt) - ).to.be.revertedWith('Factory: Funding round has not been deployed') + ).to.be.revertedWith('NoCurrentRound') }) }) @@ -460,10 +541,11 @@ describe('Clr fund deployer', () => { await factory.setRecipientRegistry(recipientRegistry.address) await factory.setToken(token.address) await factory.setCoordinator(coordinator.address, coordinatorPubKey) + await setMaciParameters(factory, coordinator, 'micro') }) it('allows owner to cancel round', async () => { - await factory.deployNewRound() + await factory.deployNewRound(roundDuration) const fundingRoundAddress = await factory.getCurrentRound() const fundingRound = await ethers.getContractAt( 'FundingRound', @@ -476,7 +558,7 @@ describe('Clr fund deployer', () => { }) it('allows only owner to cancel round', async () => { - await factory.deployNewRound() + await factory.deployNewRound(roundDuration) await expect( factory.connect(contributor).cancelCurrentRound() ).to.be.revertedWith('Ownable: caller is not the owner') @@ -484,15 +566,15 @@ describe('Clr fund deployer', () => { it('reverts if round has not been deployed', async () => { await expect(factory.cancelCurrentRound()).to.be.revertedWith( - 'Factory: Funding round has not been deployed' + 'NoCurrentRound' ) }) it('reverts if round is finalized', async () => { - await factory.deployNewRound() + await factory.deployNewRound(roundDuration) await factory.cancelCurrentRound() await expect(factory.cancelCurrentRound()).to.be.revertedWith( - 'Factory: Current round is finalized' + 'AlreadyFinalized' ) }) }) @@ -539,9 +621,7 @@ describe('Clr fund deployer', () => { it('only coordinator can call coordinatorQuit', async () => { await factory.setCoordinator(coordinator.address, coordinatorPubKey) - await expect(factory.coordinatorQuit()).to.be.revertedWith( - 'Factory: Sender is not the coordinator' - ) + await expect(factory.coordinatorQuit()).to.be.revertedWith('NotAuthorized') }) it('should cancel current round when coordinator quits', async () => { @@ -549,7 +629,8 @@ describe('Clr fund deployer', () => { await factory.setRecipientRegistry(recipientRegistry.address) await factory.setToken(token.address) await factory.setCoordinator(coordinator.address, coordinatorPubKey) - await factory.deployNewRound() + await setMaciParameters(factory, coordinator, 'micro') + await factory.deployNewRound(roundDuration) const fundingRoundAddress = await factory.getCurrentRound() const fundingRound = await ethers.getContractAt( 'FundingRound', From 0f5e80f488dc179fdb7c61c2ec79e573219f6d89 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Tue, 19 Sep 2023 17:27:58 -0400 Subject: [PATCH 017/338] fix test cases with custom errors and test with maci v1 --- contracts/tests/maciFactory.ts | 94 ++++++++++++++++++++-------------- 1 file changed, 55 insertions(+), 39 deletions(-) diff --git a/contracts/tests/maciFactory.ts b/contracts/tests/maciFactory.ts index 57d15d9a6..1e30c51fe 100644 --- a/contracts/tests/maciFactory.ts +++ b/contracts/tests/maciFactory.ts @@ -6,7 +6,7 @@ import { deployMockContract } from '@ethereum-waffle/mock-contract' import { Keypair } from '@clrfund/common' import { getEventArg, getGasUsage } from '../utils/contracts' -import { deployMaciFactory } from '../utils/deployment' +import { deployMaciFactory, deployPoseidonLibraries } from '../utils/deployment' import { MaciParameters } from '../utils/maci' use(solidity) @@ -15,17 +15,23 @@ describe('MACI factory', () => { const provider = waffle.provider const [, deployer, coordinator] = provider.getWallets() + const duration = 100 let maciFactory: Contract let signUpGatekeeper: Contract let initialVoiceCreditProxy: Contract + let topupContract: Contract let maciParameters: MaciParameters + let poseidonContracts: { [name: string]: string } const coordinatorPubKey = new Keypair().pubKey.asContractParam() beforeEach(async () => { - const circuit = 'prod' - maciFactory = await deployMaciFactory(deployer, circuit) + if (!poseidonContracts) { + poseidonContracts = await deployPoseidonLibraries(deployer) + } + maciFactory = await deployMaciFactory(deployer, poseidonContracts) expect(await getGasUsage(maciFactory.deployTransaction)).lessThan(5600000) - maciParameters = await MaciParameters.read(maciFactory) + + maciParameters = MaciParameters.mock('micro') const SignUpGatekeeperArtifact = await artifacts.readArtifact('SignUpGatekeeper') @@ -40,89 +46,94 @@ describe('MACI factory', () => { deployer, InitialVoiceCreditProxyArtifact.abi ) + const Token = await artifacts.readArtifact('AnyOldERC20Token') + topupContract = await deployMockContract(deployer, Token.abi) }) it('sets default MACI parameters', async () => { - const { maxUsers, maxMessages, maxVoteOptions } = - await maciFactory.maxValues() - expect(maxUsers).to.equal(4294967295) - expect(maxMessages).to.equal(4294967295) - expect(maxVoteOptions).to.equal(124) - expect(await maciFactory.signUpDuration()).to.equal(604800) - expect(await maciFactory.votingDuration()).to.equal(604800) + const { maxMessages, maxVoteOptions } = await maciFactory.maxValues() + expect(maxMessages).to.equal(0) + expect(maxVoteOptions).to.equal(0) }) it('sets MACI parameters', async () => { - maciParameters.update({ - stateTreeDepth: 32, - messageTreeDepth: 32, - voteOptionTreeDepth: 3, - signUpDuration: 86400, - votingDuration: 86400, - }) await expect( - maciFactory.setMaciParameters(...maciParameters.values()) + maciFactory.setMaciParameters(...maciParameters.asContractParam()) ).to.emit(maciFactory, 'MaciParametersChanged') - const { maxUsers, maxMessages, maxVoteOptions } = - await maciFactory.maxValues() - expect(maxUsers).to.equal(2 ** maciParameters.stateTreeDepth - 1) - expect(maxMessages).to.equal(2 ** maciParameters.messageTreeDepth - 1) - expect(maxVoteOptions).to.equal(5 ** maciParameters.voteOptionTreeDepth - 1) - expect(await maciFactory.signUpDuration()).to.equal( - maciParameters.signUpDuration - ) - expect(await maciFactory.votingDuration()).to.equal( - maciParameters.votingDuration - ) + const { messageTreeDepth } = await maciFactory.treeDepths() + const { maxMessages, maxVoteOptions } = await maciFactory.maxValues() + expect(maxMessages).to.equal(maciParameters.maxMessages) + expect(maxVoteOptions).to.equal(maciParameters.maxVoteOptions) + expect(messageTreeDepth).to.equal(maciParameters.messageTreeDepth) }) it('does not allow to decrease the vote option tree depth', async () => { + await expect( + maciFactory.setMaciParameters(...maciParameters.asContractParam()) + ).to.emit(maciFactory, 'MaciParametersChanged') + maciParameters.voteOptionTreeDepth = 1 await expect( - maciFactory.setMaciParameters(...maciParameters.values()) - ).to.be.revertedWith( - 'MACIFactory: Vote option tree depth can not be decreased' - ) + maciFactory.setMaciParameters(...maciParameters.asContractParam()) + ).to.be.revertedWith('CannotDecreaseVoteOptionDepth') }) it('allows only owner to set MACI parameters', async () => { const coordinatorMaciFactory = maciFactory.connect(coordinator) await expect( - coordinatorMaciFactory.setMaciParameters(...maciParameters.values()) + coordinatorMaciFactory.setMaciParameters( + ...maciParameters.asContractParam() + ) ).to.be.revertedWith('Ownable: caller is not the owner') }) it('deploys MACI', async () => { + const setParamTx = await maciFactory.setMaciParameters( + ...maciParameters.asContractParam() + ) + await setParamTx.wait() const maciDeployed = maciFactory.deployMaci( signUpGatekeeper.address, initialVoiceCreditProxy.address, - coordinator.address, + topupContract.address, + duration, coordinatorPubKey ) await expect(maciDeployed).to.emit(maciFactory, 'MaciDeployed') const deployTx = await maciDeployed - expect(await getGasUsage(deployTx)).lessThan(9020000) + // TODO: reduce the gas usage + expect(await getGasUsage(deployTx)).lessThan(15080973) }) it('allows only owner to deploy MACI', async () => { + const setParamTx = await maciFactory.setMaciParameters( + ...maciParameters.asContractParam() + ) + await setParamTx.wait() const coordinatorMaciFactory = maciFactory.connect(coordinator) await expect( coordinatorMaciFactory.deployMaci( signUpGatekeeper.address, initialVoiceCreditProxy.address, - coordinator.address, + topupContract.address, + duration, coordinatorPubKey ) ).to.be.revertedWith('Ownable: caller is not the owner') }) it('links with PoseidonT3 correctly', async () => { + const setParamTx = await maciFactory.setMaciParameters( + ...maciParameters.asContractParam() + ) + await setParamTx.wait() const deployTx = await maciFactory.deployMaci( signUpGatekeeper.address, initialVoiceCreditProxy.address, coordinator.address, + duration, coordinatorPubKey ) @@ -140,10 +151,15 @@ describe('MACI factory', () => { }) it('links with PoseidonT6 correctly', async () => { + const setParamTx = await maciFactory.setMaciParameters( + ...maciParameters.asContractParam() + ) + await setParamTx.wait() const deployTx = await maciFactory.deployMaci( signUpGatekeeper.address, initialVoiceCreditProxy.address, - coordinator.address, + topupContract.address, + duration, coordinatorPubKey ) From 20f0036751e97e470a6a249ab9e45f90e1076980 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Tue, 19 Sep 2023 17:28:46 -0400 Subject: [PATCH 018/338] fix test cases with custom errors and test with maci v1 --- contracts/tests/round.ts | 423 ++++++++++++++++++++++++--------------- 1 file changed, 257 insertions(+), 166 deletions(-) diff --git a/contracts/tests/round.ts b/contracts/tests/round.ts index 178a2540b..0be62d891 100644 --- a/contracts/tests/round.ts +++ b/contracts/tests/round.ts @@ -18,7 +18,6 @@ import { deployPoseidonLibraries, deployMaciFactory, deployContractWithLinkedLibraries, - CIRCUITS, } from '../utils/deployment' import { bnSqrt, @@ -66,36 +65,38 @@ describe('Funding Round', () => { provider.getWallets() const coordinatorPubKey = new Keypair().pubKey - const signUpDuration = 86400 * 7 // Default duration in MACI factory - const votingDuration = 86400 * 7 // Default duration in MACI factory const userKeypair = new Keypair() const contributionAmount = UNIT.mul(10) const tallyHash = 'test' const tallyTreeDepth = 2 + const pollDuration = 86400 * 7 + const halfPollDuration = Math.floor(pollDuration / 2) + const numSignUps = 4 + const tallyBatchSize = 2 + const tallyBatchNum = 2 let token: Contract let userRegistry: Contract let recipientRegistry: Contract let fundingRound: Contract let maci: Contract + let pollId: bigint + let poll: Contract + let tallyer: Contract async function deployMaciMock(): Promise { const MACIArtifact = await artifacts.readArtifact('MACI') const maci = await deployMockContract(deployer, MACIArtifact.abi) - const currentTime = (await provider.getBlock('latest')).timestamp - const signUpDeadline = currentTime + signUpDuration - const votingDeadline = signUpDeadline + votingDuration - await maci.mock.signUpTimestamp.returns(currentTime) - await maci.mock.signUpDurationSeconds.returns(signUpDuration) - await maci.mock.votingDurationSeconds.returns(votingDuration) - await maci.mock.calcSignUpDeadline.returns(signUpDeadline) - await maci.mock.calcVotingDeadline.returns(votingDeadline) - await maci.mock.maxUsers.returns(100) - await maci.mock.treeDepths.returns(10, 10, 2) await maci.mock.signUp.returns() return maci } + async function deployMockContractByName(name: string): Promise { + const artifact = await artifacts.readArtifact(name) + const contract = await deployMockContract(deployer, artifact.abi) + return contract + } + beforeEach(async () => { const tokenInitialSupply = UNIT.mul(1000000) const Token = await ethers.getContractFactory('AnyOldERC20Token', deployer) @@ -116,7 +117,7 @@ describe('Funding Round', () => { ) const libraries = await deployPoseidonLibraries(deployer) - const fundingRound = await deployContractWithLinkedLibraries( + fundingRound = await deployContractWithLinkedLibraries( deployer, 'FundingRound', libraries, @@ -127,48 +128,36 @@ describe('Funding Round', () => { coordinator.address, ] ) - const VkRegistryArtifact = await artifacts.readArtifact('VkRegistry') - const vkRegistry = await deployMockContract( - deployer, - VkRegistryArtifact.abi - ) - const pollFactory = await deployContractWithLinkedLibraries( - deployer, - 'PollFactory', - libraries - ) - const maciFactory = await deployMaciFactory(deployer) - await vkRegistry.mock.owner.returns(maciFactory.address) + const maciFactory = await deployMaciFactory(deployer, libraries) - const params = CIRCUITS['micro'] - const maciParams = new MaciParameters({ ...params.maxValues }) - const setMaciParamsTx = await maciFactory.setMaciParameters( - ...maciParams.values() - ) + const maciParams = MaciParameters.mock('micro') + await maciFactory.setMaciParameters(...maciParams.asContractParam()) - await setMaciParamsTx.wait() - - const transferTx = await pollFactory.transferOwnership(maciFactory.address) - await transferTx.wait() - - console.log('before deployMaci...') const maciDeployed = await maciFactory.deployMaci( fundingRound.address, fundingRound.address, - vkRegistry.address, - pollFactory.address, - token.address + token.address, + pollDuration, + coordinatorPubKey.asContractParam() ) + const maciAddress = await getEventArg( maciDeployed, maciFactory, 'MaciDeployed', '_maci' ) - console.log('maci', maciAddress) maci = await ethers.getContractAt('MACI', maciAddress) - console.log('maci', maciAddress) + + pollId = await getEventArg(maciDeployed, maci, 'DeployPoll', '_pollId') + const pollAddress = await getEventArg( + maciDeployed, + maci, + 'DeployPoll', + '_pollAddr' + ) + poll = await ethers.getContractAt('Poll', pollAddress) }) it('initializes funding round correctly', async () => { @@ -196,7 +185,7 @@ describe('Funding Round', () => { it('allows to set MACI address only once', async () => { await fundingRound.setMaci(maci.address) await expect(fundingRound.setMaci(maci.address)).to.be.revertedWith( - 'FundingRound: Already linked to MACI instance' + 'MaciAlreadySet' ) }) @@ -231,9 +220,9 @@ describe('Funding Round', () => { .to.emit(fundingRound, 'Contribution') .withArgs(contributor.address, contributionAmount) .to.emit(maci, 'SignUp') - // We use [] to skip argument matching, otherwise it will fail - // Possibly related: https://github.com/EthWorks/Waffle/issues/245 - .withArgs([], 1, expectedVoiceCredits) + // We use [] to skip argument matching, otherwise it will fail + // Possibly related: https://github.com/EthWorks/Waffle/issues/245 + //.withArgs([], 1, expectedVoiceCredits, []) expect(await token.balanceOf(fundingRound.address)).to.equal( contributionAmount ) @@ -251,7 +240,7 @@ describe('Funding Round', () => { await tokenAsContributor.approve(fundingRound.address, contributionAmount) await expect( fundingRoundAsContributor.contribute(userPubKey, contributionAmount) - ).to.be.revertedWith('FundingRound: MACI not deployed') + ).to.be.revertedWith('MaciNotSet') }) it('limits the number of contributors', async () => { @@ -264,7 +253,7 @@ describe('Funding Round', () => { await tokenAsContributor.approve(fundingRound.address, contributionAmount) await expect( fundingRoundAsContributor.contribute(userPubKey, contributionAmount) - ).to.be.revertedWith('FundingRound: Round finalized') + ).to.be.revertedWith('AlreadyFinalized') }) it('rejects contributions with zero amount', async () => { @@ -272,9 +261,7 @@ describe('Funding Round', () => { await tokenAsContributor.approve(fundingRound.address, contributionAmount) await expect( fundingRoundAsContributor.contribute(userPubKey, 0) - ).to.be.revertedWith( - 'FundingRound: Contribution amount must be greater than zero' - ) + ).to.be.revertedWith('ContributionAmountIsZero') }) it('rejects contributions that are too large', async () => { @@ -283,7 +270,7 @@ describe('Funding Round', () => { await tokenAsContributor.approve(fundingRound.address, contributionAmount) await expect( fundingRoundAsContributor.contribute(userPubKey, contributionAmount) - ).to.be.revertedWith('FundingRound: Contribution amount is too large') + ).to.be.revertedWith('ContributionAmountTooLarge') }) it('allows to contribute only once per round', async () => { @@ -295,14 +282,14 @@ describe('Funding Round', () => { await fundingRoundAsContributor.contribute(userPubKey, contributionAmount) await expect( fundingRoundAsContributor.contribute(userPubKey, contributionAmount) - ).to.be.revertedWith('FundingRound: Already contributed') + ).to.be.revertedWith('AlreadyContributed') }) it('requires approval', async () => { await fundingRound.setMaci(maci.address) await expect( fundingRoundAsContributor.contribute(userPubKey, contributionAmount) - ).to.be.revertedWith('ERC20: transfer amount exceeds allowance') + ).to.be.revertedWith('ERC20: insufficient allowance') }) it('rejects contributions from unverified users', async () => { @@ -311,7 +298,7 @@ describe('Funding Round', () => { await userRegistry.mock.isVerifiedUser.returns(false) await expect( fundingRoundAsContributor.contribute(userPubKey, contributionAmount) - ).to.be.revertedWith('FundingRound: User has not been verified') + ).to.be.revertedWith('UserNotVerified') }) it('should not allow users who have not contributed to sign up directly in MACI', async () => { @@ -322,7 +309,7 @@ describe('Funding Round', () => { ) await expect( maci.signUp(userPubKey, signUpData, encodedContributorAddress) - ).to.be.revertedWith('FundingRound: User has not contributed') + ).to.be.revertedWith('UserHasNotContributed') }) it('should not allow users who have already signed up to sign up directly in MACI', async () => { @@ -335,7 +322,7 @@ describe('Funding Round', () => { ) await expect( maci.signUp(userPubKey, signUpData, encodedContributorAddress) - ).to.be.revertedWith('FundingRound: User already registered') + ).to.be.revertedWith('UserAlreadyRegistered') }) it('should not return the amount of voice credits for user who has not contributed', async () => { @@ -344,7 +331,7 @@ describe('Funding Round', () => { fundingRound.address, encodedContributorAddress ) - ).to.be.revertedWith('FundingRound: User does not have any voice credits') + ).to.be.revertedWith('NoVoiceCredits') }) }) @@ -370,7 +357,6 @@ describe('Funding Round', () => { 'SignUp', '_stateIndex' ) - await provider.send('evm_increaseTime', [signUpDuration]) }) it('submits a vote', async () => { @@ -381,13 +367,15 @@ describe('Funding Round', () => { coordinatorPubKey, recipientIndex, singleVote, - nonce + nonce, + pollId ) - const messagePublished = maci.publishMessage( + + const messagePublished = poll.publishMessage( message.asContractParam(), encPubKey.asContractParam() ) - await expect(messagePublished).to.emit(maci, 'PublishMessage') + await expect(messagePublished).to.emit(poll, 'PublishMessage') const publishTx = await messagePublished expect(await getGasUsage(publishTx)).lessThan(2135000) }) @@ -401,15 +389,17 @@ describe('Funding Round', () => { coordinatorPubKey, null, null, - nonce + nonce, + pollId ) - await maci.publishMessage( + const messagePublished = await poll.publishMessage( message.asContractParam(), encPubKey.asContractParam() ) + await expect(messagePublished).to.emit(poll, 'PublishMessage') }) - it('use a seed to generate new key and submit change change message', async () => { + it('use a seed to generate new key and submit change message', async () => { const signature = await contributor.signMessage('hello world') const hash = sha256(signature) const newUserKeypair = Keypair.createFromSeed(hash) @@ -420,12 +410,14 @@ describe('Funding Round', () => { coordinatorPubKey, null, null, - nonce + nonce, + pollId ) - await maci.publishMessage( + const messagePublished = await poll.publishMessage( message.asContractParam(), encPubKey.asContractParam() ) + await expect(messagePublished).to.emit(poll, 'PublishMessage') }) it('submits an invalid vote', async () => { @@ -437,12 +429,14 @@ describe('Funding Round', () => { coordinatorPubKey, null, null, - nonce + nonce, + pollId ) - await maci.publishMessage( + const publishTx1 = await poll.publishMessage( message1.asContractParam(), encPubKey1.asContractParam() ) + await expect(publishTx1).to.emit(poll, 'PublishMessage') const [message2, encPubKey2] = createMessage( userStateIndex, userKeypair, @@ -450,12 +444,14 @@ describe('Funding Round', () => { coordinatorPubKey, recipientIndex, singleVote, - nonce + 1 + nonce + 1, + pollId ) - await maci.publishMessage( + const publishTx2 = await poll.publishMessage( message2.asContractParam(), encPubKey2.asContractParam() ) + await expect(publishTx2).to.emit(poll, 'PublishMessage') }) it('submits a vote for invalid vote option', async () => { @@ -467,15 +463,19 @@ describe('Funding Round', () => { coordinatorPubKey, recipientIndex, singleVote, - nonce + nonce, + pollId ) - await maci.publishMessage( + const messagePublished = await poll.publishMessage( message.asContractParam(), encPubKey.asContractParam() ) + await expect(messagePublished).to.emit(poll, 'PublishMessage') }) it('submits a batch of messages', async () => { + await fundingRound.setPoll(pollId) + const messages = [] const encPubKeys = [] const numMessages = 3 @@ -492,7 +492,8 @@ describe('Funding Round', () => { coordinatorPubKey, recipientIndex, singleVote, - nonce + nonce, + pollId ) messages.push(message.asContractParam()) encPubKeys.push(encPubKey.asContractParam()) @@ -522,7 +523,7 @@ describe('Funding Round', () => { it('allows only coordinator to publish tally hash', async () => { await expect(fundingRound.publishTallyHash(tallyHash)).to.be.revertedWith( - 'FundingRound: Sender is not the coordinator' + 'NotCoordinator' ) }) @@ -530,13 +531,13 @@ describe('Funding Round', () => { await fundingRound.cancel() await expect( fundingRound.connect(coordinator).publishTallyHash(tallyHash) - ).to.be.revertedWith('FundingRound: Round finalized') + ).to.be.revertedWith('RoundAlreadyFinalized') }) it('rejects empty string', async () => { await expect( fundingRound.connect(coordinator).publishTallyHash('') - ).to.be.revertedWith('FundingRound: Tally hash is empty string') + ).to.be.revertedWith('EmptyTallyHash') }) }) @@ -547,16 +548,26 @@ describe('Funding Round', () => { const totalSpentSalt = genRandomSalt().toString() const totalVotes = bnSqrt(totalSpent) const tallyTreeDepth = 2 + expect(totalVotes.toNumber()).to.equal(10000) beforeEach(async () => { maci = await deployMaciMock() - await maci.mock.hasUntalliedStateLeaves.returns(false) - await maci.mock.totalVotes.returns(totalVotes) - await maci.mock.verifySpentVoiceCredits.returns(true) - await maci.mock.verifyTallyResult.returns(true) - await maci.mock.treeDepths.returns(10, 10, tallyTreeDepth) - await maci.mock.verifyPerVOSpentVoiceCredits.returns(true) + poll = await deployMockContractByName('Poll') + tallyer = await deployMockContractByName('PollProcessorAndTallyer') + pollId = BigInt(0) + await poll.mock.verifyTallyResult.returns(true) + await poll.mock.verifySpentVoiceCredits.returns(true) + await maci.mock.getPoll.returns(poll.address) + + // round.isTallied() = tallyBatchSize * tallyBatchNum >= numSignups + await poll.mock.numSignUpsAndMessages.returns(numSignUps, 1) + await poll.mock.batchSizes.returns(1, tallyBatchSize, 1) + await tallyer.mock.tallyBatchNum.returns(tallyBatchNum) + + // round.isVotingOver() + const deployTime = (await provider.getBlock('latest')).timestamp + await poll.mock.getDeployTimeAndDuration.returns(deployTime, pollDuration) await token .connect(contributor) @@ -565,10 +576,13 @@ describe('Funding Round', () => { it('allows owner to finalize round', async () => { await fundingRound.setMaci(maci.address) + await fundingRound.setPoll(pollId) + await fundingRound.connect(coordinator).setTallyer(tallyer.address) + await fundingRound .connect(contributor) .contribute(userKeypair.pubKey.asContractParam(), totalContributions) - await provider.send('evm_increaseTime', [signUpDuration + votingDuration]) + await provider.send('evm_increaseTime', [pollDuration]) await fundingRound.connect(coordinator).publishTallyHash(tallyHash) await token.transfer(fundingRound.address, matchingPoolSize) @@ -582,16 +596,20 @@ describe('Funding Round', () => { expect(await fundingRound.isFinalized()).to.equal(true) expect(await fundingRound.isCancelled()).to.equal(false) expect(await fundingRound.totalSpent()).to.equal(totalSpent) - expect(await fundingRound.totalVotes()).to.equal(totalVotes) + // TODO: how to get totalVotes from maci v1? + //expect(await fundingRound.totalVotes()).to.equal(totalVotes) expect(await fundingRound.matchingPoolSize()).to.equal(matchingPoolSize) }) it('allows owner to finalize round when matching pool is empty', async () => { await fundingRound.setMaci(maci.address) + await fundingRound.setPoll(pollId) + await fundingRound.connect(coordinator).setTallyer(tallyer.address) + await fundingRound .connect(contributor) .contribute(userKeypair.pubKey.asContractParam(), totalContributions) - await provider.send('evm_increaseTime', [signUpDuration + votingDuration]) + await provider.send('evm_increaseTime', [pollDuration]) await fundingRound.connect(coordinator).publishTallyHash(tallyHash) await addTallyResultsBatch( @@ -602,16 +620,20 @@ describe('Funding Round', () => { ) await fundingRound.finalize(totalSpent, totalSpentSalt) expect(await fundingRound.totalSpent()).to.equal(totalSpent) - expect(await fundingRound.totalVotes()).to.equal(totalVotes) + // TODO: how to get totalVotes from maci v1? + //expect(await fundingRound.totalVotes()).to.equal(totalVotes) expect(await fundingRound.matchingPoolSize()).to.equal(0) }) it('counts direct token transfers to funding round as matching pool contributions', async () => { await fundingRound.setMaci(maci.address) + await fundingRound.setPoll(pollId) + await fundingRound.connect(coordinator).setTallyer(tallyer.address) + await fundingRound .connect(contributor) .contribute(userKeypair.pubKey.asContractParam(), totalContributions) - await provider.send('evm_increaseTime', [signUpDuration + votingDuration]) + await provider.send('evm_increaseTime', [pollDuration]) await fundingRound.connect(coordinator).publishTallyHash(tallyHash) await token.transfer(fundingRound.address, matchingPoolSize) await token @@ -632,10 +654,13 @@ describe('Funding Round', () => { it('reverts if round has been finalized already', async () => { await fundingRound.setMaci(maci.address) + await fundingRound.setPoll(pollId) + await fundingRound.connect(coordinator).setTallyer(tallyer.address) + await fundingRound .connect(contributor) .contribute(userKeypair.pubKey.asContractParam(), totalContributions) - await provider.send('evm_increaseTime', [signUpDuration + votingDuration]) + await provider.send('evm_increaseTime', [pollDuration]) await fundingRound.connect(coordinator).publishTallyHash(tallyHash) await token.transfer(fundingRound.address, matchingPoolSize) await addTallyResultsBatch( @@ -648,59 +673,72 @@ describe('Funding Round', () => { await fundingRound.finalize(totalSpent, totalSpentSalt) await expect( fundingRound.finalize(totalSpent, totalSpentSalt) - ).to.be.revertedWith('FundingRound: Already finalized') + ).to.be.revertedWith('RoundAlreadyFinalized') }) it('reverts MACI has not been deployed', async () => { - await provider.send('evm_increaseTime', [signUpDuration + votingDuration]) + await provider.send('evm_increaseTime', [pollDuration]) await expect( fundingRound.finalize(totalSpent, totalSpentSalt) - ).to.be.revertedWith('FundingRound: MACI not deployed') + ).to.be.revertedWith('MaciNotSet') }) it('reverts if voting is still in progress', async () => { await fundingRound.setMaci(maci.address) + await fundingRound.setPoll(pollId) + await fundingRound.connect(coordinator).setTallyer(tallyer.address) + await fundingRound .connect(contributor) .contribute(userKeypair.pubKey.asContractParam(), totalContributions) - await provider.send('evm_increaseTime', [signUpDuration]) + await provider.send('evm_increaseTime', [halfPollDuration]) await expect( fundingRound.finalize(totalSpent, totalSpentSalt) - ).to.be.revertedWith('FundingRound: Voting has not been finished') + ).to.be.revertedWith('VotingIsNotOver') }) it('reverts if votes has not been tallied', async () => { await fundingRound.setMaci(maci.address) + await fundingRound.setPoll(pollId) + await fundingRound.connect(coordinator).setTallyer(tallyer.address) + await fundingRound .connect(contributor) .contribute(userKeypair.pubKey.asContractParam(), totalContributions) - await provider.send('evm_increaseTime', [signUpDuration + votingDuration]) - await maci.mock.hasUntalliedStateLeaves.returns(true) + await provider.send('evm_increaseTime', [pollDuration]) + await poll.mock.numSignUpsAndMessages.returns(numSignUps * 2, 1) await expect( fundingRound.finalize(totalSpent, totalSpentSalt) - ).to.be.revertedWith('FundingRound: Votes has not been tallied') + ).to.be.revertedWith('VotesNotTallied') }) it('reverts if tally hash has not been published', async () => { await fundingRound.setMaci(maci.address) + await fundingRound.setPoll(pollId) + await fundingRound.connect(coordinator).setTallyer(tallyer.address) + await fundingRound .connect(contributor) .contribute(userKeypair.pubKey.asContractParam(), totalContributions) - await provider.send('evm_increaseTime', [signUpDuration + votingDuration]) + await provider.send('evm_increaseTime', [pollDuration]) await expect( fundingRound.finalize(totalSpent, totalSpentSalt) - ).to.be.revertedWith('FundingRound: Tally hash has not been published') + ).to.be.revertedWith('TallyHashNotPublished') }) - it('reverts if total votes is zero', async () => { + // TODO: get total votes in maci v1 + it.skip('reverts if total votes is zero', async () => { await fundingRound.setMaci(maci.address) + await fundingRound.setPoll(pollId) + await fundingRound.connect(coordinator).setTallyer(tallyer.address) + await fundingRound .connect(contributor) .contribute(userKeypair.pubKey.asContractParam(), totalContributions) - await provider.send('evm_increaseTime', [signUpDuration + votingDuration]) + await provider.send('evm_increaseTime', [pollDuration]) await fundingRound.connect(coordinator).publishTallyHash(tallyHash) await token.transfer(fundingRound.address, matchingPoolSize) await maci.mock.totalVotes.returns(0) @@ -718,13 +756,16 @@ describe('Funding Round', () => { it('reverts if total amount of spent voice credits is incorrect', async () => { await fundingRound.setMaci(maci.address) + await fundingRound.setPoll(pollId) + await fundingRound.connect(coordinator).setTallyer(tallyer.address) + await fundingRound .connect(contributor) .contribute(userKeypair.pubKey.asContractParam(), totalContributions) - await provider.send('evm_increaseTime', [signUpDuration + votingDuration]) + await provider.send('evm_increaseTime', [pollDuration]) await fundingRound.connect(coordinator).publishTallyHash(tallyHash) await token.transfer(fundingRound.address, matchingPoolSize) - await maci.mock.verifySpentVoiceCredits.returns(false) + await poll.mock.verifySpentVoiceCredits.returns(false) await addTallyResultsBatch( fundingRound.connect(coordinator), @@ -735,17 +776,18 @@ describe('Funding Round', () => { await expect( fundingRound.finalize(totalSpent, totalSpentSalt) - ).to.be.revertedWith( - 'FundingRound: Incorrect total amount of spent voice credits' - ) + ).to.be.revertedWith('IncorrectSpentVoiceCredits') }) it('allows only owner to finalize round', async () => { await fundingRound.setMaci(maci.address) + await fundingRound.setPoll(pollId) + await fundingRound.connect(coordinator).setTallyer(tallyer.address) + await fundingRound .connect(contributor) .contribute(userKeypair.pubKey.asContractParam(), totalContributions) - await provider.send('evm_increaseTime', [signUpDuration + votingDuration]) + await provider.send('evm_increaseTime', [pollDuration]) await fundingRound.connect(coordinator).publishTallyHash(tallyHash) await token.transfer(fundingRound.address, matchingPoolSize) @@ -768,22 +810,35 @@ describe('Funding Round', () => { const totalContributions = UNIT.mul(1000) const totalSpent = totalContributions.div(VOICE_CREDIT_FACTOR) const totalSpentSalt = genRandomSalt().toString() + maci = await deployMaciMock() + poll = await deployMockContractByName('Poll') + tallyer = await deployMockContractByName('PollProcessorAndTallyer') + pollId = BigInt(0) + await poll.mock.verifyTallyResult.returns(true) + await poll.mock.verifySpentVoiceCredits.returns(true) + await maci.mock.getPoll.returns(poll.address) + + // round.isTallied() = tallyBatchSize * tallyBatchNum >= numSignups + await poll.mock.numSignUpsAndMessages.returns(numSignUps, 1) + await poll.mock.batchSizes.returns(1, tallyBatchSize, 1) + await tallyer.mock.tallyBatchNum.returns(tallyBatchNum) + + // round.isVotingOver() + const deployTime = (await provider.getBlock('latest')).timestamp + await poll.mock.getDeployTimeAndDuration.returns(deployTime, pollDuration) + await fundingRound.setMaci(maci.address) + await fundingRound.setPoll(pollId) + await fundingRound.connect(coordinator).setTallyer(tallyer.address) await token .connect(contributor) .approve(fundingRound.address, totalContributions) await fundingRound .connect(contributor) .contribute(userKeypair.pubKey.asContractParam(), totalContributions) - await provider.send('evm_increaseTime', [signUpDuration + votingDuration]) - await maci.mock.hasUntalliedStateLeaves.returns(false) - await maci.mock.totalVotes.returns(bnSqrt(totalSpent)) - await maci.mock.verifySpentVoiceCredits.returns(true) - await maci.mock.treeDepths.returns(10, 10, tallyTreeDepth) - await maci.mock.verifySpentVoiceCredits.returns(true) - await maci.mock.verifyPerVOSpentVoiceCredits.returns(true) - await maci.mock.verifyTallyResult.returns(true) + await provider.send('evm_increaseTime', [pollDuration]) + //await maci.mock.treeDepths.returns(10, 10, tallyTreeDepth) await fundingRound.connect(coordinator).publishTallyHash(tallyHash) await token.transfer(fundingRound.address, matchingPoolSize) await addTallyResultsBatch( @@ -795,14 +850,14 @@ describe('Funding Round', () => { await fundingRound.finalize(totalSpent, totalSpentSalt) await expect(fundingRound.cancel()).to.be.revertedWith( - 'FundingRound: Already finalized' + 'RoundAlreadyFinalized' ) }) it('reverts if round has been cancelled already', async () => { await fundingRound.cancel() await expect(fundingRound.cancel()).to.be.revertedWith( - 'FundingRound: Already finalized' + 'RoundAlreadyFinalized' ) }) @@ -849,14 +904,14 @@ describe('Funding Round', () => { await fundingRoundAsContributor.contribute(userPubKey, contributionAmount) await expect( fundingRoundAsContributor.withdrawContribution() - ).to.be.revertedWith('FundingRound: Round not cancelled') + ).to.be.revertedWith('RoundNotCancelled') }) it('reverts if user did not contribute to the round', async () => { await fundingRound.cancel() await expect( fundingRoundAsContributor.withdrawContribution() - ).to.be.revertedWith('FundingRound: Nothing to withdraw') + ).to.be.revertedWith('NothingToWithdraw') }) it('reverts if funds are already withdrawn', async () => { @@ -871,7 +926,7 @@ describe('Funding Round', () => { await fundingRound.connect(contributor).withdrawContribution() await expect( fundingRound.connect(contributor).withdrawContribution() - ).to.be.revertedWith('FundingRound: Nothing to withdraw') + ).to.be.revertedWith('NothingToWithdraw') }) it('allows anyone to withdraw multiple contributions', async () => { @@ -913,6 +968,7 @@ describe('Funding Round', () => { describe('claiming funds', () => { const totalVotes = totalQuadraticVotes const recipientIndex = 3 + const { spent: totalSpent, salt: totalSpentSalt } = smallTallyTestData.totalVoiceCredits const contributions = @@ -927,23 +983,34 @@ describe('Funding Round', () => { beforeEach(async () => { maci = await deployMaciMock() - await maci.mock.hasUntalliedStateLeaves.returns(false) - await maci.mock.totalVotes.returns(totalVotes) - await maci.mock.verifySpentVoiceCredits.returns(true) - await maci.mock.verifyTallyResult.returns(true) - await maci.mock.verifyPerVOSpentVoiceCredits.returns(true) - await maci.mock.treeDepths.returns(10, 10, tallyTreeDepth) - + poll = await deployMockContractByName('Poll') + tallyer = await deployMockContractByName('PollProcessorAndTallyer') + pollId = BigInt(0) + await poll.mock.verifyTallyResult.returns(true) + await poll.mock.verifySpentVoiceCredits.returns(true) + await maci.mock.getPoll.returns(poll.address) + + // round.isTallied() = tallyBatchSize * tallyBatchNum >= numSignups + await poll.mock.numSignUpsAndMessages.returns(numSignUps, 1) + await poll.mock.batchSizes.returns(1, tallyBatchSize, 1) + await poll.mock.verifyPerVOSpentVoiceCredits.returns(true) + await tallyer.mock.tallyBatchNum.returns(tallyBatchNum) + + // round.isVotingOver() + const deployTime = (await provider.getBlock('latest')).timestamp + await poll.mock.getDeployTimeAndDuration.returns(deployTime, pollDuration) await recipientRegistry.mock.getRecipientAddress.returns( recipient.address ) await fundingRound.setMaci(maci.address) + await fundingRound.setPoll(pollId) + await fundingRound.connect(coordinator).setTallyer(tallyer.address) const tokenAsContributor = token.connect(contributor) await tokenAsContributor.approve(fundingRound.address, contributions) fundingRoundAsContributor = fundingRound.connect(contributor) - await provider.send('evm_increaseTime', [signUpDuration + votingDuration]) + await provider.send('evm_increaseTime', [pollDuration]) await fundingRound.connect(coordinator).publishTallyHash(tallyHash) fundingRoundAsRecipient = fundingRound.connect(recipient) }) @@ -971,9 +1038,11 @@ describe('Funding Round', () => { tallyTreeDepth, smallTallyTestData ) + await expect(fundingRoundAsRecipient.claimFunds(...claimData)) .to.emit(fundingRound, 'FundsClaimed') .withArgs(recipientIndex, recipient.address, expectedAllocatedAmount) + expect(await token.balanceOf(recipient.address)).to.equal( expectedAllocatedAmount, 'mismatch token balance' @@ -1062,7 +1131,7 @@ describe('Funding Round', () => { ) await expect( fundingRoundAsRecipient.claimFunds(...claimData) - ).to.be.revertedWith('FundingRound: Round not finalized') + ).to.be.revertedWith('RoundNotFinalized') }) it('should not allow recipient to claim funds if round has been cancelled', async () => { @@ -1076,7 +1145,7 @@ describe('Funding Round', () => { ) await expect( fundingRoundAsRecipient.claimFunds(...claimData) - ).to.be.revertedWith('FundingRound: Round has been cancelled') + ).to.be.revertedWith('RoundCancelled') }) it('sends funds allocated to unverified recipients back to matching pool', async () => { @@ -1122,13 +1191,13 @@ describe('Funding Round', () => { await fundingRoundAsRecipient.claimFunds(...claimData) await expect( fundingRoundAsRecipient.claimFunds(...claimData) - ).to.be.revertedWith('FundingRound: Funds already claimed') + ).to.be.revertedWith('FundsAlreadyClaimed') }) it('should verify that tally result is correct', async () => { await token.transfer(fundingRound.address, budget) - await maci.mock.verifyTallyResult.returns(false) + await poll.mock.verifyTallyResult.returns(false) await expect( addTallyResultsBatch( fundingRound.connect(coordinator), @@ -1136,12 +1205,12 @@ describe('Funding Round', () => { smallTallyTestData, 3 ) - ).to.be.revertedWith('FundingRound: Incorrect tally result') + ).to.be.revertedWith('IncorrectTallyResult') }) it('should verify that amount of spent voice credits is correct', async () => { await token.transfer(fundingRound.address, budget) - await maci.mock.verifyPerVOSpentVoiceCredits.returns(false) + await poll.mock.verifyPerVOSpentVoiceCredits.returns(false) await addTallyResultsBatch( fundingRound.connect(coordinator), @@ -1158,9 +1227,7 @@ describe('Funding Round', () => { ) await expect( fundingRoundAsRecipient.claimFunds(...claimData) - ).to.be.revertedWith( - 'FundingRound: Incorrect amount of spent voice credits' - ) + ).to.be.revertedWith('IncorrectSpentVoiceCredits') }) }) @@ -1170,25 +1237,39 @@ describe('Funding Round', () => { const totalVotes = 11382064 beforeEach(async () => { maci = await deployMaciMock() - await maci.mock.hasUntalliedStateLeaves.returns(false) - await maci.mock.totalVotes.returns(totalVotes) - await maci.mock.verifySpentVoiceCredits.returns(true) - await maci.mock.verifyTallyResult.returns(true) - await maci.mock.verifyPerVOSpentVoiceCredits.returns(true) - await maci.mock.treeDepths.returns(10, 10, treeDepth) + poll = await deployMockContractByName('Poll') + tallyer = await deployMockContractByName('PollProcessorAndTallyer') + pollId = BigInt(0) + await poll.mock.verifyTallyResult.returns(true) + await poll.mock.verifySpentVoiceCredits.returns(true) + await maci.mock.getPoll.returns(poll.address) + + // round.isTallied() = tallyBatchSize * tallyBatchNum >= numSignups + await poll.mock.numSignUpsAndMessages.returns(numSignUps, 1) + await poll.mock.batchSizes.returns(1, tallyBatchSize, 1) + await poll.mock.verifyPerVOSpentVoiceCredits.returns(true) + await tallyer.mock.tallyBatchNum.returns(tallyBatchNum) + + // round.isVotingOver() + const deployTime = (await provider.getBlock('latest')).timestamp + await poll.mock.getDeployTimeAndDuration.returns(deployTime, pollDuration) + await recipientRegistry.mock.getRecipientAddress.returns( + recipient.address + ) + await fundingRound.setMaci(maci.address) + await fundingRound.setPoll(pollId) + await fundingRound.connect(coordinator).setTallyer(tallyer.address) await recipientRegistry.mock.getRecipientAddress.returns( recipient.address ) await token.transfer(fundingRound.address, budget) - await fundingRound.setMaci(maci.address) - const fundingRoundAsCoordinator = fundingRound.connect(coordinator) await fundingRoundAsCoordinator.publishTallyHash(tallyHash) - await provider.send('evm_increaseTime', [signUpDuration + votingDuration]) + await provider.send('evm_increaseTime', [pollDuration]) }) it('adds and verifies tally results', async function () { @@ -1246,9 +1327,9 @@ describe('Funding Round', () => { ) }) - it('fails to finalize if all projects only have 1 contributor', async function () { + it('fails to finalize if no project has more than 1 vote', async function () { const tallyTreeDepth = 1 - await maci.mock.treeDepths.returns(10, 10, tallyTreeDepth) + // await maci.mock.treeDepths.returns(10, 10, tallyTreeDepth) const tallyWith1Contributor = { results: { commitment: @@ -1278,7 +1359,7 @@ describe('Funding Round', () => { ) const { spent, salt } = smallTallyTestData.totalVoiceCredits await expect(fundingRound.finalize(spent, salt)).to.be.revertedWith( - 'FundingRound: Total quadratic votes must be greater than total spent voice credits' + 'NoProjectHasMoreThanOneVote' ) }) @@ -1322,8 +1403,18 @@ describe('Funding Round', () => { } }) - it('prevents finalize if tally results not completely received', async function () { + it.skip('prevents finalize if tally results not completely received', async function () { const { spent, salt } = smallTallyTestData.totalVoiceCredits + + // increase the number of signup to simulate incomplete tallying + await poll.mock.numSignUpsAndMessages.returns(numSignUps * 2, 1) + await addTallyResultsBatch( + fundingRound.connect(coordinator), + tallyTreeDepth, + smallTallyTestData, + tallyBatchSize + ) + await expect(fundingRound.finalize(spent, salt)).to.be.revertedWith( 'FundingRound: Incomplete tally results' ) @@ -1338,7 +1429,7 @@ describe('Funding Round', () => { smallTallyTestData, 5 ) - ).to.be.revertedWith('FundingRound: Sender is not the coordinator') + ).to.be.revertedWith('NotCoordinator') }) it('allows only coordinator to add tally results in batches', async function () { @@ -1350,11 +1441,12 @@ describe('Funding Round', () => { smallTallyTestData, 5 ) - ).to.be.revertedWith('FundingRound: Sender is not the coordinator') + ).to.be.revertedWith('NotCoordinator') }) it('prevents adding tally results if maci has not completed tallying', async function () { - await maci.mock.hasUntalliedStateLeaves.returns(true) + // increase the number of signup to simulate incomplete tallying + await poll.mock.numSignUpsAndMessages.returns(numSignUps * 2, 1) await expect( addTallyResultsBatch( @@ -1363,11 +1455,12 @@ describe('Funding Round', () => { smallTallyTestData, 5 ) - ).to.be.revertedWith('FundingRound: Votes have not been tallied') + ).to.be.revertedWith('VotesNotTallied') }) it('prevents adding batches of tally results if maci has not completed tallying', async function () { - await maci.mock.hasUntalliedStateLeaves.returns(true) + // increase the number of signup to simulate incomplete tallying + await poll.mock.numSignUpsAndMessages.returns(numSignUps * 2, 1) await expect( addTallyResultsBatch( @@ -1376,11 +1469,11 @@ describe('Funding Round', () => { smallTallyTestData, 5 ) - ).to.be.revertedWith('FundingRound: Votes have not been tallied') + ).to.be.revertedWith('VotesNotTallied') }) it('prevent adding more tally results if already finalized', async () => { - await maci.mock.treeDepths.returns(10, 10, tallyTreeDepth) + //await maci.mock.treeDepths.returns(10, 10, tallyTreeDepth) await addTallyResultsBatch( fundingRound.connect(coordinator), @@ -1398,7 +1491,7 @@ describe('Funding Round', () => { smallTallyTestData, 5 ) - ).to.be.revertedWith('FundingRound: Already finalized') + ).to.be.revertedWith('RoundAlreadyFinalized') }) it('prevents adding tally results that were already verified', async function () { @@ -1415,7 +1508,7 @@ describe('Funding Round', () => { smallTallyTestData, 5 ) - ).to.revertedWith('FundingRound: Vote results already verified') + ).to.revertedWith('VoteResultsAlreadyVerified') }) it('returns correct proccessed count in the callback for processing tally results', async () => { @@ -1457,7 +1550,7 @@ describe('Funding Round', () => { smallTallyTestData, batchSize ) - expect(data).to.have.lengthOf(5) + expect(data).to.have.lengthOf(7) expect(data[1]).to.have.lengthOf(5) }) } @@ -1468,7 +1561,7 @@ describe('Funding Round', () => { smallTallyTestData, batchSize ) - expect(data).to.have.lengthOf(5) + expect(data).to.have.lengthOf(7) expect(data[1]).to.have.lengthOf(1) }) it(`should fail with startIndex ${total}`, () => { @@ -1491,18 +1584,16 @@ describe('Funding Round', () => { const totalSpent = 100 await expect( fundingRound.calcAlpha(totalBudget, totalVotesSquares, totalSpent) - ).to.be.revertedWith('FundingRound: Invalid budget') + ).to.be.revertedWith('InvalidBudget') }) - it('fails alpha calculation if total votes square less than total spent', async function () { + it('fails alpha calculation if no project has more than 1 vote', async function () { const totalBudget = ethers.utils.parseEther('200') const totalVotesSquares = 88 const totalSpent = 100 await expect( fundingRound.calcAlpha(totalBudget, totalVotesSquares, totalSpent) - ).to.be.revertedWith( - 'FundingRound: Total quadratic votes must be greater than total spent voice credits' - ) + ).to.be.revertedWith('NoProjectHasMoreThanOneVote') }) }) }) From 39e19dd78dfdf6ffe06f048a05aab6a7196701e1 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Tue, 19 Sep 2023 17:31:34 -0400 Subject: [PATCH 019/338] maci v1 changes --- contracts/utils/deployment.ts | 33 +++++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/contracts/utils/deployment.ts b/contracts/utils/deployment.ts index 068d1a251..51df8a3d5 100644 --- a/contracts/utils/deployment.ts +++ b/contracts/utils/deployment.ts @@ -74,8 +74,9 @@ export const CIRCUITS: { [name: string]: any } = { stateTreeDepth: 10, messageTreeDepth: 2, // TODO: confirm if messageBatchTreeDepth is the same as _messageTreeSubDepth in TreeDepths. + // see https://github.com/clrfund/maci-v1/blob/b5ea1ed4a10c14dc133f8d61e886120cda240003/cli/ts/deployPoll.ts#L153 // TODO: is messageBatchTreeDepth == intStateTreeDepth?? - messageBatchTreeDepth: 1, + messageTreeSubDepth: 1, voteOptionTreeDepth: 2, // TODO: confirm if intStateTreeDepth is the 2nd param in tallyVotes.circom intStateTreeDepth: 1, @@ -102,7 +103,7 @@ export const CIRCUITS: { [name: string]: any } = { treeDepths: { stateTreeDepth: 7, messageTreeDepth: 9, - messageBatchTreeDepth: 3, + messageTreeSubDepth: 3, voteOptionTreeDepth: 4, intStateTreeDepth: 3, }, @@ -207,17 +208,37 @@ export async function deployVkRegistry( return vkRegistry } -export async function deployMaciFactory(account: Signer): Promise { - const libraries = await deployPoseidonLibraries(account) +export async function deployMaciFactory( + account: Signer, + poseidonContracts: { [name: string]: string } +): Promise { + const pollFactoryCreator = await deployContractWithLinkedLibraries( + account, + 'PollFactoryCreator', + { ...poseidonContracts } + ) + const messageAqFactoryCreator = await deployContractWithLinkedLibraries( + account, + 'MessageAqFactoryCreator', + { ...poseidonContracts } + ) + const vkRegistry = await deployContract(account, 'VkRegistry') const MACIFactory = await ethers.getContractFactory('MACIFactory', { signer: account, - libraries, + libraries: { + ...poseidonContracts, + PollFactoryCreator: pollFactoryCreator.address, + MessageAqFactoryCreator: messageAqFactoryCreator.address, + }, }) - const maciFactory = await MACIFactory.deploy() + const maciFactory = await MACIFactory.deploy(vkRegistry.address) await maciFactory.deployTransaction.wait() + const transferTx = await vkRegistry.transferOwnership(maciFactory.address) + await transferTx.wait() + return maciFactory } From c3dbd0fff09d22ead626cc763e8533628577bddc Mon Sep 17 00:00:00 2001 From: yuetloo Date: Tue, 19 Sep 2023 17:33:17 -0400 Subject: [PATCH 020/338] maci v1 changes and temporary changes to make test cases pass --- contracts/utils/maci.ts | 150 ++++++++++++++++++++++++++++++---------- 1 file changed, 112 insertions(+), 38 deletions(-) diff --git a/contracts/utils/maci.ts b/contracts/utils/maci.ts index 6642e51ca..d3099a45f 100644 --- a/contracts/utils/maci.ts +++ b/contracts/utils/maci.ts @@ -8,60 +8,131 @@ import { LEAVES_PER_NODE, } from '@clrfund/common' +import { VerifyingKey } from 'maci-domainobjs' +import { CIRCUITS } from './deployment' + export class MaciParameters { - stateTreeDepth = 32 - messageTreeDepth = 32 - voteOptionTreeDepth = 3 - tallyBatchSize = 8 - messageBatchSize = 8 - batchUstVerifier!: string - qvtVerifier!: string - signUpDuration = 7 * 86400 - votingDuration = 7 * 86400 + stateTreeDepth: number + intStateTreeDepth: number + messageTreeSubDepth: number + messageTreeDepth: number + voteOptionTreeDepth: number + maxMessages: number + maxVoteOptions: number + messageBatchSize: number + processVk: VerifyingKey + tallyVk: VerifyingKey constructor(parameters: { [name: string]: any } = {}) { - this.update(parameters) - } - - update(parameters: { [name: string]: any }) { - for (const [name, value] of Object.entries(parameters)) { - ;(this as any)[name] = value - } + this.stateTreeDepth = parameters.stateTreeDepth + this.intStateTreeDepth = parameters.intStateTreeDepth + this.messageTreeSubDepth = parameters.messageTreeSubDepth + this.messageTreeDepth = parameters.messageTreeDepth + this.voteOptionTreeDepth = parameters.voteOptionTreeDepth + this.maxMessages = parameters.maxMessages + this.maxVoteOptions = parameters.maxVoteOptions + this.messageBatchSize = parameters.messageBatchSize + this.processVk = parameters.processVk + this.tallyVk = parameters.tallyVk } - values(): any[] { - // To be passed to setMaciParameters() + asContractParam(): any[] { return [ this.stateTreeDepth, - this.messageTreeDepth, - this.voteOptionTreeDepth, - this.tallyBatchSize, + { + intStateTreeDepth: this.intStateTreeDepth, + messageTreeSubDepth: this.messageTreeSubDepth, + messageTreeDepth: this.messageTreeDepth, + voteOptionTreeDepth: this.voteOptionTreeDepth, + }, + { maxMessages: this.maxMessages, maxVoteOptions: this.maxVoteOptions }, this.messageBatchSize, - this.batchUstVerifier, - this.qvtVerifier, - this.signUpDuration, - this.votingDuration, + this.processVk.asContractParam(), + this.tallyVk.asContractParam(), ] } - static async read(maciFactory: Contract): Promise { - const { stateTreeDepth, messageTreeDepth, voteOptionTreeDepth } = - await maciFactory.treeDepths() - const { tallyBatchSize, messageBatchSize } = await maciFactory.batchSizes() - const batchUstVerifier = await maciFactory.batchUstVerifier() - const qvtVerifier = await maciFactory.qvtVerifier() - const signUpDuration = (await maciFactory.signUpDuration()).toNumber() - const votingDuration = (await maciFactory.votingDuration()).toNumber() + static fromConfig(config: { [name: string]: any }): MaciParameters { + const processVk: VerifyingKey = VerifyingKey.fromObj(config.processVkObj) + const tallyVk: VerifyingKey = VerifyingKey.fromObj(config.tallyVkObj) + return new MaciParameters({ + stateTreeDepth: config.stateTreeDepth, + intStateTreeDepth: config.intStateTreeDepth, + messageTreeSubDepth: config.messageTreeSubDepth, + messageTreeDepth: config.messageTreeDepth, + voteOptionTreeDepth: config.voteOptionTreeDepth, + maxMessages: config.maxMessages, + maxVoteOptions: config.maxVoteOptions, + messageBatchSize: config.messageBatchSize, + processVk, + tallyVk, + }) + } + + static async fromContract(maciFactory: Contract): Promise { + const stateTreeDepth = await maciFactory.stateTreeDepth() + const { + intStateTreeDepth, + messageTreeSubDepth, + messageTreeDepth, + voteOptionTreeDepth, + } = await maciFactory.treeDepths() + const { maxMessages, maxVoteOptions } = await maciFactory.maxValues() + const messageBatchSize = await maciFactory.messageBatchSize() + const vkRegistry = await maciFactory.vkRegistry() + + const processVk = await vkRegistry.getProcessVk( stateTreeDepth, messageTreeDepth, voteOptionTreeDepth, - tallyBatchSize, + messageBatchSize + ) + + const tallyVk = await vkRegistry.getTallyVk( + stateTreeDepth, + intStateTreeDepth, + voteOptionTreeDepth + ) + + return new MaciParameters({ + stateTreeDepth, + intStateTreeDepth, + messageTreeSubDepth, + messageTreeDepth, + voteOptionTreeDepth, + maxMessages, + maxVoteOptions, messageBatchSize, - batchUstVerifier, - qvtVerifier, - signUpDuration, - votingDuration, + processVk: VerifyingKey.fromContract(processVk), + tallyVk: VerifyingKey.fromContract(tallyVk), + }) + } + + static mock(circuit: string): MaciParameters { + const processVk = VerifyingKey.fromObj({ + vk_alpha_1: [1, 2], + vk_beta_2: [ + [1, 2], + [1, 2], + ], + vk_gamma_2: [ + [1, 2], + [1, 2], + ], + vk_delta_2: [ + [1, 2], + [1, 2], + ], + IC: [[1, 2]], + }) + const params = CIRCUITS[circuit] + return new MaciParameters({ + ...params.maxValues, + ...params.treeDepths, + ...params.batchSizes, + processVk, + tallyVk: processVk.copy(), }) } } @@ -121,6 +192,9 @@ export function getRecipientTallyResultsBatch( tallyData.map((item) => item[1]), tallyData.map((item) => item[2]), tallyData.map((item) => item[3]), + // TODO: fix this after getting the result of tally + tallyData.map(() => 0), + tallyData.map(() => 0), resultSalt, ] } From bbb6374985ff4c4547163c944db0681f11e18e6c Mon Sep 17 00:00:00 2001 From: yuetloo Date: Wed, 20 Sep 2023 13:22:05 -0400 Subject: [PATCH 021/338] download the zk tar file --- .github/scripts/download-zkeys-micro.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/scripts/download-zkeys-micro.sh b/.github/scripts/download-zkeys-micro.sh index b6192cd7e..150e420de 100755 --- a/.github/scripts/download-zkeys-micro.sh +++ b/.github/scripts/download-zkeys-micro.sh @@ -1,7 +1,7 @@ #!/bin/bash set -e -PKGS="ProcessMessages_10-2-1-2_test.0.zkey TallyVotes_10-1-2_test.0.zkey" +PKGS="zkeys_10-2-1-2_glibc-211.tar.gz ProcessMessages_10-2-1-2_test.0.zkey TallyVotes_10-1-2_test.0.zkey" mkdir -p params cd params @@ -13,5 +13,10 @@ do url="$BASE_URL/$p" echo "downloading $url" curl $url -o $p + extension="${filename##*.}" + if [ "$extension" == "gz" ] + do + tar -xvf $p + fi done From 1a4101d8ce416d66ae9c8c52b3c010e62aeea840 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Wed, 20 Sep 2023 13:23:08 -0400 Subject: [PATCH 022/338] pass the zk directory with env. variable --- .github/workflows/test-e2e.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test-e2e.yml b/.github/workflows/test-e2e.yml index 3487c98bf..3c87916e5 100644 --- a/.github/workflows/test-e2e.yml +++ b/.github/workflows/test-e2e.yml @@ -39,7 +39,7 @@ jobs: uses: actions/checkout@v3 with: path: monorepo - - name: Download batch 64 zk circuit params + - name: Download batch micro zk circuit params run: | $GITHUB_WORKSPACE/monorepo/.github/scripts/download-zkeys-micro.sh - name: Build Clrfund @@ -53,7 +53,7 @@ jobs: - name: Run tests run: | export CIRCUIT_TYPE=micro - export NODE_CONFIG=$(node -e "const snarkParamsPath=process.env.GITHUB_WORKSPACE + '/params'; console.log(JSON.stringify({ snarkParamsPath }));") + export CIRCUIT_DIRECTORY==$GITHUB_WORKSPAC + '/params' echo $NODE_CONFIG cd monorepo yarn test:e2e From 7846e6a4e51298f65dfc12b7918b6b12d982db86 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Wed, 20 Sep 2023 13:23:27 -0400 Subject: [PATCH 023/338] add comment --- contracts/contracts/FundingRound.sol | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/contracts/contracts/FundingRound.sol b/contracts/contracts/FundingRound.sol index 45fffdf9d..7651750d4 100644 --- a/contracts/contracts/FundingRound.sol +++ b/contracts/contracts/FundingRound.sol @@ -623,7 +623,10 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom * @param _voteOptionIndices Vote option index. * @param _tallyResults The results of vote tally for the recipients. * @param _tallyResultProofs Proofs of correctness of the vote tally results. - */ + * @param _spentVoiceCreditsHash hashLeftRight(number of spent voice credits, spent salt) + * @param _perVOSpentVoiceCreditsHash hashLeftRight(merkle root of the no spent voice credits per vote option, perVOSpentVoiceCredits salt) + * @param _tallyCommitment newTallyCommitment field in the tally.json + */ function addTallyResultsBatch( uint8 _voteOptionTreeDepth, uint256[] calldata _voteOptionIndices, From aad795772d9faa7f4d58857a478a4e8a3455290c Mon Sep 17 00:00:00 2001 From: yuetloo Date: Wed, 20 Sep 2023 13:23:56 -0400 Subject: [PATCH 024/338] use maci v1 --- contracts/e2e/index.ts | 95 +++++++++++++++++++++++------------------- 1 file changed, 52 insertions(+), 43 deletions(-) diff --git a/contracts/e2e/index.ts b/contracts/e2e/index.ts index 319a8748a..e3d40cdf1 100644 --- a/contracts/e2e/index.ts +++ b/contracts/e2e/index.ts @@ -10,17 +10,19 @@ import { getEventArg } from '../utils/contracts' import { deployVkRegistry, deployMaciFactory, - CIRCUITS, - getZkeyFilePath, + deployPollProcessorAndTallyer, genProofs, proveOnChain, + deployPoseidonLibraries, } from '../utils/deployment' import { getIpfsHash } from '../utils/ipfs' import { MaciParameters, addTallyResultsBatch, getRecipientClaimData, + getCircuitFiles, } from '../utils/maci' +import { readFileSync } from 'fs' use(solidity) @@ -28,6 +30,19 @@ const ZERO = BigNumber.from(0) const roundDuration = 7 * 86400 +// MACI zkFiles +const circuit = process.env.CIRCUIT_TYPE || 'micro' +const params = MaciParameters.fromConfig(circuit) +const circuitDirectory = process.env.CIRCUIT_DIRECTORY || '~/params' +const { processZkFile, tallyZkFile, processWitness, tallyWitness } = + getCircuitFiles(circuitDirectory, circuit) +let maciTransactionHash: string + +const timeMs = new Date().getTime() +const tallyFile = `tally.json` +const maciStateFile = `macistate_${timeMs}` +const outputDir = '.' + describe('End-to-end Tests', function () { this.timeout(60 * 60 * 1000) this.bail(true) @@ -50,8 +65,6 @@ describe('End-to-end Tests', function () { let fundingRound: Contract let maci: Contract let pollId: bigint - - let maciParameters: MaciParameters let coordinatorKeypair: Keypair beforeEach(async () => { @@ -73,21 +86,10 @@ describe('End-to-end Tests', function () { }) // Deploy funding round factory - const circuit = process.env.CIRCUIT_TYPE || 'micro' - const params = CIRCUITS[circuit] - - const processMessagesZkey = getZkeyFilePath(params.processMessagesZkey) - const tallyVotesZkey = getZkeyFilePath(params.tallyVotesZkey) - - const maciFactory = await deployMaciFactory(deployer) + const poseidonLibraries = await deployPoseidonLibraries(deployer) + const maciFactory = await deployMaciFactory(deployer, poseidonLibraries) const setMaciTx = await maciFactory.setMaciParameters( - params.treeDepths.stateTreeDepth, - params.treeDepths.messageBatchTreeDepth, - params.treeDepths.messageTreeDepth, - params.treeDepths.voteOptionTreeDepth, - params.treeDepths.intStateTreeDepth, - processMessagesZkey, - tallyVotesZkey + ...params.asContractParam() ) await setMaciTx.wait() @@ -176,8 +178,8 @@ describe('End-to-end Tests', function () { const vkReigstry = await deployVkRegistry( deployer, - processMessagesZkey, - tallyVotesZkey, + processZkFile, + tallyZkFile, maciFactory.address, circuit ) @@ -187,6 +189,7 @@ describe('End-to-end Tests', function () { roundDuration, vkReigstry.address ) + maciTransactionHash = newRoundTx.hash const fundingRoundAddress = await fundingRoundFactory.getCurrentRound() fundingRound = await ethers.getContractAt( 'FundingRound', @@ -249,32 +252,44 @@ describe('End-to-end Tests', function () { return contributions } - function makeMaciFilename(): string { - return `macistate_${utils.hexlify(utils.randomBytes(10))}` - } async function finalizeRound(): Promise { const providerUrl = (provider as any)._hardhatNetwork.config.url // Process messages and tally votes - const results = await genProofs({ + const genProofResult = await genProofs({ contract: maci.address, eth_provider: providerUrl, + 'poll-id': pollId.toString(), + 'tally-file': tallyFile, + rapidsnark: '', + 'process-witnessgen': processWitness, + 'tally-witnessgen': tallyWitness, + 'process-zkey': processZkFile, + 'tally-zkey': tallyZkFile, + 'transaction-hash': maciTransactionHash, + output: outputDir, privkey: coordinatorKeypair.privKey.serialize(), - macistate: makeMaciFilename(), + macistate: maciStateFile, }) - if (!results) { + if (genProofResult !== 0) { throw new Error('generation of proofs failed') } - const { proofs, tally } = results + + // deploy pollProcessorAndTallyer + const ppt = await deployPollProcessorAndTallyer(coordinator, fundingRound) // Submit proofs to MACI contract await proveOnChain({ contract: maci.address, + poll_id: pollId, + ppt: ppt.address, eth_privkey: coordinator.privateKey, eth_provider: providerUrl, privkey: coordinatorKeypair.privKey.serialize(), - proof_file: proofs, + proof_dir: outputDir, }) + + const tally = JSON.parse(readFileSync(tallyFile).toString()) const tallyHash = await getIpfsHash(tally) await fundingRound.connect(coordinator).publishTallyHash(tallyHash) @@ -290,8 +305,8 @@ describe('End-to-end Tests', function () { // Finalize round await fundingRoundFactory.transferMatchingFunds( - tally.totalVoiceCredits.spent, - tally.totalVoiceCredits.salt + tally.totalSpentVoiceCredits.spent, + tally.totalSpentVoiceCredits.salt ) // Claim funds @@ -370,8 +385,7 @@ describe('End-to-end Tests', function () { ) } - await provider.send('evm_increaseTime', [maciParameters.signUpDuration]) - await provider.send('evm_increaseTime', [maciParameters.votingDuration]) + await provider.send('evm_increaseTime', [roundDuration]) const { tally, claims } = await finalizeRound() expect(tally.totalVoiceCredits.spent).to.equal('160000') expect(claims[1]).to.equal(UNIT.mul(58).div(10)) @@ -413,8 +427,7 @@ describe('End-to-end Tests', function () { ) } - await provider.send('evm_increaseTime', [maciParameters.signUpDuration]) - await provider.send('evm_increaseTime', [maciParameters.votingDuration]) + await provider.send('evm_increaseTime', [roundDuration]) const { tally, claims } = await finalizeRound() expect(tally.totalVoiceCredits.spent).to.equal('79524') expect(claims[1].toString()).to.equal('5799999999999999999') @@ -471,8 +484,7 @@ describe('End-to-end Tests', function () { [encPubKey.asContractParam()] ) - await provider.send('evm_increaseTime', [maciParameters.signUpDuration]) - await provider.send('evm_increaseTime', [maciParameters.votingDuration]) + await provider.send('evm_increaseTime', [roundDuration]) const { tally, claims } = await finalizeRound() expect(tally.totalVoiceCredits.spent).to.equal('120000') expect(tally.results.tally[1]).to.equal('200') @@ -534,8 +546,7 @@ describe('End-to-end Tests', function () { [encPubKey.asContractParam()] ) - await provider.send('evm_increaseTime', [maciParameters.signUpDuration]) - await provider.send('evm_increaseTime', [maciParameters.votingDuration]) + await provider.send('evm_increaseTime', [roundDuration]) const { tally, claims } = await finalizeRound() expect(tally.totalVoiceCredits.spent).to.equal('80000') expect(tally.results.tally[1]).to.equal('0') @@ -605,8 +616,7 @@ describe('End-to-end Tests', function () { [encPubKey.asContractParam()] ) - await provider.send('evm_increaseTime', [maciParameters.signUpDuration]) - await provider.send('evm_increaseTime', [maciParameters.votingDuration]) + await provider.send('evm_increaseTime', [roundDuration]) const { tally, claims } = await finalizeRound() expect(tally.totalVoiceCredits.spent).to.equal('120000') expect(tally.results.tally[1]).to.equal('200') @@ -658,8 +668,7 @@ describe('End-to-end Tests', function () { encPubKeyBatch1.reverse().map((key) => key.asContractParam()) ) - // Wait for signup period to end to override votes - await provider.send('evm_increaseTime', [maciParameters.signUpDuration]) + // override votes const messageBatch2: Message[] = [] const encPubKeyBatch2: PubKey[] = [] // Change key @@ -725,7 +734,7 @@ describe('End-to-end Tests', function () { [encPubKey.asContractParam()] ) - await provider.send('evm_increaseTime', [maciParameters.votingDuration]) + await provider.send('evm_increaseTime', [roundDuration]) const { tally, claims } = await finalizeRound() expect(tally.totalVoiceCredits.spent).to.equal('80000') expect(claims[1]).to.equal(BigNumber.from(0)) From 989419827b4ef36e2dc0a2a754ffb42aaf4bf312 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Wed, 20 Sep 2023 13:24:32 -0400 Subject: [PATCH 025/338] add deployPpt --- contracts/utils/deployment.ts | 37 ++++++++++++++++++++--------------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/contracts/utils/deployment.ts b/contracts/utils/deployment.ts index 51df8a3d5..01a1d824b 100644 --- a/contracts/utils/deployment.ts +++ b/contracts/utils/deployment.ts @@ -180,6 +180,27 @@ export async function deployContract( return await contract.deployed() } +/** + * Deploy and set the PollProcessorAndTallyer in the funding round + * @param coordinator The coordinator who can set the set the tallyer in the funding round + * @param fundingRound The funding round contract + * @returns + */ +export async function deployPollProcessorAndTallyer( + coordinator: Signer, + fundingRound: Contract +): Promise { + const verifier = await deployContract(coordinator, 'Verifier') + const ppt = await deployContract(coordinator, 'PollProcessorAndTallyer', [ + verifier.address, + ]) + const setPptTx = await fundingRound + .connect(coordinator) + .setTallyer(ppt.address) + await setPptTx.wait() + return ppt +} + export async function deployVkRegistry( account: Signer, processVkPath: string, @@ -280,22 +301,6 @@ export async function deployUserRegistry( return userRegistry } -/** - * Get the zkey file path - * @param name zkey file name - * @returns zkey file path - */ -export function getZkeyFilePath(name: string): string { - const config = JSON.parse(process.env.NODE_CONFIG || '') - if (!config?.snarkParamsPath) { - throw new Error( - 'Please set the env. variable NODE_CONFIG={"snarkParamsPath": "path-to-zkey-file"}' - ) - } - - return path.join(config.snarkParamsPath, name) -} - /** * Deploy all the poseidon contracts * From 0e82f04a07d5e6fa9fb2a153c198f188739250e5 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Wed, 20 Sep 2023 13:26:08 -0400 Subject: [PATCH 026/338] fix verifyTallyResults to work with maci v1 --- contracts/utils/maci.ts | 54 +++++++++++++++++++++++++++++++++-------- 1 file changed, 44 insertions(+), 10 deletions(-) diff --git a/contracts/utils/maci.ts b/contracts/utils/maci.ts index d3099a45f..f094e8286 100644 --- a/contracts/utils/maci.ts +++ b/contracts/utils/maci.ts @@ -8,8 +8,32 @@ import { LEAVES_PER_NODE, } from '@clrfund/common' +import { genTallyResultCommitment } from 'maci-core' +import { extractVk, hash2 } from 'maci-circuits' import { VerifyingKey } from 'maci-domainobjs' import { CIRCUITS } from './deployment' +import path from 'path' + +export interface ZkFiles { + processZkFile: string + processWitness: string + tallyZkFile: string + tallyWitness: string +} +/** + * Get the zkey file path + * @param name zkey file name + * @returns zkey file path + */ +export function getCircuitFiles(circuit: string, directory: string): ZkFiles { + const params = CIRCUITS[circuit] + return { + processZkFile: path.join(directory, params.processMessagesZkey), + processWitness: path.join(directory, params.processWitness), + tallyZkFile: path.join(directory, params.tallyVotesZkey), + tallyWitness: path.join(directory, params.tallyWitness), + } +} export class MaciParameters { stateTreeDepth: number @@ -52,9 +76,12 @@ export class MaciParameters { ] } - static fromConfig(config: { [name: string]: any }): MaciParameters { - const processVk: VerifyingKey = VerifyingKey.fromObj(config.processVkObj) - const tallyVk: VerifyingKey = VerifyingKey.fromObj(config.tallyVkObj) + static fromConfig(circuit: string): MaciParameters { + const config = CIRCUITS[circuit] + const pmZkeyFile = getZkeyFilePath(config.processMessagesZkey) + const tvZkeyFile = getZkeyFilePath(config.tallyVotesZkey) + const processVk: VerifyingKey = VerifyingKey.fromObj(extractVk(pmZkeyFile)) + const tallyVk: VerifyingKey = VerifyingKey.fromObj(extractVk(tvZkeyFile)) return new MaciParameters({ stateTreeDepth: config.stateTreeDepth, @@ -144,7 +171,6 @@ export function getRecipientTallyResult( ): any[] { // Create proof for tally result const result = tally.results.tally[recipientIndex] - const resultSalt = tally.results.salt const resultTree = new IncrementalQuinTree( recipientTreeDepth, BigInt(0), @@ -155,13 +181,23 @@ export function getRecipientTallyResult( resultTree.insert(leaf) } const resultProof = resultTree.genMerklePath(recipientIndex) + const spentVoiceCreditsHash = hash2([ + BigInt(tally.totalSpentVoiceCredits.spent), + BigInt(tally.totalSpentVoiceCredits.salt), + ]) + const perVOSpentVoiceCreditsHash = genTallyResultCommitment( + tally.perVOSpentVoiceCredits.tally.map((x) => BigInt(x)), + tally.perVOSpentVoiceCredits.salt, + recipientTreeDepth + ) return [ recipientTreeDepth, recipientIndex, result, resultProof.pathElements.map((x) => x.map((y) => y.toString())), - resultSalt, + spentVoiceCreditsHash, + perVOSpentVoiceCreditsHash, ] } @@ -185,17 +221,15 @@ export function getRecipientTallyResultsBatch( tallyData.push(getRecipientTallyResult(i, recipientTreeDepth, tally)) } - // the salt is the same for all tally results - const resultSalt = tallyData[0][4] return [ recipientTreeDepth, tallyData.map((item) => item[1]), tallyData.map((item) => item[2]), tallyData.map((item) => item[3]), // TODO: fix this after getting the result of tally - tallyData.map(() => 0), - tallyData.map(() => 0), - resultSalt, + tallyData.map((item) => item[4]), + tallyData.map((item) => item[5]), + tally.newTallyCommitment, ] } From e804febd43271049f9b23fa1127b3d7e0681aef5 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Wed, 20 Sep 2023 13:43:34 -0400 Subject: [PATCH 027/338] add hash2 from maci-crypto --- common/src/utils.ts | 5 +- contracts/contracts/ClrFund.sol | 71 +++++++++++++------------ contracts/contracts/ClrFundDeployer.sol | 2 +- contracts/package.json | 2 + contracts/utils/maci.ts | 17 +++--- yarn.lock | 12 +++-- 6 files changed, 60 insertions(+), 49 deletions(-) diff --git a/common/src/utils.ts b/common/src/utils.ts index d2c62db1a..e7d28f028 100644 --- a/common/src/utils.ts +++ b/common/src/utils.ts @@ -1,5 +1,5 @@ import { BigNumber } from 'ethers' -import { genRandomSalt, IncrementalQuinTree, hash5 } from 'maci-crypto' +import { genRandomSalt, IncrementalQuinTree, hash5, hash2 } from 'maci-crypto' import { PubKey, PCommand, Message } from 'maci-domainobjs' import { Keypair } from './keypair' import { utils } from 'ethers' @@ -94,7 +94,7 @@ export function getRecipientClaimData( return [ recipientIndex, spent, - spentProof.pathElements.map((x) => x.map((y) => y.toString())), + spentProof.pathElements.map(x => x.map(y => y.toString())), spentSalt, ] } @@ -115,5 +115,6 @@ export { PCommand as Command, IncrementalQuinTree, hash5, + hash2, LEAVES_PER_NODE, } diff --git a/contracts/contracts/ClrFund.sol b/contracts/contracts/ClrFund.sol index 4b99f2c8c..3670519ee 100644 --- a/contracts/contracts/ClrFund.sol +++ b/contracts/contracts/ClrFund.sol @@ -9,14 +9,15 @@ import '@openzeppelin/contracts/utils/structs/EnumerableSet.sol'; import {SignUpGatekeeper} from "maci-contracts/contracts/gatekeepers/SignUpGatekeeper.sol"; import {InitialVoiceCreditProxy} from "maci-contracts/contracts/initialVoiceCreditProxy/InitialVoiceCreditProxy.sol"; import {PollFactory} from 'maci-contracts/contracts/Poll.sol'; +import {Params} from 'maci-contracts/contracts/Params.sol'; +import './MACIFactory.sol'; import './userRegistry/IUserRegistry.sol'; import './recipientRegistry/IRecipientRegistry.sol'; -import './MACIFactory.sol'; -import './FundingRound.sol'; +import {FundingRound} from './FundingRound.sol'; import './OwnableUpgradeable.sol'; -contract ClrFund is OwnableUpgradeable, IPubKey, SnarkCommon { +contract ClrFund is OwnableUpgradeable, IPubKey, SnarkCommon, Params { using EnumerableSet for EnumerableSet.AddressSet; using SafeERC20 for ERC20; @@ -86,6 +87,17 @@ contract ClrFund is OwnableUpgradeable, IPubKey, SnarkCommon { recipientRegistry.setMaxRecipients(maxVoteOptions); } + /** + * @dev Set the Verifying Keys Registry + * @param _vkRegistry Address of the registry + */ + function setVkRegistry(VkRegistry _vkRegistry) + external + onlyOwner + { + maciFactory.setVkRegistry(_vkRegistry); + } + /** * @dev Add matching funds source. * @param _source Address of a funding source. @@ -116,6 +128,20 @@ contract ClrFund is OwnableUpgradeable, IPubKey, SnarkCommon { emit FundingSourceRemoved(_source); } + function setMaciParameters( + uint8 stateTreeDepth, + TreeDepths calldata treeDepths, + MaxValues calldata maxValues, + uint256 messageBatchSize, + VerifyingKey calldata processVk, + VerifyingKey calldata tallyVk + ) + external + onlyCoordinator + { + maciFactory.setMaciParameters(stateTreeDepth, treeDepths, maxValues, messageBatchSize, processVk, tallyVk); + } + function getCurrentRound() public view @@ -127,40 +153,13 @@ contract ClrFund is OwnableUpgradeable, IPubKey, SnarkCommon { return rounds[rounds.length - 1]; } - function setMaciParameters( - uint8 stateTreeDepth, - uint8 intStateTreeDepth, - uint8 messageTreeSubDepth, - uint8 messageTreeDepth, - uint8 voteOptionTreeDepth, - uint256 maxMessages, - uint256 maxVoteOptions, - uint256 messageBatchSize, - VerifyingKey calldata processVk, - VerifyingKey calldata tallyVk - ) - external - onlyCoordinator - { - maciFactory.setMaciParameters( - stateTreeDepth, - intStateTreeDepth, - messageTreeSubDepth, - messageTreeDepth, - voteOptionTreeDepth, - maxMessages, - maxVoteOptions, - messageBatchSize, - processVk, - tallyVk - ); - } - /** * @dev Deploy new funding round. * @param duration The poll duration in seconds */ - function deployNewRound(uint256 duration) + function deployNewRound( + uint256 duration + ) external onlyOwner requireToken @@ -196,6 +195,10 @@ contract ClrFund is OwnableUpgradeable, IPubKey, SnarkCommon { ); newRound.setMaci(maci); + + // since we just created a new MACI, the first poll id starts from 0 + newRound.setPoll(0); + emit RoundStarted(address(newRound)); } @@ -323,7 +326,7 @@ contract ClrFund is OwnableUpgradeable, IPubKey, SnarkCommon { _; } - function requireCurrentRound(FundingRound currentRound) private { + function requireCurrentRound(FundingRound currentRound) private pure { if (address(currentRound) == address(0)) { revert NoCurrentRound(); } diff --git a/contracts/contracts/ClrFundDeployer.sol b/contracts/contracts/ClrFundDeployer.sol index 8f209938a..b8e84b469 100644 --- a/contracts/contracts/ClrFundDeployer.sol +++ b/contracts/contracts/ClrFundDeployer.sol @@ -65,7 +65,7 @@ contract ClrFundDeployer is CloneFactory, ClrFundParams { function deployClrFund(MACIFactory _maciFactory) public returns (address) { clrfund = ClrFund(createClone(template)); - + clrfund.init(_maciFactory); emit NewInstance(address(clrfund)); return address(clrfund); diff --git a/contracts/package.json b/contracts/package.json index b32ba25c1..f57064e64 100644 --- a/contracts/package.json +++ b/contracts/package.json @@ -49,7 +49,9 @@ "hardhat": "^2.12.5", "hardhat-contract-sizer": "^2.6.1", "ipfs-only-hash": "^2.0.1", + "maci-circuits": "1.1.2", "maci-cli": "1.1.1", + "maci-core": "^1.1.2", "solhint": "^3.3.2", "ts-generator": "^0.0.8", "ts-node": "^8.8.1", diff --git a/contracts/utils/maci.ts b/contracts/utils/maci.ts index f094e8286..3c4654435 100644 --- a/contracts/utils/maci.ts +++ b/contracts/utils/maci.ts @@ -5,11 +5,12 @@ import { getRecipientClaimData, IncrementalQuinTree, hash5, + hash2, LEAVES_PER_NODE, } from '@clrfund/common' import { genTallyResultCommitment } from 'maci-core' -import { extractVk, hash2 } from 'maci-circuits' +import { extractVk } from 'maci-circuits' import { VerifyingKey } from 'maci-domainobjs' import { CIRCUITS } from './deployment' import path from 'path' @@ -186,7 +187,7 @@ export function getRecipientTallyResult( BigInt(tally.totalSpentVoiceCredits.salt), ]) const perVOSpentVoiceCreditsHash = genTallyResultCommitment( - tally.perVOSpentVoiceCredits.tally.map((x) => BigInt(x)), + tally.perVOSpentVoiceCredits.tally.map(x => BigInt(x)), tally.perVOSpentVoiceCredits.salt, recipientTreeDepth ) @@ -195,7 +196,7 @@ export function getRecipientTallyResult( recipientTreeDepth, recipientIndex, result, - resultProof.pathElements.map((x) => x.map((y) => y.toString())), + resultProof.pathElements.map(x => x.map(y => y.toString())), spentVoiceCreditsHash, perVOSpentVoiceCreditsHash, ] @@ -223,12 +224,12 @@ export function getRecipientTallyResultsBatch( return [ recipientTreeDepth, - tallyData.map((item) => item[1]), - tallyData.map((item) => item[2]), - tallyData.map((item) => item[3]), + tallyData.map(item => item[1]), + tallyData.map(item => item[2]), + tallyData.map(item => item[3]), // TODO: fix this after getting the result of tally - tallyData.map((item) => item[4]), - tallyData.map((item) => item[5]), + tallyData.map(item => item[4]), + tallyData.map(item => item[5]), tally.newTallyCommitment, ] } diff --git a/yarn.lock b/yarn.lock index c80a226a2..bfcc988e5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7480,6 +7480,11 @@ circomlib@^2.0.0, circomlib@^2.0.5: resolved "https://registry.yarnpkg.com/circomlib/-/circomlib-2.0.5.tgz#183c703e53ed7d011811842dbeeeb9819f4cc1d6" integrity sha512-O7NQ8OS+J4eshBuoy36z/TwQU0YHw8W3zxZcs4hVwpEll3e4hDm3mgkIPqItN8FDeLEKZFK3YeT/+k8TiLF3/A== +"circomlib@git+https://github.com/weijiekoh/circomlib.git#ac85e82c1914d47789e2032fb11ceb2cfdd38a2b": + version "1.0.0" + uid ac85e82c1914d47789e2032fb11ceb2cfdd38a2b + resolved "git+https://github.com/weijiekoh/circomlib.git#ac85e82c1914d47789e2032fb11ceb2cfdd38a2b" + "circomlib@git://github.com/weijiekoh/circomlib.git#24ed08eee0bb613b8c0135d66c1013bd9f78d50a": version "0.5.2" resolved "git://github.com/weijiekoh/circomlib.git#24ed08eee0bb613b8c0135d66c1013bd9f78d50a" @@ -7492,7 +7497,6 @@ circomlib@^2.0.0, circomlib@^2.0.5: "circomlib@github:weijiekoh/circomlib#ac85e82c1914d47789e2032fb11ceb2cfdd38a2b": version "1.0.0" - uid ac85e82c1914d47789e2032fb11ceb2cfdd38a2b resolved "https://codeload.github.com/weijiekoh/circomlib/tar.gz/ac85e82c1914d47789e2032fb11ceb2cfdd38a2b" "circomlib@https://github.com/weijiekoh/circomlib#ac85e82c1914d47789e2032fb11ceb2cfdd38a2b": @@ -14764,13 +14768,13 @@ maci-circuits@1.1.1: snarkjs "^0.5.0" tmp "^0.2.1" -maci-circuits@^1.1.1: +maci-circuits@1.1.2, maci-circuits@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/maci-circuits/-/maci-circuits-1.1.2.tgz#56aebc6e8f121dad5c5b3de32a5edd7c920fa5d3" integrity sha512-a1sHBaF7A0bhHY4akJNN6NpX5sVGO8Ae1v3/IrEXyBZKWIvSnKY0rKzwmA3jC3F4OJrht025XUZmNd0gGcQm9g== dependencies: argparse "^2.0.1" - circomlib "https://github.com/weijiekoh/circomlib#ac85e82c1914d47789e2032fb11ceb2cfdd38a2b" + circomlib "git+https://github.com/weijiekoh/circomlib.git#ac85e82c1914d47789e2032fb11ceb2cfdd38a2b" shelljs "^0.8.3" snarkjs "^0.5.0" tmp "^0.2.1" @@ -14852,7 +14856,7 @@ maci-core@1.1.1: maci-domainobjs "^1.1.1" module-alias "^2.2.2" -maci-core@^1.1.1: +maci-core@^1.1.1, maci-core@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/maci-core/-/maci-core-1.1.2.tgz#97dbc70a20fe6fad548d62d3d65ca53d61743435" integrity sha512-o2VmIESe0jt3Mai2eiz2UKUeuHKC9aZqwvsfaaVj0GkySmzq6cYDvos/qaF0nw4nsoD+ElbW41v7hu+NfrxLwQ== From fcd1b4d1f5ddc9a447aaae5fc8390d2d6d540703 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Wed, 20 Sep 2023 13:50:45 -0400 Subject: [PATCH 028/338] fix contract build error --- contracts/contracts/FundingRound.sol | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/contracts/contracts/FundingRound.sol b/contracts/contracts/FundingRound.sol index 7651750d4..d51a8f34e 100644 --- a/contracts/contracts/FundingRound.sol +++ b/contracts/contracts/FundingRound.sol @@ -580,6 +580,9 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom * @param _voteOptionIndex Vote option index. * @param _tallyResult The results of vote tally for the recipients. * @param _tallyResultProof Proofs of correctness of the vote tally results. + * @param _spentVoiceCreditsHash hashLeftRight(number of spent voice credits, spent salt) + * @param _perVOSpentVoiceCreditsHash hashLeftRight(merkle root of the no spent voice credits per vote option, perVOSpentVoiceCredits salt) + * @param _tallyCommitment newTallyCommitment field in the tally.json */ function _addTallyResult( uint8 _voteOptionTreeDepth, @@ -623,8 +626,8 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom * @param _voteOptionIndices Vote option index. * @param _tallyResults The results of vote tally for the recipients. * @param _tallyResultProofs Proofs of correctness of the vote tally results. - * @param _spentVoiceCreditsHash hashLeftRight(number of spent voice credits, spent salt) - * @param _perVOSpentVoiceCreditsHash hashLeftRight(merkle root of the no spent voice credits per vote option, perVOSpentVoiceCredits salt) + * @param _spentVoiceCreditsHashes hashLeftRight(number of spent voice credits, spent salt) + * @param _perVOSpentVoiceCreditsHashes hashLeftRight(merkle root of the no spent voice credits per vote option, perVOSpentVoiceCredits salt) * @param _tallyCommitment newTallyCommitment field in the tally.json */ function addTallyResultsBatch( @@ -633,7 +636,7 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom uint256[] calldata _tallyResults, uint256[][][] calldata _tallyResultProofs, uint256[] calldata _spentVoiceCreditsHashes, - uint256[] calldata _perVOSpentVoiceCreditsHash, + uint256[] calldata _perVOSpentVoiceCreditsHashes, uint256 _tallyCommitment ) external @@ -653,7 +656,7 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom _tallyResults[i], _tallyResultProofs[i], _spentVoiceCreditsHashes[i], - _perVOSpentVoiceCreditsHash[i], + _perVOSpentVoiceCreditsHashes[i], _tallyCommitment ); } From a7853ea55021bc102897b1eb0d472e5ef4b6ba30 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Wed, 20 Sep 2023 13:52:21 -0400 Subject: [PATCH 029/338] update circomlib download path --- yarn.lock | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/yarn.lock b/yarn.lock index bfcc988e5..f8772a8bb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7482,7 +7482,6 @@ circomlib@^2.0.0, circomlib@^2.0.5: "circomlib@git+https://github.com/weijiekoh/circomlib.git#ac85e82c1914d47789e2032fb11ceb2cfdd38a2b": version "1.0.0" - uid ac85e82c1914d47789e2032fb11ceb2cfdd38a2b resolved "git+https://github.com/weijiekoh/circomlib.git#ac85e82c1914d47789e2032fb11ceb2cfdd38a2b" "circomlib@git://github.com/weijiekoh/circomlib.git#24ed08eee0bb613b8c0135d66c1013bd9f78d50a": @@ -7499,10 +7498,6 @@ circomlib@^2.0.0, circomlib@^2.0.5: version "1.0.0" resolved "https://codeload.github.com/weijiekoh/circomlib/tar.gz/ac85e82c1914d47789e2032fb11ceb2cfdd38a2b" -"circomlib@https://github.com/weijiekoh/circomlib#ac85e82c1914d47789e2032fb11ceb2cfdd38a2b": - version "1.0.0" - resolved "https://github.com/weijiekoh/circomlib#ac85e82c1914d47789e2032fb11ceb2cfdd38a2b" - "circomlib@https://github.com/weijiekoh/circomlib.git#24ed08eee0bb613b8c0135d66c1013bd9f78d50a": version "0.5.2" resolved "https://github.com/weijiekoh/circomlib.git#24ed08eee0bb613b8c0135d66c1013bd9f78d50a" @@ -14774,7 +14769,7 @@ maci-circuits@1.1.2, maci-circuits@^1.1.1: integrity sha512-a1sHBaF7A0bhHY4akJNN6NpX5sVGO8Ae1v3/IrEXyBZKWIvSnKY0rKzwmA3jC3F4OJrht025XUZmNd0gGcQm9g== dependencies: argparse "^2.0.1" - circomlib "git+https://github.com/weijiekoh/circomlib.git#ac85e82c1914d47789e2032fb11ceb2cfdd38a2b" + circomlib "https://github.com/weijiekoh/circomlib#ac85e82c1914d47789e2032fb11ceb2cfdd38a2b" shelljs "^0.8.3" snarkjs "^0.5.0" tmp "^0.2.1" From 3166f8c9cf55d7d73cf2dcf5e50df00755f31c29 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Wed, 20 Sep 2023 13:56:00 -0400 Subject: [PATCH 030/338] upgrade to actions/setup-node@v3 --- .github/workflows/test-contracts.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test-contracts.yml b/.github/workflows/test-contracts.yml index 211a6d89e..33e2ff21f 100644 --- a/.github/workflows/test-contracts.yml +++ b/.github/workflows/test-contracts.yml @@ -16,7 +16,7 @@ jobs: - name: Checkout uses: actions/checkout@v2 - name: Use Node.js ${{ env.NODE_VERSION }} - uses: actions/setup-node@v2 + uses: actions/setup-node@v3 with: node-version: ${{ env.NODE_VERSION }} - name: Install From 687fa5db113ba4c65f432db8fdc7e98456e3a195 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Wed, 20 Sep 2023 13:57:15 -0400 Subject: [PATCH 031/338] fix lint formatting --- common/src/utils.ts | 2 +- contracts/utils/maci.ts | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/common/src/utils.ts b/common/src/utils.ts index e7d28f028..829aa6521 100644 --- a/common/src/utils.ts +++ b/common/src/utils.ts @@ -94,7 +94,7 @@ export function getRecipientClaimData( return [ recipientIndex, spent, - spentProof.pathElements.map(x => x.map(y => y.toString())), + spentProof.pathElements.map((x) => x.map((y) => y.toString())), spentSalt, ] } diff --git a/contracts/utils/maci.ts b/contracts/utils/maci.ts index 3c4654435..7463e62ef 100644 --- a/contracts/utils/maci.ts +++ b/contracts/utils/maci.ts @@ -187,7 +187,7 @@ export function getRecipientTallyResult( BigInt(tally.totalSpentVoiceCredits.salt), ]) const perVOSpentVoiceCreditsHash = genTallyResultCommitment( - tally.perVOSpentVoiceCredits.tally.map(x => BigInt(x)), + tally.perVOSpentVoiceCredits.tally.map((x) => BigInt(x)), tally.perVOSpentVoiceCredits.salt, recipientTreeDepth ) @@ -196,7 +196,7 @@ export function getRecipientTallyResult( recipientTreeDepth, recipientIndex, result, - resultProof.pathElements.map(x => x.map(y => y.toString())), + resultProof.pathElements.map((x) => x.map((y) => y.toString())), spentVoiceCreditsHash, perVOSpentVoiceCreditsHash, ] @@ -224,12 +224,12 @@ export function getRecipientTallyResultsBatch( return [ recipientTreeDepth, - tallyData.map(item => item[1]), - tallyData.map(item => item[2]), - tallyData.map(item => item[3]), + tallyData.map((item) => item[1]), + tallyData.map((item) => item[2]), + tallyData.map((item) => item[3]), // TODO: fix this after getting the result of tally - tallyData.map(item => item[4]), - tallyData.map(item => item[5]), + tallyData.map((item) => item[4]), + tallyData.map((item) => item[5]), tally.newTallyCommitment, ] } From 4556401f0dd99b47de06a86ec9b7911c40f49330 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Wed, 20 Sep 2023 16:06:36 -0400 Subject: [PATCH 032/338] fix tally file format according maci v1 --- common/src/tally.ts | 6 ++-- common/src/utils.ts | 6 ++-- contracts/contracts/FundingRound.sol | 5 +++ contracts/tests/data/testTallySmall.json | 6 ++-- contracts/tests/deployer.ts | 8 ++--- contracts/tests/round.ts | 41 +++++++++++++++--------- contracts/utils/maci.ts | 3 +- 7 files changed, 47 insertions(+), 28 deletions(-) diff --git a/common/src/tally.ts b/common/src/tally.ts index 8d6e4a5b8..874a9e689 100644 --- a/common/src/tally.ts +++ b/common/src/tally.ts @@ -4,17 +4,19 @@ export interface Tally { provider: string maci: string + pollId: string + newTallyCommitment: string results: { commitment: string tally: string[] salt: string } - totalVoiceCredits: { + totalSpentVoiceCredits: { spent: string commitment: string salt: string } - totalVoiceCreditsPerVoteOption: { + perVOSpentVoiceCredits: { commitment: string tally: string[] salt: string diff --git a/common/src/utils.ts b/common/src/utils.ts index 829aa6521..f52844878 100644 --- a/common/src/utils.ts +++ b/common/src/utils.ts @@ -78,15 +78,15 @@ export function getRecipientClaimData( tally: Tally ): any[] { // Create proof for total amount of spent voice credits - const spent = tally.totalVoiceCreditsPerVoteOption.tally[recipientIndex] - const spentSalt = tally.totalVoiceCreditsPerVoteOption.salt + const spent = tally.perVOSpentVoiceCredits.tally[recipientIndex] + const spentSalt = tally.perVOSpentVoiceCredits.salt const spentTree = new IncrementalQuinTree( recipientTreeDepth, BigInt(0), LEAVES_PER_NODE, hash5 ) - for (const leaf of tally.totalVoiceCreditsPerVoteOption.tally) { + for (const leaf of tally.perVOSpentVoiceCredits.tally) { spentTree.insert(BigInt(leaf)) } const spentProof: MerkleProof = spentTree.genMerklePath(recipientIndex) diff --git a/contracts/contracts/FundingRound.sol b/contracts/contracts/FundingRound.sol index d51a8f34e..88864c2df 100644 --- a/contracts/contracts/FundingRound.sol +++ b/contracts/contracts/FundingRound.sol @@ -160,6 +160,11 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom revert PollProcessorAndTallyerNotSet(); } + bool processingComplete = tallyer.processingComplete(); + if (!processingComplete) { + return false; + } + (uint256 numSignUps, ) = poll.numSignUpsAndMessages(); (, uint256 tallyBatchSize, ) = poll.batchSizes(); uint256 tallyBatchNum = tallyer.tallyBatchNum(); diff --git a/contracts/tests/data/testTallySmall.json b/contracts/tests/data/testTallySmall.json index 8e0fe8865..4b6f13bc8 100644 --- a/contracts/tests/data/testTallySmall.json +++ b/contracts/tests/data/testTallySmall.json @@ -1,6 +1,8 @@ { "provider": "https://arb-mainnet.g.alchemy.com/v2/S67DO8ELPSxGxsbeETgvuMqG6AFsr2ux", "maci": "0x938fedD63C6770Ba50266Fe4C548A09FD2D1c9f1", + "pollId": "0", + "newTallyCommitment": "0x26e6ae35c82006eff6408b713d477307b2da16c7a1ff15fb46c0762ee308e88a", "results": { "commitment": "0x2f44c97ce649078012fd686eaf996fc6b8d817e11ab574f0d0a0d750ee1ec101", "tally": [ @@ -32,12 +34,12 @@ ], "salt": "0xa1f71f9e48a5f2ec55020051a190f079ca43d66457879972554c3c2e8a07ea0" }, - "totalVoiceCredits": { + "totalSpentVoiceCredits": { "spent": "6457377088", "commitment": "0x18b52cbe2a91777772d10c80d1b883cdc98e0f19475bcd907c693fddd6c675b8", "salt": "0x2013aa4e350542684f78adbf3e716c3bcf96e12c64b8e8ef3d962e3568132778" }, - "totalVoiceCreditsPerVoteOption": { + "perVOSpentVoiceCredits": { "commitment": "0x26e6ae35c82006eff6408b713d477307b2da16c7a1ff15fb46c0762ee308e88a", "tally": [ "0", diff --git a/contracts/tests/deployer.ts b/contracts/tests/deployer.ts index b76c522e7..d41858346 100644 --- a/contracts/tests/deployer.ts +++ b/contracts/tests/deployer.ts @@ -480,7 +480,7 @@ describe('Clr fund deployer', () => { await setRoundTallyer(factory, coordinator) await expect( factory.transferMatchingFunds(totalSpent, totalSpentSalt) - ).to.be.revertedWith('FundingRound: Votes has not been tallied') + ).to.be.revertedWith('VotesNotTallied') }) it('allows owner to finalize round even without matching funds', async () => { @@ -489,7 +489,7 @@ describe('Clr fund deployer', () => { await setRoundTallyer(factory, coordinator) await expect( factory.transferMatchingFunds(totalSpent, totalSpentSalt) - ).to.be.revertedWith('FundingRound: Votes has not been tallied') + ).to.be.revertedWith('VotesNotTallied') }) it('pulls funds from funding source', async () => { @@ -501,7 +501,7 @@ describe('Clr fund deployer', () => { await setRoundTallyer(factory, coordinator) await expect( factory.transferMatchingFunds(totalSpent, totalSpentSalt) - ).to.be.revertedWith('FundingRound: Votes has not been tallied') + ).to.be.revertedWith('VotesNotTallied') }) it('pulls funds from funding source if allowance is greater than balance', async () => { @@ -514,7 +514,7 @@ describe('Clr fund deployer', () => { await setRoundTallyer(factory, coordinator) await expect( factory.transferMatchingFunds(totalSpent, totalSpentSalt) - ).to.be.revertedWith('FundingRound: Votes has not been tallied') + ).to.be.revertedWith('VotesNotTallied') }) it('allows only owner to finalize round', async () => { diff --git a/contracts/tests/round.ts b/contracts/tests/round.ts index 0be62d891..38d9d4028 100644 --- a/contracts/tests/round.ts +++ b/contracts/tests/round.ts @@ -33,7 +33,9 @@ use(solidity) // ethStaker test vectors for Quadratic Funding with alpha import smallTallyTestData from './data/testTallySmall.json' -const totalSpent = BigNumber.from(smallTallyTestData.totalVoiceCredits.spent) +const totalSpent = BigNumber.from( + smallTallyTestData.totalSpentVoiceCredits.spent +) const budget = BigNumber.from(totalSpent).mul(VOICE_CREDIT_FACTOR).mul(2) const totalQuadraticVotes = smallTallyTestData.results.tally.reduce( (total, tally) => { @@ -564,6 +566,7 @@ describe('Funding Round', () => { await poll.mock.numSignUpsAndMessages.returns(numSignUps, 1) await poll.mock.batchSizes.returns(1, tallyBatchSize, 1) await tallyer.mock.tallyBatchNum.returns(tallyBatchNum) + await tallyer.mock.processingComplete.returns(true) // round.isVotingOver() const deployTime = (await provider.getBlock('latest')).timestamp @@ -584,6 +587,7 @@ describe('Funding Round', () => { .contribute(userKeypair.pubKey.asContractParam(), totalContributions) await provider.send('evm_increaseTime', [pollDuration]) await fundingRound.connect(coordinator).publishTallyHash(tallyHash) + expect(await fundingRound.tallyHash()).to.equal(tallyHash) await token.transfer(fundingRound.address, matchingPoolSize) await addTallyResultsBatch( @@ -823,6 +827,7 @@ describe('Funding Round', () => { await poll.mock.numSignUpsAndMessages.returns(numSignUps, 1) await poll.mock.batchSizes.returns(1, tallyBatchSize, 1) await tallyer.mock.tallyBatchNum.returns(tallyBatchNum) + await tallyer.mock.processingComplete.returns(true) // round.isVotingOver() const deployTime = (await provider.getBlock('latest')).timestamp @@ -970,13 +975,13 @@ describe('Funding Round', () => { const recipientIndex = 3 const { spent: totalSpent, salt: totalSpentSalt } = - smallTallyTestData.totalVoiceCredits + smallTallyTestData.totalSpentVoiceCredits const contributions = - smallTallyTestData.totalVoiceCreditsPerVoteOption.tally[recipientIndex] + smallTallyTestData.perVOSpentVoiceCredits.tally[recipientIndex] const expectedAllocatedAmount = calcAllocationAmount( smallTallyTestData.results.tally[recipientIndex], - smallTallyTestData.totalVoiceCreditsPerVoteOption.tally[recipientIndex] + smallTallyTestData.perVOSpentVoiceCredits.tally[recipientIndex] ).toString() let fundingRoundAsRecipient: Contract let fundingRoundAsContributor: Contract @@ -995,6 +1000,7 @@ describe('Funding Round', () => { await poll.mock.batchSizes.returns(1, tallyBatchSize, 1) await poll.mock.verifyPerVOSpentVoiceCredits.returns(true) await tallyer.mock.tallyBatchNum.returns(tallyBatchNum) + await tallyer.mock.processingComplete.returns(true) // round.isVotingOver() const deployTime = (await provider.getBlock('latest')).timestamp @@ -1025,11 +1031,11 @@ describe('Funding Round', () => { ) await fundingRound.finalize(totalSpent, totalSpentSalt) - const { results, totalVoiceCreditsPerVoteOption } = smallTallyTestData + const { results, perVOSpentVoiceCredits } = smallTallyTestData expect( await fundingRound.getAllocatedAmount( results.tally[recipientIndex], - totalVoiceCreditsPerVoteOption.tally[recipientIndex] + perVOSpentVoiceCredits.tally[recipientIndex] ) ).to.equal(expectedAllocatedAmount, 'mismatch allocated amount') @@ -1249,6 +1255,7 @@ describe('Funding Round', () => { await poll.mock.batchSizes.returns(1, tallyBatchSize, 1) await poll.mock.verifyPerVOSpentVoiceCredits.returns(true) await tallyer.mock.tallyBatchNum.returns(tallyBatchNum) + await tallyer.mock.processingComplete.returns(true) // round.isVotingOver() const deployTime = (await provider.getBlock('latest')).timestamp @@ -1301,7 +1308,7 @@ describe('Funding Round', () => { ) const totalVotes = await fundingRound.totalVotesSquares() - const { spent: totalSpent } = smallTallyTestData.totalVoiceCredits + const { spent: totalSpent } = smallTallyTestData.totalSpentVoiceCredits const calculatedAlpha = await fundingRound.calcAlpha( budget, totalVotes, @@ -1317,7 +1324,7 @@ describe('Funding Round', () => { smallTallyTestData, 3 ) - const { spent, salt } = smallTallyTestData.totalVoiceCredits + const { spent, salt } = smallTallyTestData.totalSpentVoiceCredits await fundingRound.finalize(spent, salt) const alpha = await fundingRound.alpha() @@ -1331,22 +1338,25 @@ describe('Funding Round', () => { const tallyTreeDepth = 1 // await maci.mock.treeDepths.returns(10, 10, tallyTreeDepth) const tallyWith1Contributor = { + newTallyCommitment: + '0x26e6ae35c82006eff6408b713d477307b2da16c7a1ff15fb46c0762ee308e88a', results: { commitment: '0x2f44c97ce649078012fd686eaf996fc6b8d817e11ab574f0d0a0d750ee1ec101', tally: [0, 200, 200, 0, 0], salt: '0xa1f71f9e48a5f2ec55020051a190f079ca43d66457879972554c3c2e8a07ea0', }, - totalVoiceCredits: { + totalSpentVoiceCredits: { spent: '80000', commitment: '0x18b52cbe2a91777772d10c80d1b883cdc98e0f19475bcd907c693fddd6c675b8', salt: '0x2013aa4e350542684f78adbf3e716c3bcf96e12c64b8e8ef3d962e3568132778', }, - totalVoiceCreditsPerVoteOption: { + perVOSpentVoiceCredits: { commitment: '0x26e6ae35c82006eff6408b713d477307b2da16c7a1ff15fb46c0762ee308e88a', tally: ['0', '40000', '40000', '0', '0'], + salt: '0x2013aa4e350542684f78adbf3e716c3bcf96e12c64b8e8ef3d962e3568132778', }, salt: '0x63c80f2b0319790c19b3b17ecd7b00fc1dc7398198601d0dfb30253306ecb34', } @@ -1357,7 +1367,7 @@ describe('Funding Round', () => { tallyWith1Contributor, batchSize ) - const { spent, salt } = smallTallyTestData.totalVoiceCredits + const { spent, salt } = smallTallyTestData.totalSpentVoiceCredits await expect(fundingRound.finalize(spent, salt)).to.be.revertedWith( 'NoProjectHasMoreThanOneVote' ) @@ -1370,12 +1380,11 @@ describe('Funding Round', () => { smallTallyTestData, 20 ) - const { spent, salt } = smallTallyTestData.totalVoiceCredits + const { spent, salt } = smallTallyTestData.totalSpentVoiceCredits await fundingRound.finalize(spent, salt) const { tally } = smallTallyTestData.results - const { tally: spents } = - smallTallyTestData.totalVoiceCreditsPerVoteOption + const { tally: spents } = smallTallyTestData.perVOSpentVoiceCredits for (let i = 0; i < tally.length; i++) { const tallyResult = tally[i] @@ -1404,7 +1413,7 @@ describe('Funding Round', () => { }) it.skip('prevents finalize if tally results not completely received', async function () { - const { spent, salt } = smallTallyTestData.totalVoiceCredits + const { spent, salt } = smallTallyTestData.totalSpentVoiceCredits // increase the number of signup to simulate incomplete tallying await poll.mock.numSignUpsAndMessages.returns(numSignUps * 2, 1) @@ -1482,7 +1491,7 @@ describe('Funding Round', () => { 5 ) - const { spent, salt } = smallTallyTestData.totalVoiceCredits + const { spent, salt } = smallTallyTestData.totalSpentVoiceCredits await fundingRound.finalize(spent, salt) await expect( addTallyResultsBatch( diff --git a/contracts/utils/maci.ts b/contracts/utils/maci.ts index 7463e62ef..2f8d2f986 100644 --- a/contracts/utils/maci.ts +++ b/contracts/utils/maci.ts @@ -186,9 +186,10 @@ export function getRecipientTallyResult( BigInt(tally.totalSpentVoiceCredits.spent), BigInt(tally.totalSpentVoiceCredits.salt), ]) + const perVOSpentVoiceCreditsHash = genTallyResultCommitment( tally.perVOSpentVoiceCredits.tally.map((x) => BigInt(x)), - tally.perVOSpentVoiceCredits.salt, + BigInt(tally.perVOSpentVoiceCredits.salt), recipientTreeDepth ) From 84009c02127485f5936a8cf5b1dfc4818f93052f Mon Sep 17 00:00:00 2001 From: yuetloo Date: Wed, 20 Sep 2023 16:59:19 -0400 Subject: [PATCH 033/338] fix syntax error --- .github/scripts/download-zkeys-micro.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/scripts/download-zkeys-micro.sh b/.github/scripts/download-zkeys-micro.sh index 150e420de..b56f44e14 100755 --- a/.github/scripts/download-zkeys-micro.sh +++ b/.github/scripts/download-zkeys-micro.sh @@ -15,7 +15,7 @@ do curl $url -o $p extension="${filename##*.}" if [ "$extension" == "gz" ] - do + then tar -xvf $p fi done From 52906d85221b962bf87c65b3be195e30c20460f2 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Wed, 20 Sep 2023 17:19:00 -0400 Subject: [PATCH 034/338] add rapidsnark installation --- .github/workflows/test-e2e.yml | 35 ++++++++++++++++++++++++++-------- contracts/e2e/index.ts | 7 +++++-- 2 files changed, 32 insertions(+), 10 deletions(-) diff --git a/.github/workflows/test-e2e.yml b/.github/workflows/test-e2e.yml index 3c87916e5..13079bc52 100644 --- a/.github/workflows/test-e2e.yml +++ b/.github/workflows/test-e2e.yml @@ -8,7 +8,7 @@ on: env: NODE_VERSION: 16.x - CIRCUIT_TYPE: prod + CIRCUIT_TYPE: micro jobs: e2e-test: @@ -27,21 +27,40 @@ jobs: - name: Install g++ library dependencies run: | sudo apt update - sudo apt-get install build-essential libgmp-dev libsodium-dev nlohmann-json3-dev nasm g++ curl + sudo apt-get install cmake build-essential libgmp-dev libsodium-dev nlohmann-json3-dev nasm g++ curl - name: Install rust toolchain uses: actions-rs/toolchain@v1 with: toolchain: stable - - name: Install zkutil + - name: Checkout circom + uses: actions/checkout@v3 + with: + repository: iden3/circom + path: circom + - name: Build circom + run: | + cd circom + cargo build --release + cargo install --path circom + - name: Checkout snarkrapid + uses: actions/checkout@v3 + with: + repository: iden3/rapidsnark + path: rapidsnark + - name: Build rapidsnark run: | - cargo install zkutil --version 0.3.2 + npm install + git submodule init + git submodule update + npx task createFieldSources + npx task buildProver - name: Checkout Clrfund uses: actions/checkout@v3 with: path: monorepo - name: Download batch micro zk circuit params run: | - $GITHUB_WORKSPACE/monorepo/.github/scripts/download-zkeys-micro.sh + $GITHUB_WORKSPACE/monorepo/.github/scripts/download-zkeys-${CIRCUIT_TYPE}.sh - name: Build Clrfund run: | cd monorepo @@ -52,9 +71,9 @@ jobs: yarn start:node & - name: Run tests run: | - export CIRCUIT_TYPE=micro - export CIRCUIT_DIRECTORY==$GITHUB_WORKSPAC + '/params' - echo $NODE_CONFIG + export CIRCUIT_DIRECTORY=$GITHUB_WORKSPACE + '/params' + export RAPIDSNARK_DIRECTORY=$GITHUB_WORKSPACE + '/rapidsnark/build' + npm install cd monorepo yarn test:e2e diff --git a/contracts/e2e/index.ts b/contracts/e2e/index.ts index e3d40cdf1..dc0218daf 100644 --- a/contracts/e2e/index.ts +++ b/contracts/e2e/index.ts @@ -2,7 +2,7 @@ import { ethers, waffle } from 'hardhat' import { use, expect } from 'chai' import { solidity } from 'ethereum-waffle' -import { BigNumber, Contract, Signer, Wallet, utils } from 'ethers' +import { BigNumber, Contract, Signer, Wallet } from 'ethers' import { Keypair, createMessage, Message, PubKey } from '@clrfund/common' import { UNIT } from '../utils/constants' @@ -34,6 +34,9 @@ const roundDuration = 7 * 86400 const circuit = process.env.CIRCUIT_TYPE || 'micro' const params = MaciParameters.fromConfig(circuit) const circuitDirectory = process.env.CIRCUIT_DIRECTORY || '~/params' +const rapidSnarkDirectory = + process.env.RAPIDSNARK_DIRECTORY || '~/rapidsnark/build' +const rapidSnarkExe = path.join(rapidSnarkDirectory, 'prover') const { processZkFile, tallyZkFile, processWitness, tallyWitness } = getCircuitFiles(circuitDirectory, circuit) let maciTransactionHash: string @@ -261,7 +264,7 @@ describe('End-to-end Tests', function () { eth_provider: providerUrl, 'poll-id': pollId.toString(), 'tally-file': tallyFile, - rapidsnark: '', + rapidsnark: rapidSnarkExe, 'process-witnessgen': processWitness, 'tally-witnessgen': tallyWitness, 'process-zkey': processZkFile, From 93c6ce922d18f52c9eeaebdfbd879b8b1b06eca2 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Wed, 20 Sep 2023 17:32:29 -0400 Subject: [PATCH 035/338] go to snark directory --- .github/workflows/test-e2e.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/test-e2e.yml b/.github/workflows/test-e2e.yml index 13079bc52..393277e87 100644 --- a/.github/workflows/test-e2e.yml +++ b/.github/workflows/test-e2e.yml @@ -49,6 +49,7 @@ jobs: path: rapidsnark - name: Build rapidsnark run: | + cd rapidsnark npm install git submodule init git submodule update From 7bbc26bdfe5796204760c87c4c1fea8d1e62eee4 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Wed, 20 Sep 2023 19:59:46 -0400 Subject: [PATCH 036/338] fix connection error to github --- .github/workflows/cancel-round.yml | 2 ++ .github/workflows/create-version.yml | 2 ++ .github/workflows/finalize-round.yml | 2 ++ .github/workflows/new-round.yml | 2 ++ .github/workflows/test-buildsnark.yml | 2 ++ .github/workflows/test-e2e.yml | 7 ++++--- .github/workflows/test-scripts.yml | 2 ++ 7 files changed, 16 insertions(+), 3 deletions(-) diff --git a/.github/workflows/cancel-round.yml b/.github/workflows/cancel-round.yml index a44508f0e..f9ae75226 100644 --- a/.github/workflows/cancel-round.yml +++ b/.github/workflows/cancel-round.yml @@ -19,6 +19,8 @@ jobs: uses: actions/checkout@v3 - name: Build CLR run: | + # use https to avoid error: unable to connect to github.com + git config --global url."https://".insteadOf git:// yarn && yarn build - name: Run the cancel round script run: | diff --git a/.github/workflows/create-version.yml b/.github/workflows/create-version.yml index 0037986c1..4d6a0effb 100644 --- a/.github/workflows/create-version.yml +++ b/.github/workflows/create-version.yml @@ -33,6 +33,8 @@ jobs: uses: actions/checkout@v3 - name: Install dependencies run: | + # use https to avoid error: unable to connect to github.com + git config --global url."https://".insteadOf git:// yarn && yarn build - name: setup git config run: | diff --git a/.github/workflows/finalize-round.yml b/.github/workflows/finalize-round.yml index d1e8e5219..e31894c37 100644 --- a/.github/workflows/finalize-round.yml +++ b/.github/workflows/finalize-round.yml @@ -50,6 +50,8 @@ jobs: $GITHUB_WORKSPACE/.github/scripts/download-batch64-params.sh - name: Build run: | + # use https to avoid error: unable to connect to github.com + git config --global url."https://".insteadOf git:// yarn && yarn build - name: Run finalize scripts run: | diff --git a/.github/workflows/new-round.yml b/.github/workflows/new-round.yml index a25fa09ff..25e00ae58 100644 --- a/.github/workflows/new-round.yml +++ b/.github/workflows/new-round.yml @@ -19,6 +19,8 @@ jobs: uses: actions/checkout@v3 - name: Build CLR run: | + # use https to avoid error: unable to connect to github.com + git config --global url."https://".insteadOf git:// yarn && yarn build - name: Run create new round script run: | diff --git a/.github/workflows/test-buildsnark.yml b/.github/workflows/test-buildsnark.yml index 742d29e41..66192a288 100644 --- a/.github/workflows/test-buildsnark.yml +++ b/.github/workflows/test-buildsnark.yml @@ -49,6 +49,8 @@ jobs: - name: Install Clrfund run: | cd monorepo + # use https to avoid error: unable to connect to github.com + git config --global url."https://".insteadOf git:// yarn && yarn build - name: Start hardhat network run: | diff --git a/.github/workflows/test-e2e.yml b/.github/workflows/test-e2e.yml index 393277e87..4af09ad67 100644 --- a/.github/workflows/test-e2e.yml +++ b/.github/workflows/test-e2e.yml @@ -42,7 +42,7 @@ jobs: cd circom cargo build --release cargo install --path circom - - name: Checkout snarkrapid + - name: Checkout rapidsnark uses: actions/checkout@v3 with: repository: iden3/rapidsnark @@ -59,12 +59,14 @@ jobs: uses: actions/checkout@v3 with: path: monorepo - - name: Download batch micro zk circuit params + - name: Download micro zk circuit params run: | $GITHUB_WORKSPACE/monorepo/.github/scripts/download-zkeys-${CIRCUIT_TYPE}.sh - name: Build Clrfund run: | cd monorepo + # use https to avoid error: unable to connect to github.com + git config --global url."https://".insteadOf git:// yarn && yarn build - name: Start hardhat network run: | @@ -74,7 +76,6 @@ jobs: run: | export CIRCUIT_DIRECTORY=$GITHUB_WORKSPACE + '/params' export RAPIDSNARK_DIRECTORY=$GITHUB_WORKSPACE + '/rapidsnark/build' - npm install cd monorepo yarn test:e2e diff --git a/.github/workflows/test-scripts.yml b/.github/workflows/test-scripts.yml index b0390a18a..41937c33d 100644 --- a/.github/workflows/test-scripts.yml +++ b/.github/workflows/test-scripts.yml @@ -39,6 +39,8 @@ jobs: - name: Build CLR run: | cd monorepo + # use https to avoid error: unable to connect to github.com + git config --global url."https://".insteadOf git:// yarn && yarn build - name: Start hardhat network run: | From 6aa164e2ae355a319905c2f47b71c4ae8c247e2d Mon Sep 17 00:00:00 2001 From: yuetloo Date: Wed, 20 Sep 2023 20:18:07 -0400 Subject: [PATCH 037/338] do not skip compilation on the Clrfund contract --- contracts/hardhat.config.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/contracts/hardhat.config.ts b/contracts/hardhat.config.ts index b6a3b1695..fada8e21f 100644 --- a/contracts/hardhat.config.ts +++ b/contracts/hardhat.config.ts @@ -157,9 +157,7 @@ subtask(TASK_COMPILE_SOLIDITY_GET_SOURCE_PATHS, async (_, __, runSuper) => { const paths = await runSuper() return paths.filter((filePath: string) => { - return !( - filePath.includes('snarkVerifiers') || filePath.includes('ClrFund.sol') - ) + return !filePath.includes('snarkVerifiers') }) }) From 040dfccd552a8882acb17ffae3be05ac20999cba Mon Sep 17 00:00:00 2001 From: yuetloo Date: Wed, 20 Sep 2023 20:40:25 -0400 Subject: [PATCH 038/338] set git option --- .github/workflows/test-e2e.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test-e2e.yml b/.github/workflows/test-e2e.yml index 4af09ad67..92af41879 100644 --- a/.github/workflows/test-e2e.yml +++ b/.github/workflows/test-e2e.yml @@ -64,9 +64,9 @@ jobs: $GITHUB_WORKSPACE/monorepo/.github/scripts/download-zkeys-${CIRCUIT_TYPE}.sh - name: Build Clrfund run: | - cd monorepo # use https to avoid error: unable to connect to github.com git config --global url."https://".insteadOf git:// + cd monorepo yarn && yarn build - name: Start hardhat network run: | From a988384b16bcc8fcb406d527cf2591f7dbd18ffe Mon Sep 17 00:00:00 2001 From: yuetloo Date: Thu, 21 Sep 2023 11:51:36 -0400 Subject: [PATCH 039/338] check if clrfund abi exists --- .github/workflows/test-e2e.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/test-e2e.yml b/.github/workflows/test-e2e.yml index 92af41879..3556b6ee8 100644 --- a/.github/workflows/test-e2e.yml +++ b/.github/workflows/test-e2e.yml @@ -67,6 +67,7 @@ jobs: # use https to avoid error: unable to connect to github.com git config --global url."https://".insteadOf git:// cd monorepo + ls contracts/build/contracts/contracts/Clrfund.sol/Clrfund.json yarn && yarn build - name: Start hardhat network run: | From 2c54639ddded27b7b9aeeb7e9904be5c049bc644 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Thu, 21 Sep 2023 12:35:08 -0400 Subject: [PATCH 040/338] remove debug statement --- .github/workflows/test-e2e.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/test-e2e.yml b/.github/workflows/test-e2e.yml index 3556b6ee8..92af41879 100644 --- a/.github/workflows/test-e2e.yml +++ b/.github/workflows/test-e2e.yml @@ -67,7 +67,6 @@ jobs: # use https to avoid error: unable to connect to github.com git config --global url."https://".insteadOf git:// cd monorepo - ls contracts/build/contracts/contracts/Clrfund.sol/Clrfund.json yarn && yarn build - name: Start hardhat network run: | From e32be456868b534d598b1cdcb041a076274a7741 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Thu, 21 Sep 2023 12:35:28 -0400 Subject: [PATCH 041/338] fix case sensitivity issue --- vue-app/src/api/abi.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vue-app/src/api/abi.ts b/vue-app/src/api/abi.ts index 4a949c6b5..2006704a6 100644 --- a/vue-app/src/api/abi.ts +++ b/vue-app/src/api/abi.ts @@ -1,5 +1,5 @@ import { abi as ERC20 } from '../../../contracts/build/contracts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json' -import { abi as FundingRoundFactory } from '../../../contracts/build/contracts/contracts/Clrfund.sol/Clrfund.json' +import { abi as FundingRoundFactory } from '../../../contracts/build/contracts/contracts/ClrFund.sol/ClrFund.json' import { abi as FundingRound } from '../../../contracts/build/contracts/contracts/FundingRound.sol/FundingRound.json' import { abi as MACIFactory } from '../../../contracts/build/contracts/contracts/MACIFactory.sol/MACIFactory.json' import { abi as MACI } from '../../../contracts/build/contracts/maci-contracts/contracts/MACI.sol/MACI.json' From d26c24a7015347816945f91c5c603ee8fdd6f223 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Thu, 21 Sep 2023 13:07:09 -0400 Subject: [PATCH 042/338] fix shell syntax error --- .github/workflows/test-e2e.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test-e2e.yml b/.github/workflows/test-e2e.yml index 92af41879..47416140c 100644 --- a/.github/workflows/test-e2e.yml +++ b/.github/workflows/test-e2e.yml @@ -74,8 +74,8 @@ jobs: yarn start:node & - name: Run tests run: | - export CIRCUIT_DIRECTORY=$GITHUB_WORKSPACE + '/params' - export RAPIDSNARK_DIRECTORY=$GITHUB_WORKSPACE + '/rapidsnark/build' + export CIRCUIT_DIRECTORY="$GITHUB_WORKSPACE/params" + export RAPIDSNARK_DIRECTORY="$GITHUB_WORKSPACE/rapidsnark/build" cd monorepo yarn test:e2e From 8698e83cb73362ae0fa9dba02fb2923b855458dd Mon Sep 17 00:00:00 2001 From: yuetloo Date: Thu, 21 Sep 2023 13:46:45 -0400 Subject: [PATCH 043/338] fix missing function --- contracts/e2e/index.ts | 3 ++- contracts/utils/deployment.ts | 4 ++++ contracts/utils/maci.ts | 11 ++++++----- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/contracts/e2e/index.ts b/contracts/e2e/index.ts index dc0218daf..f0fefba29 100644 --- a/contracts/e2e/index.ts +++ b/contracts/e2e/index.ts @@ -23,6 +23,7 @@ import { getCircuitFiles, } from '../utils/maci' import { readFileSync } from 'fs' +import path from 'path' use(solidity) @@ -32,8 +33,8 @@ const roundDuration = 7 * 86400 // MACI zkFiles const circuit = process.env.CIRCUIT_TYPE || 'micro' -const params = MaciParameters.fromConfig(circuit) const circuitDirectory = process.env.CIRCUIT_DIRECTORY || '~/params' +const params = MaciParameters.fromConfig(circuit, circuitDirectory) const rapidSnarkDirectory = process.env.RAPIDSNARK_DIRECTORY || '~/rapidsnark/build' const rapidSnarkExe = path.join(rapidSnarkDirectory, 'prover') diff --git a/contracts/utils/deployment.ts b/contracts/utils/deployment.ts index 01a1d824b..b3ff3d9b2 100644 --- a/contracts/utils/deployment.ts +++ b/contracts/utils/deployment.ts @@ -69,6 +69,8 @@ export const CIRCUITS: { [name: string]: any } = { //https://github.com/privacy-scaling-explorations/maci/wiki/Precompiled-v1.1.1#micro-size processMessagesZkey: 'ProcessMessages_10-2-1-2_test.0.zkey', tallyVotesZkey: 'TallyVotes_10-1-2_test.0.zkey', + processWitness: 'ProcessMessages_10-2-1-2_test', + tallyWitness: 'TallyVotes_10-1-2_test', treeDepths: { // TODO: confirm if the following 4 parameters are the 4 parameters in processMessages.circom stateTreeDepth: 10, @@ -100,6 +102,8 @@ export const CIRCUITS: { [name: string]: any } = { prod: { processMessagesZkey: 'ProcessMessages_7-9-3-4_test.0.zkey', tallyVotesZkey: 'TallyVotes_7-3-4_test.0.zkey', + processWitness: 'ProcessMessages_7-9-3-4_test', + tallyWitness: 'TallyVotes_7-3-4_test', treeDepths: { stateTreeDepth: 7, messageTreeDepth: 9, diff --git a/contracts/utils/maci.ts b/contracts/utils/maci.ts index 2f8d2f986..2618adfc7 100644 --- a/contracts/utils/maci.ts +++ b/contracts/utils/maci.ts @@ -77,12 +77,13 @@ export class MaciParameters { ] } - static fromConfig(circuit: string): MaciParameters { + static fromConfig(circuit: string, directory: string): MaciParameters { const config = CIRCUITS[circuit] - const pmZkeyFile = getZkeyFilePath(config.processMessagesZkey) - const tvZkeyFile = getZkeyFilePath(config.tallyVotesZkey) - const processVk: VerifyingKey = VerifyingKey.fromObj(extractVk(pmZkeyFile)) - const tallyVk: VerifyingKey = VerifyingKey.fromObj(extractVk(tvZkeyFile)) + const { processZkFile, tallyZkFile } = getCircuitFiles(circuit, directory) + const processVk: VerifyingKey = VerifyingKey.fromObj( + extractVk(processZkFile) + ) + const tallyVk: VerifyingKey = VerifyingKey.fromObj(extractVk(tallyZkFile)) return new MaciParameters({ stateTreeDepth: config.stateTreeDepth, From 7b402a4e1f7b2c2da745d085067d0560e988953d Mon Sep 17 00:00:00 2001 From: yuetloo Date: Thu, 21 Sep 2023 14:30:16 -0400 Subject: [PATCH 044/338] do not hoist maci-circuits --- package.json | 2 ++ yarn.lock | 8 ++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 4ffb32004..95a2a8939 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,8 @@ ], "nohoist": [ "**/@nomiclabs/**", + "**/maci-circuits/**", + "**/maci-circuits", "**/maci-cli/**", "**/maci-cli", "**/maci-contracts/**", diff --git a/yarn.lock b/yarn.lock index f8772a8bb..0b9fecef7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7480,10 +7480,6 @@ circomlib@^2.0.0, circomlib@^2.0.5: resolved "https://registry.yarnpkg.com/circomlib/-/circomlib-2.0.5.tgz#183c703e53ed7d011811842dbeeeb9819f4cc1d6" integrity sha512-O7NQ8OS+J4eshBuoy36z/TwQU0YHw8W3zxZcs4hVwpEll3e4hDm3mgkIPqItN8FDeLEKZFK3YeT/+k8TiLF3/A== -"circomlib@git+https://github.com/weijiekoh/circomlib.git#ac85e82c1914d47789e2032fb11ceb2cfdd38a2b": - version "1.0.0" - resolved "git+https://github.com/weijiekoh/circomlib.git#ac85e82c1914d47789e2032fb11ceb2cfdd38a2b" - "circomlib@git://github.com/weijiekoh/circomlib.git#24ed08eee0bb613b8c0135d66c1013bd9f78d50a": version "0.5.2" resolved "git://github.com/weijiekoh/circomlib.git#24ed08eee0bb613b8c0135d66c1013bd9f78d50a" @@ -7498,6 +7494,10 @@ circomlib@^2.0.0, circomlib@^2.0.5: version "1.0.0" resolved "https://codeload.github.com/weijiekoh/circomlib/tar.gz/ac85e82c1914d47789e2032fb11ceb2cfdd38a2b" +"circomlib@https://github.com/weijiekoh/circomlib#ac85e82c1914d47789e2032fb11ceb2cfdd38a2b": + version "1.0.0" + resolved "https://github.com/weijiekoh/circomlib#ac85e82c1914d47789e2032fb11ceb2cfdd38a2b" + "circomlib@https://github.com/weijiekoh/circomlib.git#24ed08eee0bb613b8c0135d66c1013bd9f78d50a": version "0.5.2" resolved "https://github.com/weijiekoh/circomlib.git#24ed08eee0bb613b8c0135d66c1013bd9f78d50a" From ce59f93a0bfc49c8a81a412e48b2c5f9c8a6dea8 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Fri, 22 Sep 2023 14:59:34 -0400 Subject: [PATCH 045/338] fix incorrect filename --- .github/scripts/download-zkeys-micro.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/scripts/download-zkeys-micro.sh b/.github/scripts/download-zkeys-micro.sh index b56f44e14..88aabcb7c 100755 --- a/.github/scripts/download-zkeys-micro.sh +++ b/.github/scripts/download-zkeys-micro.sh @@ -13,7 +13,7 @@ do url="$BASE_URL/$p" echo "downloading $url" curl $url -o $p - extension="${filename##*.}" + extension="${p##*.}" if [ "$extension" == "gz" ] then tar -xvf $p From 030fe922d220e9959e4ec37f5d8f608b235228dc Mon Sep 17 00:00:00 2001 From: yuetloo Date: Sat, 23 Sep 2023 14:57:18 -0400 Subject: [PATCH 046/338] fix errors in e2e tests --- contracts/contracts/ClrFund.sol | 1 + contracts/contracts/MACIFactory.sol | 7 ++- contracts/e2e/index.ts | 98 ++++++++++++++++------------- contracts/package.json | 6 +- contracts/utils/deployment.ts | 37 ++++++----- contracts/utils/maci.ts | 17 ++--- package.json | 2 + yarn.lock | 54 +--------------- 8 files changed, 97 insertions(+), 125 deletions(-) diff --git a/contracts/contracts/ClrFund.sol b/contracts/contracts/ClrFund.sol index 3670519ee..deef49ce4 100644 --- a/contracts/contracts/ClrFund.sol +++ b/contracts/contracts/ClrFund.sol @@ -191,6 +191,7 @@ contract ClrFund is OwnableUpgradeable, IPubKey, SnarkCommon, Params { InitialVoiceCreditProxy(newRound), address(nativeToken), duration, + coordinator, coordinatorPubKey ); diff --git a/contracts/contracts/MACIFactory.sol b/contracts/contracts/MACIFactory.sol index a29a44d03..6c86b36a5 100644 --- a/contracts/contracts/MACIFactory.sol +++ b/contracts/contracts/MACIFactory.sol @@ -3,7 +3,7 @@ pragma solidity ^0.8.10; import {MACI} from 'maci-contracts/contracts/MACI.sol'; -import {PollFactory, MessageAqFactory} from 'maci-contracts/contracts/Poll.sol'; +import {Poll, PollFactory, MessageAqFactory} from 'maci-contracts/contracts/Poll.sol'; import {SignUpGatekeeper} from 'maci-contracts/contracts/gatekeepers/SignUpGatekeeper.sol'; import {InitialVoiceCreditProxy} from 'maci-contracts/contracts/initialVoiceCreditProxy/InitialVoiceCreditProxy.sol'; import {TopupCredit} from 'maci-contracts/contracts/TopupCredit.sol'; @@ -106,6 +106,7 @@ contract MACIFactory is Ownable, Params, SnarkCommon, IPubKey { InitialVoiceCreditProxy initialVoiceCreditProxy, address topupCredit, uint256 duration, + address coordinator, PubKey calldata coordinatorPubKey ) external @@ -143,6 +144,10 @@ contract MACIFactory is Ownable, Params, SnarkCommon, IPubKey { _maci.init(vkRegistry, messageAqFactory, TopupCredit(topupCredit)); _maci.deployPoll(duration, maxValues, treeDepths, coordinatorPubKey); + // this is a brand new maci, get poll 0 + Poll poll = _maci.getPoll(0); + poll.transferOwnership(coordinator); + emit MaciDeployed(address(_maci)); } } diff --git a/contracts/e2e/index.ts b/contracts/e2e/index.ts index f0fefba29..f7a382332 100644 --- a/contracts/e2e/index.ts +++ b/contracts/e2e/index.ts @@ -11,9 +11,12 @@ import { deployVkRegistry, deployMaciFactory, deployPollProcessorAndTallyer, + mergeMessages, + mergeSignups, genProofs, proveOnChain, deployPoseidonLibraries, + deployContractWithLinkedLibraries, } from '../utils/deployment' import { getIpfsHash } from '../utils/ipfs' import { @@ -28,18 +31,19 @@ import path from 'path' use(solidity) const ZERO = BigNumber.from(0) +const DEFAULT_SR_QUEUE_OPS = 4 const roundDuration = 7 * 86400 // MACI zkFiles const circuit = process.env.CIRCUIT_TYPE || 'micro' -const circuitDirectory = process.env.CIRCUIT_DIRECTORY || '~/params' +const circuitDirectory = process.env.CIRCUIT_DIRECTORY || '../../params' const params = MaciParameters.fromConfig(circuit, circuitDirectory) const rapidSnarkDirectory = - process.env.RAPIDSNARK_DIRECTORY || '~/rapidsnark/build' + process.env.RAPIDSNARK_DIRECTORY || '../../rapidsnark/build' const rapidSnarkExe = path.join(rapidSnarkDirectory, 'prover') const { processZkFile, tallyZkFile, processWitness, tallyWitness } = - getCircuitFiles(circuitDirectory, circuit) + getCircuitFiles(circuit, circuitDirectory) let maciTransactionHash: string const timeMs = new Date().getTime() @@ -47,6 +51,12 @@ const tallyFile = `tally.json` const maciStateFile = `macistate_${timeMs}` const outputDir = '.' +const currentBlockTimestamp = async (provider: any): Promise => { + const blockNum = await provider.getBlockNumber() + const block = await provider.getBlock(blockNum) + return Number(block.timestamp) +} + describe('End-to-end Tests', function () { this.timeout(60 * 60 * 1000) this.bail(true) @@ -73,6 +83,7 @@ describe('End-to-end Tests', function () { beforeEach(async () => { ;[ + coordinator, deployer, poolContributor1, poolContributor2, @@ -82,26 +93,22 @@ describe('End-to-end Tests', function () { ...contributors ] = await ethers.getSigners() - // Workaround for https://github.com/nomiclabs/buidler/issues/759 - coordinator = Wallet.createRandom().connect(provider) - await deployer.sendTransaction({ - to: coordinator.address, - value: UNIT.mul(10), - }) - // Deploy funding round factory const poseidonLibraries = await deployPoseidonLibraries(deployer) const maciFactory = await deployMaciFactory(deployer, poseidonLibraries) const setMaciTx = await maciFactory.setMaciParameters( ...params.asContractParam() ) + console.log('after setting maci', setMaciTx.hash) await setMaciTx.wait() - const FundingRoundFactory = await ethers.getContractFactory( - 'FundingRoundFactory', - deployer + const fundingRoundFactory = await deployContractWithLinkedLibraries( + deployer, + 'ClrFund', + poseidonLibraries ) - fundingRoundFactory = await FundingRoundFactory.deploy(maciFactory.address) + const initClrfundTx = await fundingRoundFactory.init(maciFactory.address) + await initClrfundTx.wait() const transferTx = await maciFactory.transferOwnership( fundingRoundFactory.address ) @@ -180,19 +187,10 @@ describe('End-to-end Tests', function () { }) ) - const vkReigstry = await deployVkRegistry( - deployer, - processZkFile, - tallyZkFile, - maciFactory.address, - circuit - ) + await deployVkRegistry(deployer, maciFactory.address, params) // Deploy new funding round and MACI - const newRoundTx = await fundingRoundFactory.deployNewRound( - roundDuration, - vkReigstry.address - ) + const newRoundTx = await fundingRoundFactory.deployNewRound(roundDuration) maciTransactionHash = newRoundTx.hash const fundingRoundAddress = await fundingRoundFactory.getCurrentRound() fundingRound = await ethers.getContractAt( @@ -202,12 +200,7 @@ describe('End-to-end Tests', function () { const maciAddress = await fundingRound.maci() maci = await ethers.getContractAt('MACI', maciAddress) - pollId = BigInt( - await getEventArg(newRoundTx, maciAddress, 'DeployPoll', '_pollId') - ) - - const setPollTx = await fundingRound.setPoll(pollId) - await setPollTx.wait() + pollId = BigInt(await fundingRound.pollId()) }) async function makeContributions(amounts: BigNumber[]) { @@ -260,21 +253,40 @@ describe('End-to-end Tests', function () { const providerUrl = (provider as any)._hardhatNetwork.config.url // Process messages and tally votes - const genProofResult = await genProofs({ + const mergeMessageResult = await mergeMessages({ + contract: maci.address, + poll_id: pollId.toString(), + num_queue_ops: DEFAULT_SR_QUEUE_OPS, + }) + if (mergeMessageResult !== 0) { + throw new Error('Merge signups failed') + } + + const mergeSignupsResult = await mergeSignups({ + contract: maci.address, + poll_id: pollId.toString(), + num_queue_ops: DEFAULT_SR_QUEUE_OPS, + }) + if (mergeSignupsResult !== 0) { + throw new Error('Merge signups failed') + } + + const genProofArgs = { contract: maci.address, eth_provider: providerUrl, - 'poll-id': pollId.toString(), - 'tally-file': tallyFile, + poll_id: pollId.toString(), + tally_file: tallyFile, rapidsnark: rapidSnarkExe, - 'process-witnessgen': processWitness, - 'tally-witnessgen': tallyWitness, - 'process-zkey': processZkFile, - 'tally-zkey': tallyZkFile, - 'transaction-hash': maciTransactionHash, + process_witnessgen: processWitness, + tally_witnessgen: tallyWitness, + process_zkey: processZkFile, + tally_zkey: tallyZkFile, + transaction_hash: maciTransactionHash, output: outputDir, privkey: coordinatorKeypair.privKey.serialize(), macistate: maciStateFile, - }) + } + const genProofResult = await genProofs(genProofArgs) if (genProofResult !== 0) { throw new Error('generation of proofs failed') } @@ -285,7 +297,7 @@ describe('End-to-end Tests', function () { // Submit proofs to MACI contract await proveOnChain({ contract: maci.address, - poll_id: pollId, + poll_id: pollId.toString(), ppt: ppt.address, eth_privkey: coordinator.privateKey, eth_provider: providerUrl, @@ -389,7 +401,9 @@ describe('End-to-end Tests', function () { ) } - await provider.send('evm_increaseTime', [roundDuration]) + const currentTime = await currentBlockTimestamp(provider) + await provider.send('evm_increaseTime', [roundDuration + currentTime]) + await network.provider.send('evm_mine') const { tally, claims } = await finalizeRound() expect(tally.totalVoiceCredits.spent).to.equal('160000') expect(claims[1]).to.equal(UNIT.mul(58).div(10)) diff --git a/contracts/package.json b/contracts/package.json index f57064e64..18eedfcdb 100644 --- a/contracts/package.json +++ b/contracts/package.json @@ -3,6 +3,7 @@ "version": "4.3.0", "license": "GPL-3.0", "scripts": { + "postinstall": "ln -sf ./node_modules/snarkjs ./node_modules/maci-circuits/node_modules && ln -sf ./node_modules/snarkjs node_modules/@clrfund/maci-cli/node_modules/maci-circuits/node_modules", "hardhat": "hardhat", "build": "hardhat compile", "node": "hardhat node --port 18545 --hostname 0.0.0.0", @@ -28,6 +29,8 @@ "solidity-rlp": "2.0.8" }, "devDependencies": { + "maci-circuits": "1.1.2", + "maci-core": "^1.1.2", "@clrfund/common": "^0.0.1", "@clrfund/maci-cli": "^1.1.3", "@ethereum-waffle/mock-contract": "^3.4.4", @@ -49,9 +52,6 @@ "hardhat": "^2.12.5", "hardhat-contract-sizer": "^2.6.1", "ipfs-only-hash": "^2.0.1", - "maci-circuits": "1.1.2", - "maci-cli": "1.1.1", - "maci-core": "^1.1.2", "solhint": "^3.3.2", "ts-generator": "^0.0.8", "ts-node": "^8.8.1", diff --git a/contracts/utils/deployment.ts b/contracts/utils/deployment.ts index b3ff3d9b2..26cd6f1ce 100644 --- a/contracts/utils/deployment.ts +++ b/contracts/utils/deployment.ts @@ -2,9 +2,16 @@ import { ethers, config } from 'hardhat' import { Signer, Contract, utils } from 'ethers' import { link } from 'ethereum-waffle' import path from 'path' -import { setVerifyingKeys, genProofs, proveOnChain } from '@clrfund/maci-cli' +import { + setVerifyingKeys, + mergeMessages, + mergeSignups, + genProofs, + proveOnChain, +} from '@clrfund/maci-cli' import { readFileSync } from 'fs' +import { MaciParameters } from './maci.ts' const TREE_ARITY = 5 @@ -207,25 +214,21 @@ export async function deployPollProcessorAndTallyer( export async function deployVkRegistry( account: Signer, - processVkPath: string, - tallyVkPath: string, owner: string, - circuit = 'micro' + params: MaciParameters ): Promise { const vkRegistry = await deployContract(account, 'VkRegistry') - const params = CIRCUITS[circuit] - - await setVerifyingKeys({ - vk_registry: vkRegistry.address, - state_tree_depth: params.treeDepths.stateTreeDepth, - int_state_tree_depth: params.treeDepths.intStateTreeDepth, - msg_tree_depth: params.treeDepths.messageTreeDepth, - vote_option_tree_depth: params.treeDepths.voteOptionTreeDepth, - msg_batch_depth: params.treeDepths.messageBatchTreeDepth, - process_messages_zkey: processVkPath, - tally_votes_zkey: tallyVkPath, - }) + const setKeyTx = await vkRegistry.setVerifyingKeys( + params.stateTreeDepth, + params.intStateTreeDepth, + params.messageTreeDepth, + params.voteOptionTreeDepth, + params.messageBatchSize, + params.processVk.asContractParam(), + params.tallyVk.asContractParam() + ) + await setKeyTx.wait() const ownerTx = await vkRegistry.transferOwnership(owner) await ownerTx.wait() @@ -328,4 +331,4 @@ export async function deployPoseidonLibraries( return libraries } -export { proveOnChain, genProofs } +export { mergeMessages, mergeSignups, proveOnChain, genProofs } diff --git a/contracts/utils/maci.ts b/contracts/utils/maci.ts index 2618adfc7..f8da0d32d 100644 --- a/contracts/utils/maci.ts +++ b/contracts/utils/maci.ts @@ -1,4 +1,4 @@ -import { Contract, BigNumber, ContractReceipt } from 'ethers' +import { Contract, BigNumber, ContractReceipt, utils } from 'ethers' import { bnSqrt, createMessage, @@ -10,8 +10,8 @@ import { } from '@clrfund/common' import { genTallyResultCommitment } from 'maci-core' -import { extractVk } from 'maci-circuits' import { VerifyingKey } from 'maci-domainobjs' +import { extractVk } from 'maci-circuits' import { CIRCUITS } from './deployment' import path from 'path' @@ -78,7 +78,7 @@ export class MaciParameters { } static fromConfig(circuit: string, directory: string): MaciParameters { - const config = CIRCUITS[circuit] + const params = CIRCUITS[circuit] const { processZkFile, tallyZkFile } = getCircuitFiles(circuit, directory) const processVk: VerifyingKey = VerifyingKey.fromObj( extractVk(processZkFile) @@ -86,14 +86,9 @@ export class MaciParameters { const tallyVk: VerifyingKey = VerifyingKey.fromObj(extractVk(tallyZkFile)) return new MaciParameters({ - stateTreeDepth: config.stateTreeDepth, - intStateTreeDepth: config.intStateTreeDepth, - messageTreeSubDepth: config.messageTreeSubDepth, - messageTreeDepth: config.messageTreeDepth, - voteOptionTreeDepth: config.voteOptionTreeDepth, - maxMessages: config.maxMessages, - maxVoteOptions: config.maxVoteOptions, - messageBatchSize: config.messageBatchSize, + ...params.maxValues, + ...params.treeDepths, + ...params.batchSizes, processVk, tallyVk, }) diff --git a/package.json b/package.json index 95a2a8939..5d6040a02 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,8 @@ ], "nohoist": [ "**/@nomiclabs/**", + "**/snarkjs/**", + "**/snarkjs", "**/maci-circuits/**", "**/maci-circuits", "**/maci-cli/**", diff --git a/yarn.lock b/yarn.lock index 0b9fecef7..8ae1233ff 100644 --- a/yarn.lock +++ b/yarn.lock @@ -14763,7 +14763,7 @@ maci-circuits@1.1.1: snarkjs "^0.5.0" tmp "^0.2.1" -maci-circuits@1.1.2, maci-circuits@^1.1.1: +maci-circuits@1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/maci-circuits/-/maci-circuits-1.1.2.tgz#56aebc6e8f121dad5c5b3de32a5edd7c920fa5d3" integrity sha512-a1sHBaF7A0bhHY4akJNN6NpX5sVGO8Ae1v3/IrEXyBZKWIvSnKY0rKzwmA3jC3F4OJrht025XUZmNd0gGcQm9g== @@ -14774,43 +14774,11 @@ maci-circuits@1.1.2, maci-circuits@^1.1.1: snarkjs "^0.5.0" tmp "^0.2.1" -maci-cli@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/maci-cli/-/maci-cli-1.1.1.tgz#8feaf6e7262de871281a9a4b12ae79a4a999a871" - integrity sha512-eM7jRnmzenGzjzD11Kw7wZIRDbhXGQGgq8Md9uNqYAOpJZaXtUocwsZsiqqKj+WU1VH5FvN5QikY/aXfIDzZZA== - dependencies: - "@nomiclabs/hardhat-ethers" "^2.0.2" - argparse "^1.0.10" - circom_runtime "^0.1.22" - circomlib "^2.0.5" - ethers "^5.0.0" - ffiasm "0.1.3" - hardhat "^2.0.11" - js-yaml "4.0.0" - maci-circuits "^1.1.1" - maci-common "^1.1.1" - maci-contracts "^1.1.1" - maci-core "^1.1.1" - maci-crypto "^1.1.1" - maci-domainobjs "^1.1.1" - prompt-async "^0.9.9" - shelljs "^0.8.4" - snarkjs "^0.5.0" - source-map-support "^0.5.19" - web3 "^1.3.4" - xmlhttprequest "1.8.0" - zkey-manager "^0.1.1" - maci-common@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/maci-common/-/maci-common-1.1.1.tgz#63b0ff5e42ec5f2a6f549b0e88b0066fcaf5b45e" integrity sha512-+t+LMJHvmfyl6Q5j9Qxf1IbtUno9PxS0jdHcjBa7jdZLsuXu0eYDCD0Z+oTg4oA2jdqn68xua2s2moU43pgOMw== -maci-common@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/maci-common/-/maci-common-1.1.2.tgz#8105633d2425a3ce7cf7b3d6700cf82987287b08" - integrity sha512-KFaKDT6+QlfAX3B3EZVmitdQ2SD76qouQneFwm7OFfu4lF4RWWEak8J4F/lbS8fqJ1wG4PGTgTv7H9swJycCBw== - maci-contracts@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/maci-contracts/-/maci-contracts-1.1.1.tgz#c09bb2db00e43ba54054bc6be86a8c73a85f8551" @@ -14826,22 +14794,6 @@ maci-contracts@1.1.1: hardhat-contract-sizer "^2.0.3" module-alias "^2.2.2" -maci-contracts@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/maci-contracts/-/maci-contracts-1.1.2.tgz#04272c842ad6a9c0812189f228e3b99426d898e0" - integrity sha512-0SGkMjZSmdjRC5zgyxv6LG7AjiGAxuGGfcCaAd1AIRGfvAedIKSxTkkRgC93c0DoYk+XOhMG7mMvswRFmdvGVw== - dependencies: - "@nomiclabs/hardhat-ethers" "^2.2.1" - "@openzeppelin/contracts" "^4.8.0" - argparse "^1.0.10" - circomlib "^2.0.5" - circomlibjs "^0.1.7" - hardhat "^2.12.2" - hardhat-artifactor "^0.2.0" - hardhat-contract-sizer "^2.0.3" - module-alias "^2.2.2" - typescript "^4.2.3" - maci-core@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/maci-core/-/maci-core-1.1.1.tgz#1dd767b2a222c49b7c9bc0f270a0b7096f10463c" @@ -14851,7 +14803,7 @@ maci-core@1.1.1: maci-domainobjs "^1.1.1" module-alias "^2.2.2" -maci-core@^1.1.1, maci-core@^1.1.2: +maci-core@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/maci-core/-/maci-core-1.1.2.tgz#97dbc70a20fe6fad548d62d3d65ca53d61743435" integrity sha512-o2VmIESe0jt3Mai2eiz2UKUeuHKC9aZqwvsfaaVj0GkySmzq6cYDvos/qaF0nw4nsoD+ElbW41v7hu+NfrxLwQ== @@ -20449,7 +20401,7 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== -typescript@^4.2.3, typescript@^4.9.3: +typescript@^4.9.3: version "4.9.5" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== From c5a65c4c0f9f9dc3bc4f716f742a7da8de58b2a0 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Sat, 23 Sep 2023 18:45:39 -0400 Subject: [PATCH 047/338] fix test failures --- contracts/package.json | 2 +- contracts/tests/maciFactory.ts | 8 ++++++-- contracts/tests/round.ts | 1 + 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/contracts/package.json b/contracts/package.json index 18eedfcdb..0998181e2 100644 --- a/contracts/package.json +++ b/contracts/package.json @@ -3,7 +3,7 @@ "version": "4.3.0", "license": "GPL-3.0", "scripts": { - "postinstall": "ln -sf ./node_modules/snarkjs ./node_modules/maci-circuits/node_modules && ln -sf ./node_modules/snarkjs node_modules/@clrfund/maci-cli/node_modules/maci-circuits/node_modules", + "postinstall": "cd node_modules/maci-circuits/node_modules && ln -sf ../../snarkjs && cd ../../@clrfund/maci-cli/node_modules/maci-circuits/node_modules && ln -sf ../../../../../snarkjs", "hardhat": "hardhat", "build": "hardhat compile", "node": "hardhat node --port 18545 --hostname 0.0.0.0", diff --git a/contracts/tests/maciFactory.ts b/contracts/tests/maciFactory.ts index 1e30c51fe..5b0ab2597 100644 --- a/contracts/tests/maciFactory.ts +++ b/contracts/tests/maciFactory.ts @@ -98,13 +98,14 @@ describe('MACI factory', () => { initialVoiceCreditProxy.address, topupContract.address, duration, + coordinator.address, coordinatorPubKey ) await expect(maciDeployed).to.emit(maciFactory, 'MaciDeployed') const deployTx = await maciDeployed // TODO: reduce the gas usage - expect(await getGasUsage(deployTx)).lessThan(15080973) + expect(await getGasUsage(deployTx)).lessThan(15086973) }) it('allows only owner to deploy MACI', async () => { @@ -119,6 +120,7 @@ describe('MACI factory', () => { initialVoiceCreditProxy.address, topupContract.address, duration, + coordinator.address, coordinatorPubKey ) ).to.be.revertedWith('Ownable: caller is not the owner') @@ -132,8 +134,9 @@ describe('MACI factory', () => { const deployTx = await maciFactory.deployMaci( signUpGatekeeper.address, initialVoiceCreditProxy.address, - coordinator.address, + topupContract.address, duration, + coordinator.address, coordinatorPubKey ) @@ -160,6 +163,7 @@ describe('MACI factory', () => { initialVoiceCreditProxy.address, topupContract.address, duration, + coordinator.address, coordinatorPubKey ) diff --git a/contracts/tests/round.ts b/contracts/tests/round.ts index 38d9d4028..e6c1fedf1 100644 --- a/contracts/tests/round.ts +++ b/contracts/tests/round.ts @@ -140,6 +140,7 @@ describe('Funding Round', () => { fundingRound.address, token.address, pollDuration, + coordinator.address, coordinatorPubKey.asContractParam() ) From 148119077ed61b933afb6ddae8b1d3f099e08138 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Sat, 23 Sep 2023 20:06:36 -0400 Subject: [PATCH 048/338] vote option tree depth is in poll in maci v1 --- contracts/e2e/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/e2e/index.ts b/contracts/e2e/index.ts index f7a382332..f97b91ff0 100644 --- a/contracts/e2e/index.ts +++ b/contracts/e2e/index.ts @@ -311,7 +311,7 @@ describe('End-to-end Tests', function () { // add tally results to funding round const batchSize = Number(process.env.TALLY_BATCH_SIZE) || 20 - const recipientTreeDepth = (await maci.treeDepths()).voteOptionTreeDepth + const recipientTreeDepth = params.voteOptionTreeDepth await addTallyResultsBatch( fundingRound.connect(coordinator), recipientTreeDepth, From fd6da005ebbb72a7ab158bd0e37ea0ccf54f9b0c Mon Sep 17 00:00:00 2001 From: yuetloo Date: Sat, 23 Sep 2023 21:08:40 -0400 Subject: [PATCH 049/338] remove maci --- .github/workflows/test-e2e.yml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/.github/workflows/test-e2e.yml b/.github/workflows/test-e2e.yml index 47416140c..0e3f9df42 100644 --- a/.github/workflows/test-e2e.yml +++ b/.github/workflows/test-e2e.yml @@ -14,12 +14,6 @@ jobs: e2e-test: runs-on: ubuntu-22.04 steps: - - name: Checkout MACI - uses: actions/checkout@v3 - with: - repository: privacy-scaling-explorations/maci - ref: v0.10.1 - path: maci - name: Use Node.js ${{ env.NODE_VERSION }} uses: actions/setup-node@v3 with: From 7880f8107adc4739db7b0e3e06dbd488bbdeb2fa Mon Sep 17 00:00:00 2001 From: yuetloo Date: Sun, 24 Sep 2023 22:53:20 -0400 Subject: [PATCH 050/338] use the same function as genProof to hash spentVoiceCreditsHash --- common/src/utils.ts | 9 ++++++++- contracts/utils/maci.ts | 9 ++++----- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/common/src/utils.ts b/common/src/utils.ts index f52844878..211cdfaad 100644 --- a/common/src/utils.ts +++ b/common/src/utils.ts @@ -1,5 +1,11 @@ import { BigNumber } from 'ethers' -import { genRandomSalt, IncrementalQuinTree, hash5, hash2 } from 'maci-crypto' +import { + genRandomSalt, + IncrementalQuinTree, + hashLeftRight, + hash5, + hash2, +} from 'maci-crypto' import { PubKey, PCommand, Message } from 'maci-domainobjs' import { Keypair } from './keypair' import { utils } from 'ethers' @@ -116,5 +122,6 @@ export { IncrementalQuinTree, hash5, hash2, + hashLeftRight, LEAVES_PER_NODE, } diff --git a/contracts/utils/maci.ts b/contracts/utils/maci.ts index f8da0d32d..bd9d134d8 100644 --- a/contracts/utils/maci.ts +++ b/contracts/utils/maci.ts @@ -5,7 +5,7 @@ import { getRecipientClaimData, IncrementalQuinTree, hash5, - hash2, + hashLeftRight, LEAVES_PER_NODE, } from '@clrfund/common' @@ -178,10 +178,10 @@ export function getRecipientTallyResult( resultTree.insert(leaf) } const resultProof = resultTree.genMerklePath(recipientIndex) - const spentVoiceCreditsHash = hash2([ + const spentVoiceCreditsHash = hashLeftRight( BigInt(tally.totalSpentVoiceCredits.spent), - BigInt(tally.totalSpentVoiceCredits.salt), - ]) + BigInt(tally.totalSpentVoiceCredits.salt) + ) const perVOSpentVoiceCreditsHash = genTallyResultCommitment( tally.perVOSpentVoiceCredits.tally.map((x) => BigInt(x)), @@ -224,7 +224,6 @@ export function getRecipientTallyResultsBatch( tallyData.map((item) => item[1]), tallyData.map((item) => item[2]), tallyData.map((item) => item[3]), - // TODO: fix this after getting the result of tally tallyData.map((item) => item[4]), tallyData.map((item) => item[5]), tally.newTallyCommitment, From a3eec2d3b46a36b624ae23e419491999debac0ca Mon Sep 17 00:00:00 2001 From: yuetloo Date: Mon, 25 Sep 2023 11:28:25 -0400 Subject: [PATCH 051/338] debug trace newTallyCommitment --- contracts/utils/maci.ts | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/contracts/utils/maci.ts b/contracts/utils/maci.ts index bd9d134d8..63e00cdbc 100644 --- a/contracts/utils/maci.ts +++ b/contracts/utils/maci.ts @@ -1,10 +1,11 @@ -import { Contract, BigNumber, ContractReceipt, utils } from 'ethers' +import { Contract, BigNumber, ContractReceipt } from 'ethers' import { bnSqrt, createMessage, getRecipientClaimData, IncrementalQuinTree, hash5, + hash3, hashLeftRight, LEAVES_PER_NODE, } from '@clrfund/common' @@ -188,6 +189,26 @@ export function getRecipientTallyResult( BigInt(tally.perVOSpentVoiceCredits.salt), recipientTreeDepth ) + console.log('spentVoiceCreditsHash', spentVoiceCreditsHash.toString()) + console.log( + 'perVOSpentVoiceCreditsHash', + perVOSpentVoiceCreditsHash.toString() + ) + const newResultsCommitment = genTallyResultCommitment( + tally.results.tally.map((x) => BigInt(x)), + BigInt(tally.results.salt), + recipientTreeDepth + ) + const newTallyCommitment = hash3([ + newResultsCommitment, + spentVoiceCreditsHash, + perVOSpentVoiceCreditsHash, + ]) + console.log('calculated newTallyCommitment', newTallyCommitment.toString()) + console.log( + 'tally file newTallyCommitment', + tally.newTallyCommitment.toString() + ) return [ recipientTreeDepth, From 7f5d3d7a5a801bd3f447de857e14e5d3506a9120 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Mon, 25 Sep 2023 11:47:27 -0400 Subject: [PATCH 052/338] add missing hash3 --- common/src/utils.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/common/src/utils.ts b/common/src/utils.ts index 211cdfaad..bf188feec 100644 --- a/common/src/utils.ts +++ b/common/src/utils.ts @@ -4,6 +4,7 @@ import { IncrementalQuinTree, hashLeftRight, hash5, + hash3, hash2, } from 'maci-crypto' import { PubKey, PCommand, Message } from 'maci-domainobjs' @@ -122,6 +123,7 @@ export { IncrementalQuinTree, hash5, hash2, + hash3, hashLeftRight, LEAVES_PER_NODE, } From c776251504f92d91450b2b849b17c44bd209c355 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Mon, 25 Sep 2023 11:49:32 -0400 Subject: [PATCH 053/338] more debug trace --- contracts/utils/maci.ts | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/contracts/utils/maci.ts b/contracts/utils/maci.ts index 63e00cdbc..ba97eb6c9 100644 --- a/contracts/utils/maci.ts +++ b/contracts/utils/maci.ts @@ -205,11 +205,12 @@ export function getRecipientTallyResult( perVOSpentVoiceCreditsHash, ]) console.log('calculated newTallyCommitment', newTallyCommitment.toString()) - console.log( - 'tally file newTallyCommitment', - tally.newTallyCommitment.toString() - ) - + console.log('tally file newTallyCommitment', tally.newTallyCommitment) + if (newTallyCommitment.toString() === newTallyCommitment) { + console.log('same newTallyCommitment') + } else { + console.log('different newTallyCommitment') + } return [ recipientTreeDepth, recipientIndex, From 606adcc04a13332660352f2763cbb930d93e7c1a Mon Sep 17 00:00:00 2001 From: yuetloo Date: Mon, 25 Sep 2023 12:20:58 -0400 Subject: [PATCH 054/338] refactor code --- contracts/utils/maci.ts | 72 +++++++++++++++++++---------------------- 1 file changed, 34 insertions(+), 38 deletions(-) diff --git a/contracts/utils/maci.ts b/contracts/utils/maci.ts index ba97eb6c9..b37c3a5db 100644 --- a/contracts/utils/maci.ts +++ b/contracts/utils/maci.ts @@ -179,45 +179,11 @@ export function getRecipientTallyResult( resultTree.insert(leaf) } const resultProof = resultTree.genMerklePath(recipientIndex) - const spentVoiceCreditsHash = hashLeftRight( - BigInt(tally.totalSpentVoiceCredits.spent), - BigInt(tally.totalSpentVoiceCredits.salt) - ) - - const perVOSpentVoiceCreditsHash = genTallyResultCommitment( - tally.perVOSpentVoiceCredits.tally.map((x) => BigInt(x)), - BigInt(tally.perVOSpentVoiceCredits.salt), - recipientTreeDepth - ) - console.log('spentVoiceCreditsHash', spentVoiceCreditsHash.toString()) - console.log( - 'perVOSpentVoiceCreditsHash', - perVOSpentVoiceCreditsHash.toString() - ) - const newResultsCommitment = genTallyResultCommitment( - tally.results.tally.map((x) => BigInt(x)), - BigInt(tally.results.salt), - recipientTreeDepth - ) - const newTallyCommitment = hash3([ - newResultsCommitment, - spentVoiceCreditsHash, - perVOSpentVoiceCreditsHash, - ]) - console.log('calculated newTallyCommitment', newTallyCommitment.toString()) - console.log('tally file newTallyCommitment', tally.newTallyCommitment) - if (newTallyCommitment.toString() === newTallyCommitment) { - console.log('same newTallyCommitment') - } else { - console.log('different newTallyCommitment') - } return [ recipientTreeDepth, recipientIndex, result, resultProof.pathElements.map((x) => x.map((y) => y.toString())), - spentVoiceCreditsHash, - perVOSpentVoiceCreditsHash, ] } @@ -246,9 +212,6 @@ export function getRecipientTallyResultsBatch( tallyData.map((item) => item[1]), tallyData.map((item) => item[2]), tallyData.map((item) => item[3]), - tallyData.map((item) => item[4]), - tallyData.map((item) => item[5]), - tally.newTallyCommitment, ] } @@ -262,6 +225,34 @@ export async function addTallyResultsBatch( ): Promise { let totalGasUsed = BigNumber.from(0) const { tally } = tallyData.results + + const spentVoiceCreditsHash = hashLeftRight( + BigInt(tally.totalSpentVoiceCredits.spent), + BigInt(tally.totalSpentVoiceCredits.salt) + ) + + const perVOSpentVoiceCreditsHash = genTallyResultCommitment( + tally.perVOSpentVoiceCredits.tally.map((x) => BigInt(x)), + BigInt(tally.perVOSpentVoiceCredits.salt), + recipientTreeDepth + ) + + const newResultCommitment = genTallyResultCommitment( + tally.results.tally.map((x) => BigInt(x)), + BigInt(tally.results.salt), + recipientTreeDepth + ) + const newTallyCommitment = hash3( + newResultCommitment, + spentVoiceCreditsHash, + perVOSpentVoiceCreditsHash + ) + if ('0x' + newTallyCommitment.toString(16) === tally.newTallyCommitment) { + console.log('OK') + } else { + console.error('Error: the newTallyCommitment is invalid.') + } + for (let i = startIndex; i < tally.length; i = i + batchSize) { const data = getRecipientTallyResultsBatch( i, @@ -270,7 +261,12 @@ export async function addTallyResultsBatch( batchSize ) - const tx = await fundingRound.addTallyResultsBatch(...data) + const tx = await fundingRound.addTallyResultsBatch( + ...data, + '0x' + BigInt(spentVoiceCreditsHash).toString(16), + '0x' + BigInt(perVOSpentVoiceCreditsHash).toString(16), + tally.newTallyCommitment + ) const receipt = await tx.wait() if (callback) { // the 2nd element in the data array has the array of From c80b389a4c80a2c2b61cef2c523e34413c70748d Mon Sep 17 00:00:00 2001 From: yuetloo Date: Mon, 25 Sep 2023 12:38:06 -0400 Subject: [PATCH 055/338] fix undefined spent error --- contracts/utils/maci.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/contracts/utils/maci.ts b/contracts/utils/maci.ts index b37c3a5db..73a147e21 100644 --- a/contracts/utils/maci.ts +++ b/contracts/utils/maci.ts @@ -227,19 +227,19 @@ export async function addTallyResultsBatch( const { tally } = tallyData.results const spentVoiceCreditsHash = hashLeftRight( - BigInt(tally.totalSpentVoiceCredits.spent), - BigInt(tally.totalSpentVoiceCredits.salt) + BigInt(tallyData.totalSpentVoiceCredits.spent), + BigInt(tallyData.totalSpentVoiceCredits.salt) ) const perVOSpentVoiceCreditsHash = genTallyResultCommitment( - tally.perVOSpentVoiceCredits.tally.map((x) => BigInt(x)), - BigInt(tally.perVOSpentVoiceCredits.salt), + tallyData.perVOSpentVoiceCredits.tally.map((x) => BigInt(x)), + BigInt(tallyData.perVOSpentVoiceCredits.salt), recipientTreeDepth ) const newResultCommitment = genTallyResultCommitment( - tally.results.tally.map((x) => BigInt(x)), - BigInt(tally.results.salt), + tally.map((x) => BigInt(x)), + BigInt(tallyData.results.salt), recipientTreeDepth ) const newTallyCommitment = hash3( @@ -247,7 +247,7 @@ export async function addTallyResultsBatch( spentVoiceCreditsHash, perVOSpentVoiceCreditsHash ) - if ('0x' + newTallyCommitment.toString(16) === tally.newTallyCommitment) { + if ('0x' + newTallyCommitment.toString(16) === tallyData.newTallyCommitment) { console.log('OK') } else { console.error('Error: the newTallyCommitment is invalid.') From 2b83328622194a137c769e9d8100cbf6e9a677ae Mon Sep 17 00:00:00 2001 From: yuetloo Date: Mon, 25 Sep 2023 15:54:46 -0400 Subject: [PATCH 056/338] update test data --- contracts/tests/data/testTallySmall.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/tests/data/testTallySmall.json b/contracts/tests/data/testTallySmall.json index 4b6f13bc8..1c89ce7c7 100644 --- a/contracts/tests/data/testTallySmall.json +++ b/contracts/tests/data/testTallySmall.json @@ -2,7 +2,7 @@ "provider": "https://arb-mainnet.g.alchemy.com/v2/S67DO8ELPSxGxsbeETgvuMqG6AFsr2ux", "maci": "0x938fedD63C6770Ba50266Fe4C548A09FD2D1c9f1", "pollId": "0", - "newTallyCommitment": "0x26e6ae35c82006eff6408b713d477307b2da16c7a1ff15fb46c0762ee308e88a", + "newTallyCommitment": "0x83a547530d182de4996ce607108d95dd2c8a9a2e0de402575ed5f758eea1c4", "results": { "commitment": "0x2f44c97ce649078012fd686eaf996fc6b8d817e11ab574f0d0a0d750ee1ec101", "tally": [ From 80915e920ebc1a1a54666befdd94b0124d08b7b9 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Mon, 25 Sep 2023 16:08:00 -0400 Subject: [PATCH 057/338] code cleanup --- contracts/contracts/FundingRound.sol | 8 +++---- contracts/tests/round.ts | 4 ++-- contracts/utils/maci.ts | 31 ++++++++++++++-------------- 3 files changed, 22 insertions(+), 21 deletions(-) diff --git a/contracts/contracts/FundingRound.sol b/contracts/contracts/FundingRound.sol index 88864c2df..927530ccc 100644 --- a/contracts/contracts/FundingRound.sol +++ b/contracts/contracts/FundingRound.sol @@ -640,8 +640,8 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom uint256[] calldata _voteOptionIndices, uint256[] calldata _tallyResults, uint256[][][] calldata _tallyResultProofs, - uint256[] calldata _spentVoiceCreditsHashes, - uint256[] calldata _perVOSpentVoiceCreditsHashes, + uint256 _spentVoiceCreditsHashes, + uint256 _perVOSpentVoiceCreditsHashes, uint256 _tallyCommitment ) external @@ -660,8 +660,8 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom _voteOptionIndices[i], _tallyResults[i], _tallyResultProofs[i], - _spentVoiceCreditsHashes[i], - _perVOSpentVoiceCreditsHashes[i], + _spentVoiceCreditsHashes, + _perVOSpentVoiceCreditsHashes, _tallyCommitment ); } diff --git a/contracts/tests/round.ts b/contracts/tests/round.ts index e6c1fedf1..3d489525b 100644 --- a/contracts/tests/round.ts +++ b/contracts/tests/round.ts @@ -1560,7 +1560,7 @@ describe('Funding Round', () => { smallTallyTestData, batchSize ) - expect(data).to.have.lengthOf(7) + expect(data).to.have.lengthOf(3) expect(data[1]).to.have.lengthOf(5) }) } @@ -1571,7 +1571,7 @@ describe('Funding Round', () => { smallTallyTestData, batchSize ) - expect(data).to.have.lengthOf(7) + expect(data).to.have.lengthOf(3) expect(data[1]).to.have.lengthOf(1) }) it(`should fail with startIndex ${total}`, () => { diff --git a/contracts/utils/maci.ts b/contracts/utils/maci.ts index 73a147e21..054917347 100644 --- a/contracts/utils/maci.ts +++ b/contracts/utils/maci.ts @@ -166,7 +166,7 @@ export function getRecipientTallyResult( recipientIndex: number, recipientTreeDepth: number, tally: any -): any[] { +): { recipientIndex: number; result: string; proof: any[] } { // Create proof for tally result const result = tally.results.tally[recipientIndex] const resultTree = new IncrementalQuinTree( @@ -179,12 +179,11 @@ export function getRecipientTallyResult( resultTree.insert(leaf) } const resultProof = resultTree.genMerklePath(recipientIndex) - return [ - recipientTreeDepth, + return { recipientIndex, result, - resultProof.pathElements.map((x) => x.map((y) => y.toString())), - ] + proof: resultProof.pathElements.map((x) => x.map((y) => y.toString())), + } } export function getRecipientTallyResultsBatch( @@ -208,10 +207,9 @@ export function getRecipientTallyResultsBatch( } return [ - recipientTreeDepth, - tallyData.map((item) => item[1]), - tallyData.map((item) => item[2]), - tallyData.map((item) => item[3]), + tallyData.map((item) => item.recipientIndex), + tallyData.map((item) => item.result), + tallyData.map((item) => item.proof), ] } @@ -242,11 +240,13 @@ export async function addTallyResultsBatch( BigInt(tallyData.results.salt), recipientTreeDepth ) - const newTallyCommitment = hash3( + + const newTallyCommitment = hash3([ newResultCommitment, spentVoiceCreditsHash, - perVOSpentVoiceCreditsHash - ) + perVOSpentVoiceCreditsHash, + ]) + if ('0x' + newTallyCommitment.toString(16) === tallyData.newTallyCommitment) { console.log('OK') } else { @@ -262,10 +262,11 @@ export async function addTallyResultsBatch( ) const tx = await fundingRound.addTallyResultsBatch( + recipientTreeDepth, ...data, - '0x' + BigInt(spentVoiceCreditsHash).toString(16), - '0x' + BigInt(perVOSpentVoiceCreditsHash).toString(16), - tally.newTallyCommitment + BigInt(spentVoiceCreditsHash).toString(), + BigInt(perVOSpentVoiceCreditsHash).toString(), + tallyData.newTallyCommitment ) const receipt = await tx.wait() if (callback) { From bca430c25c8d7802b70fea84a5794c01b34191db Mon Sep 17 00:00:00 2001 From: yuetloo Date: Mon, 25 Sep 2023 18:13:15 -0400 Subject: [PATCH 058/338] remove unused import --- contracts/utils/deployment.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/contracts/utils/deployment.ts b/contracts/utils/deployment.ts index 26cd6f1ce..39ddbdb91 100644 --- a/contracts/utils/deployment.ts +++ b/contracts/utils/deployment.ts @@ -3,7 +3,6 @@ import { Signer, Contract, utils } from 'ethers' import { link } from 'ethereum-waffle' import path from 'path' import { - setVerifyingKeys, mergeMessages, mergeSignups, genProofs, From 3d675bcfc431e9000c12150c098746bde5f1a55c Mon Sep 17 00:00:00 2001 From: yuetloo Date: Mon, 25 Sep 2023 18:31:42 -0400 Subject: [PATCH 059/338] compute tally result commitment using tally salt --- contracts/contracts/FundingRound.sol | 6 ++++++ contracts/package.json | 2 +- contracts/tests/maciFactory.ts | 2 +- contracts/tests/round.ts | 2 +- contracts/utils/maci.ts | 7 ++++++- yarn.lock | 15 +++++++++++++++ 6 files changed, 30 insertions(+), 4 deletions(-) diff --git a/contracts/contracts/FundingRound.sol b/contracts/contracts/FundingRound.sol index 927530ccc..7d4602df5 100644 --- a/contracts/contracts/FundingRound.sol +++ b/contracts/contracts/FundingRound.sol @@ -585,6 +585,7 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom * @param _voteOptionIndex Vote option index. * @param _tallyResult The results of vote tally for the recipients. * @param _tallyResultProof Proofs of correctness of the vote tally results. + * @param _tallyResultSalt the respective salt in the results object in the tally.json * @param _spentVoiceCreditsHash hashLeftRight(number of spent voice credits, spent salt) * @param _perVOSpentVoiceCreditsHash hashLeftRight(merkle root of the no spent voice credits per vote option, perVOSpentVoiceCredits salt) * @param _tallyCommitment newTallyCommitment field in the tally.json @@ -594,6 +595,7 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom uint256 _voteOptionIndex, uint256 _tallyResult, uint256[][] calldata _tallyResultProof, + uint256 _tallyResultSalt, uint256 _spentVoiceCreditsHash, uint256 _perVOSpentVoiceCreditsHash, uint256 _tallyCommitment @@ -609,6 +611,7 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom _voteOptionIndex, _tallyResult, _tallyResultProof, + _tallyResultSalt, _spentVoiceCreditsHash, _perVOSpentVoiceCreditsHash, _tallyCommitment @@ -631,6 +634,7 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom * @param _voteOptionIndices Vote option index. * @param _tallyResults The results of vote tally for the recipients. * @param _tallyResultProofs Proofs of correctness of the vote tally results. + * @param _tallyResultSalt the respective salt in the results object in the tally.json * @param _spentVoiceCreditsHashes hashLeftRight(number of spent voice credits, spent salt) * @param _perVOSpentVoiceCreditsHashes hashLeftRight(merkle root of the no spent voice credits per vote option, perVOSpentVoiceCredits salt) * @param _tallyCommitment newTallyCommitment field in the tally.json @@ -640,6 +644,7 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom uint256[] calldata _voteOptionIndices, uint256[] calldata _tallyResults, uint256[][][] calldata _tallyResultProofs, + uint256 _tallyResultSalt, uint256 _spentVoiceCreditsHashes, uint256 _perVOSpentVoiceCreditsHashes, uint256 _tallyCommitment @@ -660,6 +665,7 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom _voteOptionIndices[i], _tallyResults[i], _tallyResultProofs[i], + _tallyResultSalt, _spentVoiceCreditsHashes, _perVOSpentVoiceCreditsHashes, _tallyCommitment diff --git a/contracts/package.json b/contracts/package.json index 0998181e2..9c1e1838b 100644 --- a/contracts/package.json +++ b/contracts/package.json @@ -25,7 +25,7 @@ "dependencies": { "@openzeppelin/contracts": "4.9.0", "dotenv": "^8.2.0", - "maci-contracts": "1.1.1", + "maci-contracts": "npm:@clrfund/maci-contracts@1.1.3", "solidity-rlp": "2.0.8" }, "devDependencies": { diff --git a/contracts/tests/maciFactory.ts b/contracts/tests/maciFactory.ts index 5b0ab2597..3191a2f06 100644 --- a/contracts/tests/maciFactory.ts +++ b/contracts/tests/maciFactory.ts @@ -105,7 +105,7 @@ describe('MACI factory', () => { const deployTx = await maciDeployed // TODO: reduce the gas usage - expect(await getGasUsage(deployTx)).lessThan(15086973) + expect(await getGasUsage(deployTx)).lessThan(15094000) }) it('allows only owner to deploy MACI', async () => { diff --git a/contracts/tests/round.ts b/contracts/tests/round.ts index 3d489525b..5753bfd21 100644 --- a/contracts/tests/round.ts +++ b/contracts/tests/round.ts @@ -1340,7 +1340,7 @@ describe('Funding Round', () => { // await maci.mock.treeDepths.returns(10, 10, tallyTreeDepth) const tallyWith1Contributor = { newTallyCommitment: - '0x26e6ae35c82006eff6408b713d477307b2da16c7a1ff15fb46c0762ee308e88a', + '0x2a7a1fe8c2773fdba262033741655070ba52fea7c1333049ec87c2c248e600bb', results: { commitment: '0x2f44c97ce649078012fd686eaf996fc6b8d817e11ab574f0d0a0d750ee1ec101', diff --git a/contracts/utils/maci.ts b/contracts/utils/maci.ts index 054917347..9d667a83d 100644 --- a/contracts/utils/maci.ts +++ b/contracts/utils/maci.ts @@ -250,7 +250,11 @@ export async function addTallyResultsBatch( if ('0x' + newTallyCommitment.toString(16) === tallyData.newTallyCommitment) { console.log('OK') } else { - console.error('Error: the newTallyCommitment is invalid.') + console.error( + 'Error: the newTallyCommitment is invalid.', + '0x' + newTallyCommitment.toString(16), + tallyData.newTallyCommitment + ) } for (let i = startIndex; i < tally.length; i = i + batchSize) { @@ -264,6 +268,7 @@ export async function addTallyResultsBatch( const tx = await fundingRound.addTallyResultsBatch( recipientTreeDepth, ...data, + BigInt(tallyData.results.salt).toString(), BigInt(spentVoiceCreditsHash).toString(), BigInt(perVOSpentVoiceCreditsHash).toString(), tallyData.newTallyCommitment diff --git a/yarn.lock b/yarn.lock index 8ae1233ff..0b53a154e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -14794,6 +14794,21 @@ maci-contracts@1.1.1: hardhat-contract-sizer "^2.0.3" module-alias "^2.2.2" +"maci-contracts@npm:@clrfund/maci-contracts@1.1.3": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@clrfund/maci-contracts/-/maci-contracts-1.1.3.tgz#43456c8427db5c08e63c03eeeb7cd01467878a0b" + integrity sha512-OnP+vm8ZjTyKtOWbTvXHG8a7nuOZdK12TeSm9Ugnebuv/u/1qgAfVqAfnKp35hKsPWBV7oO/LiTG5NPUmB40tA== + dependencies: + "@nomiclabs/hardhat-ethers" "^2.2.1" + "@openzeppelin/contracts" "^4.8.0" + argparse "^1.0.10" + circomlib "^2.0.5" + circomlibjs "^0.1.7" + hardhat "^2.12.2" + hardhat-artifactor "^0.2.0" + hardhat-contract-sizer "^2.0.3" + module-alias "^2.2.2" + maci-core@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/maci-core/-/maci-core-1.1.1.tgz#1dd767b2a222c49b7c9bc0f270a0b7096f10463c" From cff5a2e8dc9f21da6f7fae1f404a682676cf5865 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Tue, 26 Sep 2023 00:29:19 -0400 Subject: [PATCH 060/338] fix undefined fundingRoundFactory --- contracts/e2e/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/e2e/index.ts b/contracts/e2e/index.ts index f97b91ff0..0f08f5d81 100644 --- a/contracts/e2e/index.ts +++ b/contracts/e2e/index.ts @@ -102,7 +102,7 @@ describe('End-to-end Tests', function () { console.log('after setting maci', setMaciTx.hash) await setMaciTx.wait() - const fundingRoundFactory = await deployContractWithLinkedLibraries( + fundingRoundFactory = await deployContractWithLinkedLibraries( deployer, 'ClrFund', poseidonLibraries From 22386bbbdfc5e7f6eb9de5005bb1f44959a18d6a Mon Sep 17 00:00:00 2001 From: yuetloo Date: Tue, 3 Oct 2023 23:28:30 -0400 Subject: [PATCH 061/338] update documentation --- README.md | 9 +-------- contracts/e2e/index.ts | 3 +-- docs/tally-verify.md | 5 +++++ 3 files changed, 7 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 84622234f..3d4b47ef1 100644 --- a/README.md +++ b/README.md @@ -62,14 +62,7 @@ In a future version, we plan to address this by routing ETH and token contributi ## Development -### Install Node v12 with nvm - -```sh -nvm install 12 -nvm use 12 -``` - -If using the M1 chip in Apple products, you need to use Node v16. +### Install Node v16 with nvm ```sh nvm install 16 diff --git a/contracts/e2e/index.ts b/contracts/e2e/index.ts index 0f08f5d81..7ec594be7 100644 --- a/contracts/e2e/index.ts +++ b/contracts/e2e/index.ts @@ -99,7 +99,6 @@ describe('End-to-end Tests', function () { const setMaciTx = await maciFactory.setMaciParameters( ...params.asContractParam() ) - console.log('after setting maci', setMaciTx.hash) await setMaciTx.wait() fundingRoundFactory = await deployContractWithLinkedLibraries( @@ -259,7 +258,7 @@ describe('End-to-end Tests', function () { num_queue_ops: DEFAULT_SR_QUEUE_OPS, }) if (mergeMessageResult !== 0) { - throw new Error('Merge signups failed') + throw new Error('Merge message failed') } const mergeSignupsResult = await mergeSignups({ diff --git a/docs/tally-verify.md b/docs/tally-verify.md index 2ac34b7e2..57ab13bb3 100644 --- a/docs/tally-verify.md +++ b/docs/tally-verify.md @@ -263,3 +263,8 @@ yarn hardhat export-round --output-dir ../vue-app/src/rounds --network ## Troubleshooting If you encountered `core dumped` while running the genProofs script as seen in this [issue](https://github.com/clrfund/monorepo/issues/383), make sure the files are not corrupted due to disk space issue, e.g. check file sizes, checksum, and missing files. + +Also, lack of memory can also cause `core dump`, try to work around it by setting `max-old-space-size` before rrunning the tally script. +``` +export NODE_OPTIONS=--max-old-space-size=4096 +``` From 43eddc6b1442faf6468faebd4ce79201d4af4dfa Mon Sep 17 00:00:00 2001 From: Ubuntu Date: Thu, 12 Oct 2023 16:46:39 +0000 Subject: [PATCH 062/338] fix e2e test cases for MACI v1 --- .gitignore | 2 + contracts/contracts/ClrFund.sol | 6 +- contracts/contracts/FundingRound.sol | 123 ++++++++++- contracts/e2e/index.ts | 294 ++++++++++++++++++++++----- contracts/package.json | 6 +- package.json | 2 + yarn.lock | 28 +-- 7 files changed, 365 insertions(+), 96 deletions(-) diff --git a/.gitignore b/.gitignore index abd370f7d..e35df81b3 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,5 @@ vetur.config.js # Local Netlify folder .netlify .DS_Store + +contracts/MyLogFile.log diff --git a/contracts/contracts/ClrFund.sol b/contracts/contracts/ClrFund.sol index deef49ce4..f765bab53 100644 --- a/contracts/contracts/ClrFund.sol +++ b/contracts/contracts/ClrFund.sol @@ -229,7 +229,9 @@ contract ClrFund is OwnableUpgradeable, IPubKey, SnarkCommon, Params { */ function transferMatchingFunds( uint256 _totalSpent, - uint256 _totalSpentSalt + uint256 _totalSpentSalt, + uint256 _newResultCommitment, + uint256 _perVOSpentVoiceCreditsHash ) external onlyOwner @@ -253,7 +255,7 @@ contract ClrFund is OwnableUpgradeable, IPubKey, SnarkCommon, Params { roundToken.safeTransferFrom(fundingSource, address(currentRound), contribution); } } - currentRound.finalize(_totalSpent, _totalSpentSalt); + currentRound.finalize(_totalSpent, _totalSpentSalt, _newResultCommitment, _perVOSpentVoiceCreditsHash); emit RoundFinalized(address(currentRound)); } diff --git a/contracts/contracts/FundingRound.sol b/contracts/contracts/FundingRound.sol index 7d4602df5..d0432a25b 100644 --- a/contracts/contracts/FundingRound.sol +++ b/contracts/contracts/FundingRound.sol @@ -46,9 +46,12 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom error VoteResultsAlreadyVerified(); error IncorrectTallyResult(); error IncorrectSpentVoiceCredits(); + error IncorrectPerVOSpentVoiceCredits(); error VotingIsNotOver(); error FundsAlreadyClaimed(); error TallyHashNotPublished(); + error BudgetGreaterThanVotes(); + error IncompleteTallyResults(); // Constants uint256 private constant MAX_VOICE_CREDITS = 10 ** 9; // MACI allows 2 ** 32 voice credits max @@ -425,8 +428,14 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom revert NoProjectHasMoreThanOneVote(); } - return (_budget - contributions) * ALPHA_PRECISION / - (voiceCreditFactor * (_totalVotesSquares - _totalSpent)); + uint256 quadraticVotes = voiceCreditFactor * _totalVotesSquares; + if (_budget < quadraticVotes) { + _alpha = (_budget - contributions) * ALPHA_PRECISION / (quadraticVotes - contributions); + } else { + // protect against overflow error in getAllocatedAmount() + _alpha = ALPHA_PRECISION; + } + } /** @@ -439,7 +448,9 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom */ function finalize( uint256 _totalSpent, - uint256 _totalSpentSalt + uint256 _totalSpentSalt, + uint256 _newResultCommitment, + uint256 _perVOSpentVoiceCreditsHash ) external onlyOwner @@ -462,20 +473,24 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom // make sure we have received all the tally results - /* (,,, uint8 voteOptionTreeDepth) = poll.treeDepths(); + (,,, uint8 voteOptionTreeDepth) = poll.treeDepths(); uint256 totalResults = uint256(LEAVES_PER_NODE) ** uint256(voteOptionTreeDepth); - require(totalTallyResults == totalResults, 'FundingRound: Incomplete tally results'); - */ + if ( totalTallyResults != totalResults ) { + revert IncompleteTallyResults(); + } + /* TODO how to check this in maci v1?? totalVotes = maci.totalVotes(); // If nobody voted, the round should be cancelled to avoid locking of matching funds require(totalVotes > 0, 'FundingRound: No votes'); */ - bool verified = poll.verifySpentVoiceCredits(_totalSpent, _totalSpentSalt); +/* + bool verified = verifySpentVoiceCredits(_totalSpent, _totalSpentSalt, _newResultCommitment, _perVOSpentVoiceCreditsHash); if (!verified) { revert IncorrectSpentVoiceCredits(); } +*/ totalSpent = _totalSpent; // Total amount of spent voice credits is the size of the pool of direct rewards. @@ -489,6 +504,85 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom isFinalized = true; } +/* + function verifySpentVoiceCredits( + uint256 _totalSpent, + uint256 _totalSpentSalt, + uint256 _newResultCommitment, + uint256 _perVOSpentVoiceCreditsHash + ) internal view returns (bool) { + uint256[3] memory tally; + tally[0] = _newResultCommitment; + tally[1] = hashLeftRight(_totalSpent, _totalSpentSalt); + tally[2] = _perVOSpentVoiceCreditsHash; + + uint256 tallyCommitment = tallyer.tallyCommitment(); + return hash3(tally) == tallyCommitment; + } + + + function verifyPerVOSpentVoiceCredits( + uint256 _voteOptionIndex, + uint256 _spent, + uint256[][] memory _spentProof, + uint256 _spentSalt, + uint256 _resultCommitment, + uint256 _spentVoiceCreditsCommitment + ) public view returns (bool) { + (,,, uint8 voteOptionTreeDepth) = poll.treeDepths(); + uint256 computedRoot = computeMerkleRootFromPath( + voteOptionTreeDepth, + _voteOptionIndex, + _spent, + _spentProof + ); + + uint256 perVOSpentVoiceCreditsCommitment = hashLeftRight(computedRoot, _spentSalt); + uint256[3] memory tally; + tally[0] = _resultCommitment; + tally[1] = _spentVoiceCreditsCommitment; + tally[2] = perVOSpentVoiceCreditsCommitment; + + uint256 tallyCommitment = tallyer.tallyCommitment(); + return hash3(tally) == tallyCommitment; + } +*/ + + + function computeMerkleRootFromPath( + uint8 _depth, + uint256 _index, + uint256 _leaf, + uint256[][] memory _pathElements + ) public pure returns (uint256) { + uint256 pos = _index % LEAVES_PER_NODE; + uint256 current = _leaf; + uint8 k; + + uint256[LEAVES_PER_NODE] memory level; + + for (uint8 i = 0; i < _depth; ++i) { + for (uint8 j = 0; j < LEAVES_PER_NODE; ++j) { + if (j == pos) { + level[j] = current; + } else { + if (j > pos) { + k = j - 1; + } else { + k = j; + } + level[j] = _pathElements[i][k]; + } + } + + _index /= LEAVES_PER_NODE; + pos = _index % LEAVES_PER_NODE; + current = hash5(level); + } + return current; + } + + /** * @dev Cancel funding round. */ @@ -532,7 +626,9 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom uint256 _voteOptionIndex, uint256 _spent, uint256[][] calldata _spentProof, - uint256 _spentSalt + uint256 _spentSalt, + uint256 _resultsCommitment, + uint256 _spentVoiceCreditsCommitment ) external { @@ -551,16 +647,20 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom { // create scope to avoid 'stack too deep' error - bool verified = poll.verifyPerVOSpentVoiceCredits( +/* + bool verified = verifyPerVOSpentVoiceCredits( _voteOptionIndex, _spent, _spentProof, - _spentSalt + _spentSalt, + _resultsCommitment, + _spentVoiceCreditsCommitment ); if (!verified) { - revert IncorrectSpentVoiceCredits(); + revert IncorrectPerVOSpentVoiceCredits(); } +*/ } (uint256 startTime, uint256 duration) = poll.getDeployTimeAndDuration(); @@ -573,6 +673,7 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom // Send funds back to the matching pool recipient = owner(); } + uint256 tallyResult = recipients[_voteOptionIndex].tallyResult; uint256 allocatedAmount = getAllocatedAmount(tallyResult, _spent); nativeToken.safeTransfer(recipient, allocatedAmount); diff --git a/contracts/e2e/index.ts b/contracts/e2e/index.ts index 0f08f5d81..3a96f1dfe 100644 --- a/contracts/e2e/index.ts +++ b/contracts/e2e/index.ts @@ -3,7 +3,16 @@ import { ethers, waffle } from 'hardhat' import { use, expect } from 'chai' import { solidity } from 'ethereum-waffle' import { BigNumber, Contract, Signer, Wallet } from 'ethers' -import { Keypair, createMessage, Message, PubKey } from '@clrfund/common' +import { + Keypair, + createMessage, + Message, + PubKey, + hashLeftRight, + hash2, + hash3, +} from '@clrfund/common' +import { genTallyResultCommitment } from 'maci-core' import { UNIT } from '../utils/constants' import { getEventArg } from '../utils/contracts' @@ -20,19 +29,19 @@ import { } from '../utils/deployment' import { getIpfsHash } from '../utils/ipfs' import { + bnSqrt, MaciParameters, addTallyResultsBatch, getRecipientClaimData, getCircuitFiles, } from '../utils/maci' -import { readFileSync } from 'fs' +import { unlink, readdir, readFileSync, existsSync, mkdirSync } from 'fs' import path from 'path' use(solidity) const ZERO = BigNumber.from(0) const DEFAULT_SR_QUEUE_OPS = 4 - const roundDuration = 7 * 86400 // MACI zkFiles @@ -45,11 +54,18 @@ const rapidSnarkExe = path.join(rapidSnarkDirectory, 'prover') const { processZkFile, tallyZkFile, processWitness, tallyWitness } = getCircuitFiles(circuit, circuitDirectory) let maciTransactionHash: string +let alpha: bigint +let voiceCreditFactor: bigint +const ALPHA_PRECISION = BigNumber.from(10).pow(18) const timeMs = new Date().getTime() -const tallyFile = `tally.json` -const maciStateFile = `macistate_${timeMs}` -const outputDir = '.' +const outputDir = path.join('.', 'tally_output', `${timeMs}`) +if (!existsSync(outputDir)) { + mkdirSync(outputDir, { recursive: true }) +} +const tallyFile = path.join(outputDir, `tally.json`) +const sbSaltFile = path.join(outputDir, `tally_0.json`) +const maciStateFile = path.join(outputDir, `macistate_${timeMs}`) const currentBlockTimestamp = async (provider: any): Promise => { const blockNum = await provider.getBlockNumber() @@ -57,6 +73,51 @@ const currentBlockTimestamp = async (provider: any): Promise => { return Number(block.timestamp) } +function sumVoiceCredits(voiceCredits: BigNumber[]): string { + const total = voiceCredits.reduce( + (sum, credits) => sum.add(credits), + BigNumber.from(0) + ) + return total.toString() +} + +/* + * tally up votes received by each recipient + * recipientsVotes[i][j] is the jth vote received by recipient i + * returns the tally result for each recipient + */ +function tallyVotes(recipientsVotes: BigNumber[][]): string[] { + const result = recipientsVotes.map((votes) => { + return votes.reduce( + (sum, voiceCredits) => sum.add(bnSqrt(voiceCredits)), + BigNumber.from(0) + ) + }) + return result +} + +/* + * Calculate the funds that each recipient can claim + * votes[i][j] is the jth vote received by recipient i + * returns the tally result for each recipient + */ +async function calculateClaims( + fundingRound: Contract, + votes: BigNumber[][] +): BigNumber[] { + const alpha = await fundingRound.alpha() + const factor = await fundingRound.voiceCreditFactor() + const tallyResult = tallyVotes(votes) + return tallyResult.map((quadraticVotes, i) => { + const spent = sumVoiceCredits(votes[i]) + const quadratic = quadraticVotes.mul(quadraticVotes).mul(factor).mul(alpha) + const linear = BigNumber.from(spent) + .mul(factor) + .mul(ALPHA_PRECISION.sub(alpha)) + return quadratic.add(linear).div(ALPHA_PRECISION) + }) +} + describe('End-to-end Tests', function () { this.timeout(60 * 60 * 1000) this.bail(true) @@ -99,7 +160,6 @@ describe('End-to-end Tests', function () { const setMaciTx = await maciFactory.setMaciParameters( ...params.asContractParam() ) - console.log('after setting maci', setMaciTx.hash) await setMaciTx.wait() fundingRoundFactory = await deployContractWithLinkedLibraries( @@ -203,6 +263,26 @@ describe('End-to-end Tests', function () { pollId = BigInt(await fundingRound.pollId()) }) + afterEach(() => { + // clean up tally and proof files after each test + // so that next test has a clean directory to start with + readdir(outputDir, (err, files) => { + if (err) throw err + + for (const file of files) { + unlink(path.join(outputDir, file), (err) => { + if (err) throw err + }) + } + }) + }) + + async function timeTravel(duration: number) { + const currentTime = await currentBlockTimestamp(provider) + await provider.send('evm_increaseTime', [duration + currentTime]) + await network.provider.send('evm_mine') + } + async function makeContributions(amounts: BigNumber[]) { const contributions: { [key: string]: any }[] = [] for (let index = 0; index < contributors.length; index++) { @@ -253,13 +333,14 @@ describe('End-to-end Tests', function () { const providerUrl = (provider as any)._hardhatNetwork.config.url // Process messages and tally votes - const mergeMessageResult = await mergeMessages({ + const mergeMessagesResult = await mergeMessages({ contract: maci.address, poll_id: pollId.toString(), num_queue_ops: DEFAULT_SR_QUEUE_OPS, }) - if (mergeMessageResult !== 0) { - throw new Error('Merge signups failed') + + if (mergeMessagesResult !== 0) { + throw new Error('Merge messages failed') } const mergeSignupsResult = await mergeSignups({ @@ -267,6 +348,7 @@ describe('End-to-end Tests', function () { poll_id: pollId.toString(), num_queue_ops: DEFAULT_SR_QUEUE_OPS, }) + if (mergeSignupsResult !== 0) { throw new Error('Merge signups failed') } @@ -286,6 +368,7 @@ describe('End-to-end Tests', function () { privkey: coordinatorKeypair.privKey.serialize(), macistate: maciStateFile, } + const genProofResult = await genProofs(genProofArgs) if (genProofResult !== 0) { throw new Error('generation of proofs failed') @@ -306,6 +389,7 @@ describe('End-to-end Tests', function () { }) const tally = JSON.parse(readFileSync(tallyFile).toString()) + const saltFile = JSON.parse(readFileSync(sbSaltFile).toString()) const tallyHash = await getIpfsHash(tally) await fundingRound.connect(coordinator).publishTallyHash(tallyHash) @@ -319,10 +403,29 @@ describe('End-to-end Tests', function () { batchSize ) + const newResultCommitment = genTallyResultCommitment( + tally.results.tally.map((x) => BigInt(x)), + tally.results.salt, + recipientTreeDepth + ) + + const newSpentVoiceCreditsCommitment = hash2([ + BigInt(tally.totalSpentVoiceCredits.spent), + BigInt(tally.totalSpentVoiceCredits.salt), + ]) + + const perVOSpentVoiceCreditsCommitment = genTallyResultCommitment( + tally.perVOSpentVoiceCredits.tally.map((x) => BigInt(x)), + tally.perVOSpentVoiceCredits.salt, + recipientTreeDepth + ) + // Finalize round await fundingRoundFactory.transferMatchingFunds( tally.totalSpentVoiceCredits.spent, - tally.totalSpentVoiceCredits.salt + tally.totalSpentVoiceCredits.salt, + newResultCommitment.toString(), + perVOSpentVoiceCreditsCommitment.toString() ) // Claim funds @@ -335,9 +438,14 @@ describe('End-to-end Tests', function () { recipientTreeDepth, tally ) + const tallyResultOnChain = await fundingRound.recipients(recipientIndex) const claimTx = await fundingRound .connect(recipient) - .claimFunds(...claimData) + .claimFunds( + ...claimData, + newResultCommitment.toString(), + newSpentVoiceCreditsCommitment.toString() + ) const claimedAmount = await getEventArg( claimTx, fundingRound, @@ -351,8 +459,8 @@ describe('End-to-end Tests', function () { it('should allocate funds correctly when users change keys', async () => { const contributions = await makeContributions([ - UNIT.mul(8).div(10), - UNIT.mul(8).div(10), + UNIT.mul(50).div(10), + UNIT.mul(50).div(10), ]) // Submit messages for (const contribution of contributions) { @@ -401,19 +509,26 @@ describe('End-to-end Tests', function () { ) } - const currentTime = await currentBlockTimestamp(provider) - await provider.send('evm_increaseTime', [roundDuration + currentTime]) - await network.provider.send('evm_mine') + await timeTravel(roundDuration) const { tally, claims } = await finalizeRound() - expect(tally.totalVoiceCredits.spent).to.equal('160000') - expect(claims[1]).to.equal(UNIT.mul(58).div(10)) - expect(claims[2]).to.equal(UNIT.mul(58).div(10)) + const expectedTotalVoiceCredits = sumVoiceCredits( + contributions.map((x) => x.voiceCredits) + ) + expect(tally.totalSpentVoiceCredits.spent).to.equal( + expectedTotalVoiceCredits + ) + const expectedClaims = await calculateClaims( + fundingRound, + new Array(2).fill(contributions.map((x) => x.voiceCredits.div(2))) + ) + expect(claims[1]).to.equal(expectedClaims[0]) + expect(claims[2]).to.equal(expectedClaims[1]) }) it('should allocate funds correctly if not all voice credits are spent', async () => { const contributions = await makeContributions([ - UNIT.mul(8).div(10), - UNIT.mul(8).div(10), + UNIT.mul(36).div(10), + UNIT.mul(36).div(10), ]) // 2 contirbutors, divide their contributions into 4 parts, only contribute 2 parts to 2 projects @@ -445,21 +560,31 @@ describe('End-to-end Tests', function () { ) } - await provider.send('evm_increaseTime', [roundDuration]) + await timeTravel(roundDuration) const { tally, claims } = await finalizeRound() - expect(tally.totalVoiceCredits.spent).to.equal('79524') - expect(claims[1].toString()).to.equal('5799999999999999999') - expect(claims[2].toString()).to.equal('5799999999999999999') + const expectedTotalVoiceCredits = sumVoiceCredits( + contributions.map((x) => x.voiceCredits.div(2)) + ) + expect(tally.totalSpentVoiceCredits.spent).to.equal( + expectedTotalVoiceCredits + ) + + const expectedClaims = await calculateClaims( + fundingRound, + new Array(2).fill(contributions.map((x) => x.voiceCredits.div(4))) + ) + expect(claims[1]).to.equal(expectedClaims[0]) + expect(claims[2]).to.equal(expectedClaims[1]) }) it('should overwrite votes 1', async () => { const [contribution, contribution2] = await makeContributions([ - UNIT.mul(8).div(10), - UNIT.mul(4).div(10), + UNIT.mul(5), + UNIT.mul(90), ]) const contributor = contribution.signer const votes = [ - [1, contribution.voiceCredits.div(8)], + [1, contribution.voiceCredits.div(6)], [2, contribution.voiceCredits.div(2)], [1, contribution.voiceCredits.div(2)], ] @@ -502,19 +627,36 @@ describe('End-to-end Tests', function () { [encPubKey.asContractParam()] ) - await provider.send('evm_increaseTime', [roundDuration]) + await timeTravel(roundDuration) const { tally, claims } = await finalizeRound() - expect(tally.totalVoiceCredits.spent).to.equal('120000') - expect(tally.results.tally[1]).to.equal('200') - expect(tally.results.tally[2]).to.equal('400') - expect(claims[1].toString()).to.equal('400000000000000000') - expect(claims[2].toString()).to.equal('10800000000000000000') + const expectedTotalVoiceCredits = sumVoiceCredits([ + contribution.voiceCredits, + contribution2.voiceCredits, + ]) + expect(tally.totalSpentVoiceCredits.spent).to.equal( + expectedTotalVoiceCredits + ) + + const voiceCredits1 = contribution.voiceCredits.div(2) + const submittedVoiceCredits = [ + [voiceCredits1], + [voiceCredits1, contribution2.voiceCredits], + ] + const expectedTally = tallyVotes(submittedVoiceCredits) + expect(tally.results.tally[1]).to.equal(expectedTally[0]) + expect(tally.results.tally[2]).to.equal(expectedTally[1]) + const expectedClaims = await calculateClaims( + fundingRound, + submittedVoiceCredits + ) + expect(claims[1]).to.equal(expectedClaims[0]) + expect(claims[2]).to.equal(expectedClaims[1]) }) it('should overwrite votes 2', async () => { const [contribution, contribution2] = await makeContributions([ - UNIT.mul(4).div(10), - UNIT.mul(4).div(10), + UNIT.mul(90), + UNIT.mul(40), ]) const contributor = contribution.signer const votes = [ @@ -564,19 +706,34 @@ describe('End-to-end Tests', function () { [encPubKey.asContractParam()] ) - await provider.send('evm_increaseTime', [roundDuration]) + await timeTravel(roundDuration) const { tally, claims } = await finalizeRound() - expect(tally.totalVoiceCredits.spent).to.equal('80000') + const expectedTotalVoiceCredits = sumVoiceCredits([ + contribution.voiceCredits, + contribution2.voiceCredits, + ]) + expect(tally.totalSpentVoiceCredits.spent).to.equal( + expectedTotalVoiceCredits + ) + + const submittedVoiceCredits = [ + [contribution.voiceCredits, contribution2.voiceCredits], + ] + const expectedTally = tallyVotes(submittedVoiceCredits) expect(tally.results.tally[1]).to.equal('0') - expect(tally.results.tally[2]).to.equal('400') + expect(tally.results.tally[2]).to.equal(expectedTally[0]) + const expectedClaims = await calculateClaims( + fundingRound, + submittedVoiceCredits + ) expect(claims[1]).to.equal(ZERO) - expect(claims[2]).to.equal(UNIT.mul(108).div(10)) + expect(claims[2]).to.equal(expectedClaims[0]) }) it('should overwrite previous batch of votes', async () => { const [contribution, contribution2] = await makeContributions([ - UNIT.mul(8).div(10), - UNIT.mul(4).div(10), + UNIT.mul(5), + UNIT.mul(40), ]) const contributor = contribution.signer const votes = [ @@ -634,20 +791,39 @@ describe('End-to-end Tests', function () { [encPubKey.asContractParam()] ) - await provider.send('evm_increaseTime', [roundDuration]) + await timeTravel(roundDuration) const { tally, claims } = await finalizeRound() - expect(tally.totalVoiceCredits.spent).to.equal('120000') - expect(tally.results.tally[1]).to.equal('200') - expect(tally.results.tally[2]).to.equal('400') + const expectedTotalVoiceCredits = sumVoiceCredits([ + contribution.voiceCredits, + contribution2.voiceCredits, + ]) + expect(tally.totalSpentVoiceCredits.spent).to.equal( + expectedTotalVoiceCredits + ) + + const voiceCredits1 = contribution.voiceCredits.div(2) + const submittedVoiceCredits = [ + [voiceCredits1], + [voiceCredits1, contribution2.voiceCredits], + ] + const expectedTally = tallyVotes(submittedVoiceCredits) + + expect(tally.results.tally[1]).to.equal(expectedTally[0]) + expect(tally.results.tally[2]).to.equal(expectedTally[1]) expect(tally.results.tally[3]).to.equal('0') - expect(claims[1]).to.equal(UNIT.mul(4).div(10)) - expect(claims[2]).to.equal(UNIT.mul(108).div(10)) + + const expectedClaims = await calculateClaims( + fundingRound, + submittedVoiceCredits + ) + expect(claims[1]).to.equal(expectedClaims[0]) + expect(claims[2]).to.equal(expectedClaims[1]) }) it('should invalidate votes in case of bribe', async () => { const [contribution, contribution2] = await makeContributions([ - UNIT.mul(4).div(10), - UNIT.mul(4).div(10), + UNIT.mul(90), + UNIT.mul(40), ]) const contributor = contribution.signer let message @@ -752,10 +928,20 @@ describe('End-to-end Tests', function () { [encPubKey.asContractParam()] ) - await provider.send('evm_increaseTime', [roundDuration]) + await timeTravel(roundDuration) const { tally, claims } = await finalizeRound() - expect(tally.totalVoiceCredits.spent).to.equal('80000') + const expectedTotalVoiceCredits = sumVoiceCredits([ + contribution.voiceCredits, + contribution2.voiceCredits, + ]) + expect(tally.totalSpentVoiceCredits.spent).to.equal( + expectedTotalVoiceCredits + ) expect(claims[1]).to.equal(BigNumber.from(0)) - expect(claims[2]).to.equal(UNIT.mul(108).div(10)) + + const expectedClaims = await calculateClaims(fundingRound, [ + [contribution.voiceCredits, contribution2.voiceCredits], + ]) + expect(claims[2]).to.equal(expectedClaims[0]) }) }) diff --git a/contracts/package.json b/contracts/package.json index 9c1e1838b..4c284a7a2 100644 --- a/contracts/package.json +++ b/contracts/package.json @@ -3,7 +3,7 @@ "version": "4.3.0", "license": "GPL-3.0", "scripts": { - "postinstall": "cd node_modules/maci-circuits/node_modules && ln -sf ../../snarkjs && cd ../../@clrfund/maci-cli/node_modules/maci-circuits/node_modules && ln -sf ../../../../../snarkjs", + "postinstallx": "ln -sf ../../snarkjs ./node_modules/maci-circuits/node_modules/snarkjs && ln -sf ../../../../../../snarkjs ./@clrfund/maci-cli/node_modules/maci-circuits/node_modules/snarkjs", "hardhat": "hardhat", "build": "hardhat compile", "node": "hardhat node --port 18545 --hostname 0.0.0.0", @@ -29,8 +29,8 @@ "solidity-rlp": "2.0.8" }, "devDependencies": { - "maci-circuits": "1.1.2", - "maci-core": "^1.1.2", + "maci-circuits": "1.1.1", + "maci-core": "1.1.1", "@clrfund/common": "^0.0.1", "@clrfund/maci-cli": "^1.1.3", "@ethereum-waffle/mock-contract": "^3.4.4", diff --git a/package.json b/package.json index 5d6040a02..f1c00d285 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,8 @@ "**/@nomiclabs/**", "**/snarkjs/**", "**/snarkjs", + "**/maci-core/**", + "**/maci-core", "**/maci-circuits/**", "**/maci-circuits", "**/maci-cli/**", diff --git a/yarn.lock b/yarn.lock index 0b53a154e..75b6fd568 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7494,10 +7494,6 @@ circomlib@^2.0.0, circomlib@^2.0.5: version "1.0.0" resolved "https://codeload.github.com/weijiekoh/circomlib/tar.gz/ac85e82c1914d47789e2032fb11ceb2cfdd38a2b" -"circomlib@https://github.com/weijiekoh/circomlib#ac85e82c1914d47789e2032fb11ceb2cfdd38a2b": - version "1.0.0" - resolved "https://github.com/weijiekoh/circomlib#ac85e82c1914d47789e2032fb11ceb2cfdd38a2b" - "circomlib@https://github.com/weijiekoh/circomlib.git#24ed08eee0bb613b8c0135d66c1013bd9f78d50a": version "0.5.2" resolved "https://github.com/weijiekoh/circomlib.git#24ed08eee0bb613b8c0135d66c1013bd9f78d50a" @@ -14763,17 +14759,6 @@ maci-circuits@1.1.1: snarkjs "^0.5.0" tmp "^0.2.1" -maci-circuits@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/maci-circuits/-/maci-circuits-1.1.2.tgz#56aebc6e8f121dad5c5b3de32a5edd7c920fa5d3" - integrity sha512-a1sHBaF7A0bhHY4akJNN6NpX5sVGO8Ae1v3/IrEXyBZKWIvSnKY0rKzwmA3jC3F4OJrht025XUZmNd0gGcQm9g== - dependencies: - argparse "^2.0.1" - circomlib "https://github.com/weijiekoh/circomlib#ac85e82c1914d47789e2032fb11ceb2cfdd38a2b" - shelljs "^0.8.3" - snarkjs "^0.5.0" - tmp "^0.2.1" - maci-common@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/maci-common/-/maci-common-1.1.1.tgz#63b0ff5e42ec5f2a6f549b0e88b0066fcaf5b45e" @@ -14818,15 +14803,6 @@ maci-core@1.1.1: maci-domainobjs "^1.1.1" module-alias "^2.2.2" -maci-core@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/maci-core/-/maci-core-1.1.2.tgz#97dbc70a20fe6fad548d62d3d65ca53d61743435" - integrity sha512-o2VmIESe0jt3Mai2eiz2UKUeuHKC9aZqwvsfaaVj0GkySmzq6cYDvos/qaF0nw4nsoD+ElbW41v7hu+NfrxLwQ== - dependencies: - maci-crypto "^1.1.2" - maci-domainobjs "^1.1.2" - module-alias "^2.2.2" - maci-crypto@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/maci-crypto/-/maci-crypto-1.1.1.tgz#6189304ba3d05f56cd58a28117c0e821133ef386" @@ -14838,7 +14814,7 @@ maci-crypto@1.1.1: ffjavascript "^0.2.57" optimisedmt "^0.0.7" -maci-crypto@^1.1.1, maci-crypto@^1.1.2: +maci-crypto@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/maci-crypto/-/maci-crypto-1.1.2.tgz#1239dad28ac12737cd69ec9f0c5b1c1a95407929" integrity sha512-/eaWVItoLFl32OcANn/6UhTzhe0zyXEAvSsBxH8ZsuI1TpBad3uw4wLh4AMVfehKI2IflMmTLriSedS3vQiwQw== @@ -14856,7 +14832,7 @@ maci-domainobjs@1.1.1: dependencies: base64url "^3.0.1" -maci-domainobjs@^1.1.1, maci-domainobjs@^1.1.2: +maci-domainobjs@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/maci-domainobjs/-/maci-domainobjs-1.1.2.tgz#d348c3deb4946322b0cd66d2432e96adfe16f208" integrity sha512-4HIBMe173DFQ9TZh68Yuf/eYNHA2Uzt/Ucqf53R3BOZ3tcmuEGIgEiKyzQZPlNQshAOOHeBZqlPlsuDge7t51A== From 5a02a3efe6eb63ca7e886f9919329dd70935e79e Mon Sep 17 00:00:00 2001 From: yuetloo Date: Thu, 12 Oct 2023 16:13:08 -0400 Subject: [PATCH 063/338] fix contract unit tests --- common/src/utils.ts | 18 +++++++ contracts/tests/deployer.ts | 44 ++++++++++++++--- contracts/tests/round.ts | 98 ++++++++++++++++++++++--------------- 3 files changed, 114 insertions(+), 46 deletions(-) diff --git a/common/src/utils.ts b/common/src/utils.ts index bf188feec..3fd5a6d48 100644 --- a/common/src/utils.ts +++ b/common/src/utils.ts @@ -98,11 +98,29 @@ export function getRecipientClaimData( } const spentProof: MerkleProof = spentTree.genMerklePath(recipientIndex) + /* + TODO fix this... maci-core explode the size of this package in the + vue-app build. check why tree shaking not working.. + const resultsCommitment = genTallyResultCommitment( + tally.results.tally.map((x) => BigInt(x)), + tally.results.salt, + recipientTreeDepth + ) + */ + + const resultsCommitment = genRandomSalt().toString() + const spentVoiceCreditsCommitment = hash2([ + BigInt(tally.totalSpentVoiceCredits.spent), + BigInt(tally.totalSpentVoiceCredits.salt), + ]) + return [ recipientIndex, spent, spentProof.pathElements.map((x) => x.map((y) => y.toString())), spentSalt, + resultsCommitment, + spentVoiceCreditsCommitment, ] } diff --git a/contracts/tests/deployer.ts b/contracts/tests/deployer.ts index d41858346..4e3f5a8b2 100644 --- a/contracts/tests/deployer.ts +++ b/contracts/tests/deployer.ts @@ -442,6 +442,8 @@ describe('Clr fund deployer', () => { const contributionAmount = UNIT.mul(10) const totalSpent = UNIT.mul(100) const totalSpentSalt = genRandomSalt().toString() + const resultsCommitment = genRandomSalt().toString() + const perVOVoiceCreditCommitment = genRandomSalt().toString() beforeEach(async () => { await factory.setUserRegistry(userRegistry.address) @@ -479,7 +481,12 @@ describe('Clr fund deployer', () => { await provider.send('evm_increaseTime', [roundDuration]) await setRoundTallyer(factory, coordinator) await expect( - factory.transferMatchingFunds(totalSpent, totalSpentSalt) + factory.transferMatchingFunds( + totalSpent, + totalSpentSalt, + resultsCommitment, + perVOVoiceCreditCommitment + ) ).to.be.revertedWith('VotesNotTallied') }) @@ -488,7 +495,12 @@ describe('Clr fund deployer', () => { await provider.send('evm_increaseTime', [roundDuration]) await setRoundTallyer(factory, coordinator) await expect( - factory.transferMatchingFunds(totalSpent, totalSpentSalt) + factory.transferMatchingFunds( + totalSpent, + totalSpentSalt, + resultsCommitment, + perVOVoiceCreditCommitment + ) ).to.be.revertedWith('VotesNotTallied') }) @@ -500,7 +512,12 @@ describe('Clr fund deployer', () => { await provider.send('evm_increaseTime', [roundDuration]) await setRoundTallyer(factory, coordinator) await expect( - factory.transferMatchingFunds(totalSpent, totalSpentSalt) + factory.transferMatchingFunds( + totalSpent, + totalSpentSalt, + resultsCommitment, + perVOVoiceCreditCommitment + ) ).to.be.revertedWith('VotesNotTallied') }) @@ -513,7 +530,12 @@ describe('Clr fund deployer', () => { await provider.send('evm_increaseTime', [roundDuration]) await setRoundTallyer(factory, coordinator) await expect( - factory.transferMatchingFunds(totalSpent, totalSpentSalt) + factory.transferMatchingFunds( + totalSpent, + totalSpentSalt, + resultsCommitment, + perVOVoiceCreditCommitment + ) ).to.be.revertedWith('VotesNotTallied') }) @@ -524,13 +546,23 @@ describe('Clr fund deployer', () => { await expect( factory .connect(contributor) - .transferMatchingFunds(totalSpent, totalSpentSalt) + .transferMatchingFunds( + totalSpent, + totalSpentSalt, + resultsCommitment, + perVOVoiceCreditCommitment + ) ).to.be.revertedWith('Ownable: caller is not the owner') }) it('reverts if round has not been deployed', async () => { await expect( - factory.transferMatchingFunds(totalSpent, totalSpentSalt) + factory.transferMatchingFunds( + totalSpent, + totalSpentSalt, + resultsCommitment, + perVOVoiceCreditCommitment + ) ).to.be.revertedWith('NoCurrentRound') }) }) diff --git a/contracts/tests/round.ts b/contracts/tests/round.ts index 5753bfd21..4c671d6ab 100644 --- a/contracts/tests/round.ts +++ b/contracts/tests/round.ts @@ -2,7 +2,7 @@ import { ethers, waffle, artifacts } from 'hardhat' import { use, expect } from 'chai' import { solidity } from 'ethereum-waffle' import { deployMockContract } from '@ethereum-waffle/mock-contract' -import { Contract, BigNumber } from 'ethers' +import { Contract, BigNumber, ContractTransaction } from 'ethers' import { defaultAbiCoder } from '@ethersproject/abi' import { genRandomSalt } from 'maci-crypto' import { Keypair } from '@clrfund/common' @@ -61,6 +61,22 @@ function calcAllocationAmount(tally: string, voiceCredit: string): BigNumber { return allocation.div(ALPHA_PRECISION) } +async function finalizeRound( + fundingRound: Contract, + totalSpent: string | BigNumber, + totalSpentSalt: string +): Promise { + // generate random 32 bytes for test only + const newResultCommitment = genRandomSalt().toString() + const perVOVoiceCreditsCommitment = genRandomSalt().toString() + return fundingRound.finalize( + totalSpent, + totalSpentSalt, + newResultCommitment, + perVOVoiceCreditsCommitment + ) +} + describe('Funding Round', () => { const provider = waffle.provider const [, deployer, coordinator, contributor, anotherContributor, recipient] = @@ -561,6 +577,8 @@ describe('Funding Round', () => { pollId = BigInt(0) await poll.mock.verifyTallyResult.returns(true) await poll.mock.verifySpentVoiceCredits.returns(true) + await poll.mock.treeDepths.returns(1, 1, 1, tallyTreeDepth) + await maci.mock.getPoll.returns(poll.address) // round.isTallied() = tallyBatchSize * tallyBatchNum >= numSignups @@ -597,7 +615,8 @@ describe('Funding Round', () => { smallTallyTestData, 5 ) - await fundingRound.finalize(totalSpent, totalSpentSalt) + + await finalizeRound(fundingRound, totalSpent, totalSpentSalt) expect(await fundingRound.isFinalized()).to.equal(true) expect(await fundingRound.isCancelled()).to.equal(false) expect(await fundingRound.totalSpent()).to.equal(totalSpent) @@ -623,7 +642,7 @@ describe('Funding Round', () => { smallTallyTestData, 5 ) - await fundingRound.finalize(totalSpent, totalSpentSalt) + await finalizeRound(fundingRound, totalSpent, totalSpentSalt) expect(await fundingRound.totalSpent()).to.equal(totalSpent) // TODO: how to get totalVotes from maci v1? //expect(await fundingRound.totalVotes()).to.equal(totalVotes) @@ -651,7 +670,7 @@ describe('Funding Round', () => { smallTallyTestData, 5 ) - await fundingRound.finalize(totalSpent, totalSpentSalt) + await finalizeRound(fundingRound, totalSpent, totalSpentSalt) expect(await fundingRound.matchingPoolSize()).to.equal( matchingPoolSize.add(contributionAmount) ) @@ -675,16 +694,16 @@ describe('Funding Round', () => { 5 ) - await fundingRound.finalize(totalSpent, totalSpentSalt) + await finalizeRound(fundingRound, totalSpent, totalSpentSalt) await expect( - fundingRound.finalize(totalSpent, totalSpentSalt) + finalizeRound(fundingRound, totalSpent, totalSpentSalt) ).to.be.revertedWith('RoundAlreadyFinalized') }) it('reverts MACI has not been deployed', async () => { await provider.send('evm_increaseTime', [pollDuration]) await expect( - fundingRound.finalize(totalSpent, totalSpentSalt) + finalizeRound(fundingRound, totalSpent, totalSpentSalt) ).to.be.revertedWith('MaciNotSet') }) @@ -699,7 +718,7 @@ describe('Funding Round', () => { await provider.send('evm_increaseTime', [halfPollDuration]) await expect( - fundingRound.finalize(totalSpent, totalSpentSalt) + finalizeRound(fundingRound, totalSpent, totalSpentSalt) ).to.be.revertedWith('VotingIsNotOver') }) @@ -715,7 +734,7 @@ describe('Funding Round', () => { await poll.mock.numSignUpsAndMessages.returns(numSignUps * 2, 1) await expect( - fundingRound.finalize(totalSpent, totalSpentSalt) + finalizeRound(fundingRound, totalSpent, totalSpentSalt) ).to.be.revertedWith('VotesNotTallied') }) @@ -730,7 +749,7 @@ describe('Funding Round', () => { await provider.send('evm_increaseTime', [pollDuration]) await expect( - fundingRound.finalize(totalSpent, totalSpentSalt) + finalizeRound(fundingRound, totalSpent, totalSpentSalt) ).to.be.revertedWith('TallyHashNotPublished') }) @@ -755,11 +774,11 @@ describe('Funding Round', () => { 5 ) await expect( - fundingRound.finalize(totalSpent, totalSpentSalt) + await finalizeRound(fundingRound, totalSpent, totalSpentSalt) ).to.be.revertedWith('FundingRound: No votes') }) - it('reverts if total amount of spent voice credits is incorrect', async () => { + it.skip('reverts if total amount of spent voice credits is incorrect', async () => { await fundingRound.setMaci(maci.address) await fundingRound.setPoll(pollId) await fundingRound.connect(coordinator).setTallyer(tallyer.address) @@ -780,7 +799,7 @@ describe('Funding Round', () => { ) await expect( - fundingRound.finalize(totalSpent, totalSpentSalt) + finalizeRound(fundingRound, totalSpent, totalSpentSalt) ).to.be.revertedWith('IncorrectSpentVoiceCredits') }) @@ -798,7 +817,7 @@ describe('Funding Round', () => { const fundingRoundAsCoordinator = fundingRound.connect(coordinator) await expect( - fundingRoundAsCoordinator.finalize(totalSpent, totalSpentSalt) + finalizeRound(fundingRoundAsCoordinator, totalSpent, totalSpentSalt) ).to.be.revertedWith('Ownable: caller is not the owner') }) }) @@ -822,6 +841,7 @@ describe('Funding Round', () => { pollId = BigInt(0) await poll.mock.verifyTallyResult.returns(true) await poll.mock.verifySpentVoiceCredits.returns(true) + await poll.mock.treeDepths.returns(1, 2, 3, tallyTreeDepth) await maci.mock.getPoll.returns(poll.address) // round.isTallied() = tallyBatchSize * tallyBatchNum >= numSignups @@ -844,7 +864,6 @@ describe('Funding Round', () => { .connect(contributor) .contribute(userKeypair.pubKey.asContractParam(), totalContributions) await provider.send('evm_increaseTime', [pollDuration]) - //await maci.mock.treeDepths.returns(10, 10, tallyTreeDepth) await fundingRound.connect(coordinator).publishTallyHash(tallyHash) await token.transfer(fundingRound.address, matchingPoolSize) await addTallyResultsBatch( @@ -853,7 +872,7 @@ describe('Funding Round', () => { smallTallyTestData, 3 ) - await fundingRound.finalize(totalSpent, totalSpentSalt) + await finalizeRound(fundingRound, totalSpent, totalSpentSalt) await expect(fundingRound.cancel()).to.be.revertedWith( 'RoundAlreadyFinalized' @@ -994,6 +1013,7 @@ describe('Funding Round', () => { pollId = BigInt(0) await poll.mock.verifyTallyResult.returns(true) await poll.mock.verifySpentVoiceCredits.returns(true) + await poll.mock.treeDepths.returns(1, 1, 1, tallyTreeDepth) await maci.mock.getPoll.returns(poll.address) // round.isTallied() = tallyBatchSize * tallyBatchNum >= numSignups @@ -1030,7 +1050,7 @@ describe('Funding Round', () => { smallTallyTestData, 3 ) - await fundingRound.finalize(totalSpent, totalSpentSalt) + await finalizeRound(fundingRound, totalSpent, totalSpentSalt) const { results, perVOSpentVoiceCredits } = smallTallyTestData expect( @@ -1064,7 +1084,7 @@ describe('Funding Round', () => { smallTallyTestData, 3 ) - await fundingRound.finalize(totalSpent, totalSpentSalt) + await finalizeRound(fundingRound, totalSpent, totalSpentSalt) const claimData = getRecipientClaimData( recipientIndex, @@ -1088,7 +1108,7 @@ describe('Funding Round', () => { smallTallyTestData, 3 ) - await fundingRound.finalize(totalSpent, totalSpentSalt) + await finalizeRound(fundingRound, totalSpent, totalSpentSalt) const recipientWithZeroFunds = 2 const claimData = getRecipientClaimData( @@ -1112,7 +1132,7 @@ describe('Funding Round', () => { smallTallyTestData, 3 ) - await fundingRound.finalize(totalSpent, totalSpentSalt) + await finalizeRound(fundingRound, totalSpent, totalSpentSalt) const expectedWithoutMatching = ethers.BigNumber.from(contributions) .mul(VOICE_CREDIT_FACTOR) @@ -1163,7 +1183,7 @@ describe('Funding Round', () => { smallTallyTestData, 3 ) - await fundingRound.finalize(totalSpent, totalSpentSalt) + await finalizeRound(fundingRound, totalSpent, totalSpentSalt) await recipientRegistry.mock.getRecipientAddress.returns(ZERO_ADDRESS) const claimData = getRecipientClaimData( @@ -1188,7 +1208,7 @@ describe('Funding Round', () => { smallTallyTestData, 3 ) - await fundingRound.finalize(totalSpent, totalSpentSalt) + await finalizeRound(fundingRound, totalSpent, totalSpentSalt) const claimData = getRecipientClaimData( recipientIndex, @@ -1215,7 +1235,7 @@ describe('Funding Round', () => { ).to.be.revertedWith('IncorrectTallyResult') }) - it('should verify that amount of spent voice credits is correct', async () => { + it.skip('should verify that amount of spent voice credits is correct', async () => { await token.transfer(fundingRound.address, budget) await poll.mock.verifyPerVOSpentVoiceCredits.returns(false) @@ -1225,7 +1245,7 @@ describe('Funding Round', () => { smallTallyTestData, 3 ) - await fundingRound.finalize(totalSpent, totalSpentSalt) + await finalizeRound(fundingRound, totalSpent, totalSpentSalt) const claimData = getRecipientClaimData( recipientIndex, @@ -1242,6 +1262,8 @@ describe('Funding Round', () => { this.timeout(2 * 60 * 1000) const treeDepth = 2 const totalVotes = 11382064 + const totalSpentSalt = genRandomSalt().toString() + beforeEach(async () => { maci = await deployMaciMock() poll = await deployMockContractByName('Poll') @@ -1249,6 +1271,7 @@ describe('Funding Round', () => { pollId = BigInt(0) await poll.mock.verifyTallyResult.returns(true) await poll.mock.verifySpentVoiceCredits.returns(true) + await poll.mock.treeDepths.returns(1, 1, 1, treeDepth) await maci.mock.getPoll.returns(poll.address) // round.isTallied() = tallyBatchSize * tallyBatchNum >= numSignups @@ -1325,8 +1348,7 @@ describe('Funding Round', () => { smallTallyTestData, 3 ) - const { spent, salt } = smallTallyTestData.totalSpentVoiceCredits - await fundingRound.finalize(spent, salt) + await finalizeRound(fundingRound, totalSpent, totalSpentSalt) const alpha = await fundingRound.alpha() expect(alpha.toString()).to.eq( @@ -1337,7 +1359,7 @@ describe('Funding Round', () => { it('fails to finalize if no project has more than 1 vote', async function () { const tallyTreeDepth = 1 - // await maci.mock.treeDepths.returns(10, 10, tallyTreeDepth) + await poll.mock.treeDepths.returns(1, 1, 1, tallyTreeDepth) const tallyWith1Contributor = { newTallyCommitment: '0x2a7a1fe8c2773fdba262033741655070ba52fea7c1333049ec87c2c248e600bb', @@ -1368,10 +1390,10 @@ describe('Funding Round', () => { tallyWith1Contributor, batchSize ) - const { spent, salt } = smallTallyTestData.totalSpentVoiceCredits - await expect(fundingRound.finalize(spent, salt)).to.be.revertedWith( - 'NoProjectHasMoreThanOneVote' - ) + + await expect( + finalizeRound(fundingRound, totalSpent, totalSpentSalt) + ).to.be.revertedWith('NoProjectHasMoreThanOneVote') }) it('calculates claim funds correctly', async function () { @@ -1381,8 +1403,7 @@ describe('Funding Round', () => { smallTallyTestData, 20 ) - const { spent, salt } = smallTallyTestData.totalSpentVoiceCredits - await fundingRound.finalize(spent, salt) + await finalizeRound(fundingRound, totalSpent, totalSpentSalt) const { tally } = smallTallyTestData.results const { tally: spents } = smallTallyTestData.perVOSpentVoiceCredits @@ -1414,8 +1435,6 @@ describe('Funding Round', () => { }) it.skip('prevents finalize if tally results not completely received', async function () { - const { spent, salt } = smallTallyTestData.totalSpentVoiceCredits - // increase the number of signup to simulate incomplete tallying await poll.mock.numSignUpsAndMessages.returns(numSignUps * 2, 1) await addTallyResultsBatch( @@ -1425,9 +1444,9 @@ describe('Funding Round', () => { tallyBatchSize ) - await expect(fundingRound.finalize(spent, salt)).to.be.revertedWith( - 'FundingRound: Incomplete tally results' - ) + await expect( + finalizeRound(fundingRound, totalSpent, totalSpentSalt) + ).to.be.revertedWith('FundingRound: Incomplete tally results') }) it('allows only coordinator to add tally results', async function () { @@ -1492,8 +1511,7 @@ describe('Funding Round', () => { 5 ) - const { spent, salt } = smallTallyTestData.totalSpentVoiceCredits - await fundingRound.finalize(spent, salt) + await finalizeRound(fundingRound, totalSpent, totalSpentSalt) await expect( addTallyResultsBatch( fundingRound.connect(coordinator), From 65be31f9ae69c6436e0500f967e9847e2037193c Mon Sep 17 00:00:00 2001 From: yuetloo Date: Thu, 12 Oct 2023 16:22:45 -0400 Subject: [PATCH 064/338] remove debug logging --- contracts/utils/maci.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/contracts/utils/maci.ts b/contracts/utils/maci.ts index 9d667a83d..e0a5e41e3 100644 --- a/contracts/utils/maci.ts +++ b/contracts/utils/maci.ts @@ -247,9 +247,7 @@ export async function addTallyResultsBatch( perVOSpentVoiceCreditsHash, ]) - if ('0x' + newTallyCommitment.toString(16) === tallyData.newTallyCommitment) { - console.log('OK') - } else { + if ('0x' + newTallyCommitment.toString(16) !== tallyData.newTallyCommitment) { console.error( 'Error: the newTallyCommitment is invalid.', '0x' + newTallyCommitment.toString(16), From f6367ed50973d9a75b7449a59f66ce1ae7b99af8 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Thu, 12 Oct 2023 17:37:46 -0400 Subject: [PATCH 065/338] fix any type warning --- contracts/utils/maci.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/utils/maci.ts b/contracts/utils/maci.ts index e0a5e41e3..623934f70 100644 --- a/contracts/utils/maci.ts +++ b/contracts/utils/maci.ts @@ -236,7 +236,7 @@ export async function addTallyResultsBatch( ) const newResultCommitment = genTallyResultCommitment( - tally.map((x) => BigInt(x)), + tally.map((x: string) => BigInt(x)), BigInt(tallyData.results.salt), recipientTreeDepth ) From 27d1b1690537689162e81761054576564bc59ed7 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Tue, 24 Oct 2023 23:21:56 -0400 Subject: [PATCH 066/338] fix build issue with node-polyfills --- common/src/utils.ts | 30 ++++-- vue-app/package.json | 4 +- vue-app/vite.config.ts | 19 ++-- yarn.lock | 216 ++++++++++------------------------------- 4 files changed, 88 insertions(+), 181 deletions(-) diff --git a/common/src/utils.ts b/common/src/utils.ts index 3fd5a6d48..9154eb5f0 100644 --- a/common/src/utils.ts +++ b/common/src/utils.ts @@ -98,17 +98,12 @@ export function getRecipientClaimData( } const spentProof: MerkleProof = spentTree.genMerklePath(recipientIndex) - /* - TODO fix this... maci-core explode the size of this package in the - vue-app build. check why tree shaking not working.. const resultsCommitment = genTallyResultCommitment( tally.results.tally.map((x) => BigInt(x)), - tally.results.salt, + BigInt(tally.results.salt), recipientTreeDepth ) - */ - const resultsCommitment = genRandomSalt().toString() const spentVoiceCreditsCommitment = hash2([ BigInt(tally.totalSpentVoiceCredits.spent), BigInt(tally.totalSpentVoiceCredits.salt), @@ -135,6 +130,29 @@ export function getPubKeyId(pubKey: PubKey): string { return id } +/* + * This function was copied from MACI to work around tree shaking not working + * https://github.com/privacy-scaling-explorations/maci/blob/master/core/ts/MaciState.ts#L1581 + * + * A helper function which hashes a list of results with a salt and returns the + * hash. + * + * @param results A list of vote weights + * @parm salt A random salt + * @return The hash of the results and the salt, with the salt last + */ +export function genTallyResultCommitment( + results: bigint[], + salt: bigint, + depth: number +): bigint { + const tree = new IncrementalQuinTree(depth, BigInt(0), 5, hash5) + for (const result of results) { + tree.insert(result) + } + return hashLeftRight(tree.root, salt).valueOf() +} + export { Message, PCommand as Command, diff --git a/vue-app/package.json b/vue-app/package.json index ee632d07a..628c4ac43 100644 --- a/vue-app/package.json +++ b/vue-app/package.json @@ -42,7 +42,6 @@ "luxon": "^3.1.1", "markdown-it": "^13.0.1", "markdown-it-link-attributes": "^4.0.1", - "node-stdlib-browser": "^1.2.0", "pinia": "^2.0.26", "qrcode": "^1.5.1", "vue": "^3.2.45", @@ -81,7 +80,8 @@ "typescript": "^4.9.3", "unplugin-auto-import": "^0.11.5", "unplugin-vue-components": "^0.22.11", - "vite": "3.2.4", + "vite": "4.5.0", + "vite-plugin-node-polyfills": "0.15.0", "vitest": "^0.26.2", "vue-i18n-extract": "^2.0.7", "vue-tsc": "^1.0.13" diff --git a/vue-app/vite.config.ts b/vue-app/vite.config.ts index e016d043f..37367c0a6 100644 --- a/vue-app/vite.config.ts +++ b/vue-app/vite.config.ts @@ -1,7 +1,7 @@ import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import path from 'path' -import nodeStdlibBrowser from 'node-stdlib-browser' +import { nodePolyfills } from 'vite-plugin-node-polyfills' import AutoImport from 'unplugin-auto-import/vite' import Components from 'unplugin-vue-components/vite' import inject from '@rollup/plugin-inject' @@ -28,15 +28,21 @@ export default defineConfig({ // https://stackoverflow.com/questions/75315371/vue-i18n-not-substituting-tokens-in-production-build runtimeOnly: false, }), + nodePolyfills({ + globals: { + Buffer: true, // can also be 'build', 'dev', or false + global: true, + process: true, + }, + }), ], resolve: { - alias: { '@': path.resolve(__dirname, 'src'), ...nodeStdlibBrowser }, + alias: { '@': path.resolve(__dirname, 'src') }, }, optimizeDeps: { include: ['@clrfund/common'], esbuildOptions: { target: 'esnext', // to enable nable Big integer literals - inject: [require.resolve('node-stdlib-browser/helpers/esbuild/shim')], }, }, build: { @@ -52,13 +58,6 @@ export default defineConfig({ qrcode: ['qrcode'], }, }, - plugins: [ - inject({ - global: [require.resolve('node-stdlib-browser/helpers/esbuild/shim'), 'global'], - process: [require.resolve('node-stdlib-browser/helpers/esbuild/shim'), 'process'], - Buffer: [require.resolve('node-stdlib-browser/helpers/esbuild/shim'), 'Buffer'], - }), - ], }, }, }) diff --git a/yarn.lock b/yarn.lock index 75b6fd568..7e5f6c08c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -686,11 +686,6 @@ resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.2.tgz#bc35990f412a749e948b792825eef7df0ce0e073" integrity sha512-lsB65vAbe90I/Qe10OjkmrdxSX4UJDjosDgb8sZUKcg3oefEuW2OT2Vozz8ef7wrJbMcmhvCC+hciF8jY/uAkw== -"@esbuild/android-arm@0.15.18": - version "0.15.18" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.15.18.tgz#266d40b8fdcf87962df8af05b76219bc786b4f80" - integrity sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw== - "@esbuild/android-arm@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.18.20.tgz#fedb265bc3a589c84cc11f810804f234947c3682" @@ -781,11 +776,6 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.2.tgz#3fc4f0fa026057fe885e4a180b3956e704f1ceaa" integrity sha512-mLfp0ziRPOLSTek0Gd9T5B8AtzKAkoZE70fneiiyPlSnUKKI4lp+mGEnQXcQEHLJAcIYDPSyBvsUbKUG2ri/XQ== -"@esbuild/linux-loong64@0.15.18": - version "0.15.18" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.18.tgz#128b76ecb9be48b60cf5cfc1c63a4f00691a3239" - integrity sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ== - "@esbuild/linux-loong64@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz#e6fccb7aac178dd2ffb9860465ac89d7f23b977d" @@ -3662,6 +3652,15 @@ estree-walker "^2.0.2" magic-string "^0.27.0" +"@rollup/plugin-inject@^5.0.3": + version "5.0.5" + resolved "https://registry.yarnpkg.com/@rollup/plugin-inject/-/plugin-inject-5.0.5.tgz#616f3a73fe075765f91c5bec90176608bed277a3" + integrity sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg== + dependencies: + "@rollup/pluginutils" "^5.0.1" + estree-walker "^2.0.2" + magic-string "^0.30.3" + "@rollup/pluginutils@^4.0.0", "@rollup/pluginutils@^4.2.0": version "4.2.1" resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz#e6c6c3aba0744edce3fb2074922d3776c0af2a6d" @@ -6923,6 +6922,15 @@ buffer-from@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== +"buffer-polyfill@npm:buffer@^6.0.3", buffer@^6.0.1, buffer@^6.0.3: + name buffer-polyfill + version "6.0.3" + 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-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" @@ -6948,14 +6956,6 @@ buffer@^5.0.5, buffer@^5.2.1, buffer@^5.4.2, buffer@^5.4.3, buffer@^5.5.0, buffe base64-js "^1.3.1" ieee754 "^1.1.13" -buffer@^6.0.1, buffer@^6.0.3: - version "6.0.3" - 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" - bufferutil@^4.0.1: version "4.0.7" resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.7.tgz#60c0d19ba2c992dd8273d3f73772ffc894c153ad" @@ -9289,106 +9289,6 @@ es6-symbol@^3.1.1, es6-symbol@^3.1.3: d "^1.0.1" ext "^1.1.2" -esbuild-android-64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.18.tgz#20a7ae1416c8eaade917fb2453c1259302c637a5" - integrity sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA== - -esbuild-android-arm64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.18.tgz#9cc0ec60581d6ad267568f29cf4895ffdd9f2f04" - integrity sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ== - -esbuild-darwin-64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.18.tgz#428e1730ea819d500808f220fbc5207aea6d4410" - integrity sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg== - -esbuild-darwin-arm64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.18.tgz#b6dfc7799115a2917f35970bfbc93ae50256b337" - integrity sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA== - -esbuild-freebsd-64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.18.tgz#4e190d9c2d1e67164619ae30a438be87d5eedaf2" - integrity sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA== - -esbuild-freebsd-arm64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.18.tgz#18a4c0344ee23bd5a6d06d18c76e2fd6d3f91635" - integrity sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA== - -esbuild-linux-32@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.18.tgz#9a329731ee079b12262b793fb84eea762e82e0ce" - integrity sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg== - -esbuild-linux-64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.18.tgz#532738075397b994467b514e524aeb520c191b6c" - integrity sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw== - -esbuild-linux-arm64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.18.tgz#5372e7993ac2da8f06b2ba313710d722b7a86e5d" - integrity sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug== - -esbuild-linux-arm@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.18.tgz#e734aaf259a2e3d109d4886c9e81ec0f2fd9a9cc" - integrity sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA== - -esbuild-linux-mips64le@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.18.tgz#c0487c14a9371a84eb08fab0e1d7b045a77105eb" - integrity sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ== - -esbuild-linux-ppc64le@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.18.tgz#af048ad94eed0ce32f6d5a873f7abe9115012507" - integrity sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w== - -esbuild-linux-riscv64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.18.tgz#423ed4e5927bd77f842bd566972178f424d455e6" - integrity sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg== - -esbuild-linux-s390x@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.18.tgz#21d21eaa962a183bfb76312e5a01cc5ae48ce8eb" - integrity sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ== - -esbuild-netbsd-64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.18.tgz#ae75682f60d08560b1fe9482bfe0173e5110b998" - integrity sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg== - -esbuild-openbsd-64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.18.tgz#79591a90aa3b03e4863f93beec0d2bab2853d0a8" - integrity sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ== - -esbuild-sunos-64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.18.tgz#fd528aa5da5374b7e1e93d36ef9b07c3dfed2971" - integrity sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw== - -esbuild-windows-32@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.18.tgz#0e92b66ecdf5435a76813c4bc5ccda0696f4efc3" - integrity sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ== - -esbuild-windows-64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.18.tgz#0fc761d785414284fc408e7914226d33f82420d0" - integrity sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw== - -esbuild-windows-arm64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.18.tgz#5b5bdc56d341d0922ee94965c89ee120a6a86eb7" - integrity sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ== - esbuild@0.19.2: version "0.19.2" resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.2.tgz#b1541828a89dfb6f840d38538767c6130dca2aac" @@ -9417,34 +9317,6 @@ esbuild@0.19.2: "@esbuild/win32-ia32" "0.19.2" "@esbuild/win32-x64" "0.19.2" -esbuild@^0.15.9: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.18.tgz#ea894adaf3fbc036d32320a00d4d6e4978a2f36d" - integrity sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q== - optionalDependencies: - "@esbuild/android-arm" "0.15.18" - "@esbuild/linux-loong64" "0.15.18" - esbuild-android-64 "0.15.18" - esbuild-android-arm64 "0.15.18" - esbuild-darwin-64 "0.15.18" - esbuild-darwin-arm64 "0.15.18" - esbuild-freebsd-64 "0.15.18" - esbuild-freebsd-arm64 "0.15.18" - esbuild-linux-32 "0.15.18" - esbuild-linux-64 "0.15.18" - esbuild-linux-arm "0.15.18" - esbuild-linux-arm64 "0.15.18" - esbuild-linux-mips64le "0.15.18" - esbuild-linux-ppc64le "0.15.18" - esbuild-linux-riscv64 "0.15.18" - esbuild-linux-s390x "0.15.18" - esbuild-netbsd-64 "0.15.18" - esbuild-openbsd-64 "0.15.18" - esbuild-sunos-64 "0.15.18" - esbuild-windows-32 "0.15.18" - esbuild-windows-64 "0.15.18" - esbuild-windows-arm64 "0.15.18" - esbuild@^0.18.10: version "0.18.20" resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.18.20.tgz#4709f5a34801b43b799ab7d6d82f7284a9b7a7a6" @@ -14865,6 +14737,13 @@ magic-string@^0.30.0: dependencies: "@jridgewell/sourcemap-codec" "^1.4.15" +magic-string@^0.30.3: + version "0.30.5" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.5.tgz#1994d980bd1c8835dc6e78db7cbd4ae4f24746f9" + integrity sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA== + dependencies: + "@jridgewell/sourcemap-codec" "^1.4.15" + make-dir@^3.0.0, make-dir@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" @@ -17204,7 +17083,7 @@ postcss-values-parser@^6.0.2: is-url-superb "^4.0.0" quote-unquote "^1.0.0" -postcss@^8.1.10, postcss@^8.4.18, postcss@^8.4.19, postcss@^8.4.23, postcss@^8.4.27: +postcss@^8.1.10, postcss@^8.4.19, postcss@^8.4.23, postcss@^8.4.27: version "8.4.29" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.29.tgz#33bc121cf3b3688d4ddef50be869b2a54185a1dd" integrity sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw== @@ -18221,7 +18100,7 @@ resolve@1.17.0: dependencies: path-parse "^1.0.6" -resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.17.0, resolve@^1.22.1, resolve@^1.22.2, resolve@^1.8.1, resolve@~1.22.1: +resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.22.1, resolve@^1.22.2, resolve@^1.8.1, resolve@~1.22.1: version "1.22.4" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.4.tgz#1dc40df46554cdaf8948a486a10f6ba1e2026c34" integrity sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg== @@ -18230,6 +18109,15 @@ resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.17.0, resolve@^1.22. path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" +resolve@^1.17.0: + 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" + resolve@^2.0.0-next.1: version "2.0.0-next.4" resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.4.tgz#3d37a113d6429f496ec4752d2a2e58efb1fd4660" @@ -18360,13 +18248,6 @@ rlp@^2.0.0, rlp@^2.2.1, rlp@^2.2.2, rlp@^2.2.3, rlp@^2.2.4, rlp@^2.2.5: dependencies: bn.js "^5.2.0" -rollup@^2.79.1: - version "2.79.1" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.79.1.tgz#bedee8faef7c9f93a2647ac0108748f497f081c7" - integrity sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw== - optionalDependencies: - fsevents "~2.3.2" - rollup@^3.27.1: version "3.28.1" resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.28.1.tgz#fb44aa6d5e65c7e13fd5bcfff266d0c4ea9ba433" @@ -20865,15 +20746,24 @@ vite-node@0.26.3: source-map-support "^0.5.21" vite "^3.0.0 || ^4.0.0" -vite@3.2.4: - version "3.2.4" - resolved "https://registry.yarnpkg.com/vite/-/vite-3.2.4.tgz#d8c7892dd4268064e04fffbe7d866207dd24166e" - integrity sha512-Z2X6SRAffOUYTa+sLy3NQ7nlHFU100xwanq1WDwqaiFiCe+25zdxP1TfCS5ojPV2oDDcXudHIoPnI1Z/66B7Yw== +vite-plugin-node-polyfills@0.15.0: + version "0.15.0" + resolved "https://registry.yarnpkg.com/vite-plugin-node-polyfills/-/vite-plugin-node-polyfills-0.15.0.tgz#ea425595f4258e04fddd06b4e422fc8d391e6a17" + integrity sha512-IF9aTSPV9zebrcC6ezJA3Ym4r4U1C3jKUAnG16Sq7+UPtisNEOcNOAu3p5wcgFFOuuUwAUjQlIeJHMcnSXXemQ== dependencies: - esbuild "^0.15.9" - postcss "^8.4.18" - resolve "^1.22.1" - rollup "^2.79.1" + "@rollup/plugin-inject" "^5.0.3" + buffer-polyfill "npm:buffer@^6.0.3" + node-stdlib-browser "^1.2.0" + process "^0.11.10" + +vite@4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/vite/-/vite-4.5.0.tgz#ec406295b4167ac3bc23e26f9c8ff559287cff26" + integrity sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw== + dependencies: + esbuild "^0.18.10" + postcss "^8.4.27" + rollup "^3.27.1" optionalDependencies: fsevents "~2.3.2" From 19d43364e268dcd5ed96d144136577bd17f3686a Mon Sep 17 00:00:00 2001 From: yuetloo Date: Wed, 25 Oct 2023 11:16:25 -0400 Subject: [PATCH 067/338] cleanup vite config --- vue-app/package.json | 1 - vue-app/vite.config.ts | 6 ++---- yarn.lock | 9 --------- 3 files changed, 2 insertions(+), 14 deletions(-) diff --git a/vue-app/package.json b/vue-app/package.json index 628c4ac43..e400a9725 100644 --- a/vue-app/package.json +++ b/vue-app/package.json @@ -56,7 +56,6 @@ "@graphql-codegen/typescript-graphql-request": "^4.5.9", "@graphql-codegen/typescript-operations": "^3.0.3", "@intlify/unplugin-vue-i18n": "^0.8.1", - "@rollup/plugin-inject": "^5.0.2", "@rushstack/eslint-patch": "^1.2.0", "@types/humanize-duration": "^3.27.1", "@types/luxon": "^3.1.0", diff --git a/vue-app/vite.config.ts b/vue-app/vite.config.ts index 37367c0a6..bca1e7df3 100644 --- a/vue-app/vite.config.ts +++ b/vue-app/vite.config.ts @@ -1,10 +1,9 @@ import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' -import path from 'path' +import * as path from 'path' import { nodePolyfills } from 'vite-plugin-node-polyfills' import AutoImport from 'unplugin-auto-import/vite' import Components from 'unplugin-vue-components/vite' -import inject from '@rollup/plugin-inject' import VueI18nPlugin from '@intlify/unplugin-vue-i18n/vite' // https://vitejs.dev/config/ @@ -40,9 +39,8 @@ export default defineConfig({ alias: { '@': path.resolve(__dirname, 'src') }, }, optimizeDeps: { - include: ['@clrfund/common'], esbuildOptions: { - target: 'esnext', // to enable nable Big integer literals + target: 'esnext', // to enable Big integer literals }, }, build: { diff --git a/yarn.lock b/yarn.lock index 7e5f6c08c..93e9d16a9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3643,15 +3643,6 @@ path-browserify "^1.0.0" url "^0.11.0" -"@rollup/plugin-inject@^5.0.2": - version "5.0.3" - resolved "https://registry.yarnpkg.com/@rollup/plugin-inject/-/plugin-inject-5.0.3.tgz#0783711efd93a9547d52971db73b2fb6140a67b1" - integrity sha512-411QlbL+z2yXpRWFXSmw/teQRMkXcAAC8aYTemc15gwJRpvEVDQwoe+N/HTFD8RFG8+88Bme9DK2V9CVm7hJdA== - dependencies: - "@rollup/pluginutils" "^5.0.1" - estree-walker "^2.0.2" - magic-string "^0.27.0" - "@rollup/plugin-inject@^5.0.3": version "5.0.5" resolved "https://registry.yarnpkg.com/@rollup/plugin-inject/-/plugin-inject-5.0.5.tgz#616f3a73fe075765f91c5bec90176608bed277a3" From 561cf146930dbc1d86ea791eba0d11d4a872e7fb Mon Sep 17 00:00:00 2001 From: yuetloo Date: Thu, 26 Oct 2023 15:27:09 -0400 Subject: [PATCH 068/338] use @clrfund/maci-circuit and cli 1.1.4 --- contracts/e2e/index.ts | 2 +- contracts/package.json | 5 ++--- contracts/utils/deployment.ts | 2 +- contracts/utils/maci.ts | 8 ++++---- yarn.lock | 36 +++++++++++++++++------------------ 5 files changed, 26 insertions(+), 27 deletions(-) diff --git a/contracts/e2e/index.ts b/contracts/e2e/index.ts index 3a96f1dfe..634d38016 100644 --- a/contracts/e2e/index.ts +++ b/contracts/e2e/index.ts @@ -12,7 +12,7 @@ import { hash2, hash3, } from '@clrfund/common' -import { genTallyResultCommitment } from 'maci-core' +import { genTallyResultCommitment } from '@clrfund/common' import { UNIT } from '../utils/constants' import { getEventArg } from '../utils/contracts' diff --git a/contracts/package.json b/contracts/package.json index 4c284a7a2..253bd6894 100644 --- a/contracts/package.json +++ b/contracts/package.json @@ -29,10 +29,9 @@ "solidity-rlp": "2.0.8" }, "devDependencies": { - "maci-circuits": "1.1.1", - "maci-core": "1.1.1", + "@clrfund/maci-circuits": "1.1.4", "@clrfund/common": "^0.0.1", - "@clrfund/maci-cli": "^1.1.3", + "@clrfund/maci-cli": "1.1.4", "@ethereum-waffle/mock-contract": "^3.4.4", "@kleros/gtcr-encoder": "^1.4.0", "@nomiclabs/hardhat-ethers": "^2.2.1", diff --git a/contracts/utils/deployment.ts b/contracts/utils/deployment.ts index 39ddbdb91..0c9481f06 100644 --- a/contracts/utils/deployment.ts +++ b/contracts/utils/deployment.ts @@ -10,7 +10,7 @@ import { } from '@clrfund/maci-cli' import { readFileSync } from 'fs' -import { MaciParameters } from './maci.ts' +import { MaciParameters } from './maci' const TREE_ARITY = 5 diff --git a/contracts/utils/maci.ts b/contracts/utils/maci.ts index 623934f70..4b61c1b2c 100644 --- a/contracts/utils/maci.ts +++ b/contracts/utils/maci.ts @@ -10,9 +10,9 @@ import { LEAVES_PER_NODE, } from '@clrfund/common' -import { genTallyResultCommitment } from 'maci-core' +import { genTallyResultCommitment } from '@clrfund/common' import { VerifyingKey } from 'maci-domainobjs' -import { extractVk } from 'maci-circuits' +import { extractVk } from '@clrfund/maci-circuits' import { CIRCUITS } from './deployment' import path from 'path' @@ -230,7 +230,7 @@ export async function addTallyResultsBatch( ) const perVOSpentVoiceCreditsHash = genTallyResultCommitment( - tallyData.perVOSpentVoiceCredits.tally.map((x) => BigInt(x)), + tallyData.perVOSpentVoiceCredits.tally.map((x: string) => BigInt(x)), BigInt(tallyData.perVOSpentVoiceCredits.salt), recipientTreeDepth ) @@ -267,7 +267,7 @@ export async function addTallyResultsBatch( recipientTreeDepth, ...data, BigInt(tallyData.results.salt).toString(), - BigInt(spentVoiceCreditsHash).toString(), + spentVoiceCreditsHash.toString(), BigInt(perVOSpentVoiceCreditsHash).toString(), tallyData.newTallyCommitment ) diff --git a/yarn.lock b/yarn.lock index 93e9d16a9..a109c2372 100644 --- a/yarn.lock +++ b/yarn.lock @@ -604,11 +604,23 @@ "@chainsafe/persistent-merkle-tree" "^0.4.2" case "^1.6.3" -"@clrfund/maci-cli@^1.1.3": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@clrfund/maci-cli/-/maci-cli-1.1.3.tgz#1ac174ade46b2126e94b6a8aa3a96e96af7ed97f" - integrity sha512-6Wbwx1sKhLMk/svvKOTXHFTvo1dak1y5J5pME619owolULl55G2Eb9ZHWGrxLbw9AAUZl+hbdUriiRomOLyhzA== +"@clrfund/maci-circuits@1.1.4": + version "1.1.4" + resolved "https://registry.yarnpkg.com/@clrfund/maci-circuits/-/maci-circuits-1.1.4.tgz#70e0e662faeacd91affcb4697365eff762079acb" + integrity sha512-hV+HNRJG0rtzzI/6P+UyG7gsPzDsW3GO/GsbgTtPbRNTOB/DSF/isQGCOMLKVPr1XIySMXiDK1pdERiyLlUMTg== + dependencies: + argparse "^2.0.1" + circomlib "https://github.com/weijiekoh/circomlib#ac85e82c1914d47789e2032fb11ceb2cfdd38a2b" + shelljs "^0.8.3" + snarkjs "^0.5.0" + tmp "^0.2.1" + +"@clrfund/maci-cli@1.1.4": + version "1.1.4" + resolved "https://registry.yarnpkg.com/@clrfund/maci-cli/-/maci-cli-1.1.4.tgz#efd8756dc51bd9e128cc4b1afbba43c1eb02f4dd" + integrity sha512-oPs1rx1jeKygalv0e4ZB5vG4lLvu43Afqad/2YhBJ1O9kg/47S+sKWOj+VAk1Bzbd7JENwVP3tw24yjTgnFvLA== dependencies: + "@clrfund/maci-circuits" "1.1.4" "@nomiclabs/hardhat-ethers" "^2.0.2" argparse "^1.0.10" circom_runtime "^0.1.22" @@ -617,7 +629,6 @@ ffiasm "0.1.3" hardhat "^2.0.11" js-yaml "4.0.0" - maci-circuits "1.1.1" maci-common "1.1.1" maci-contracts "1.1.1" maci-core "1.1.1" @@ -7481,9 +7492,9 @@ circomlib@^2.0.0, circomlib@^2.0.5: ffjavascript "0.1.0" web3-utils "^1.3.0" -"circomlib@github:weijiekoh/circomlib#ac85e82c1914d47789e2032fb11ceb2cfdd38a2b": +"circomlib@https://github.com/weijiekoh/circomlib#ac85e82c1914d47789e2032fb11ceb2cfdd38a2b": version "1.0.0" - resolved "https://codeload.github.com/weijiekoh/circomlib/tar.gz/ac85e82c1914d47789e2032fb11ceb2cfdd38a2b" + resolved "https://github.com/weijiekoh/circomlib#ac85e82c1914d47789e2032fb11ceb2cfdd38a2b" "circomlib@https://github.com/weijiekoh/circomlib.git#24ed08eee0bb613b8c0135d66c1013bd9f78d50a": version "0.5.2" @@ -14611,17 +14622,6 @@ luxon@^3.1.1, luxon@^3.2.1: resolved "https://registry.yarnpkg.com/luxon/-/luxon-3.4.2.tgz#f5bcab779f3d6a943ee7c8621c2b416bc10abd24" integrity sha512-uBoAVCVcajsrqy3pv7eo5jEUz1oeLmCcnMv8n4AJpT5hbpN9lUssAXibNElpbLce3Mhm9dyBzwYLs9zctM/0tA== -maci-circuits@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/maci-circuits/-/maci-circuits-1.1.1.tgz#640d2cf9950013ca192e83f39cb4bbc5dbf59ea4" - integrity sha512-t5Vk8Z45joTot/Yc63rBT0LGNIaENzGHQiZXsFYSFv92waAEpHlDyP5KzE6m2x73i9I8IFx6HNHxm11Ppc8umA== - dependencies: - argparse "^2.0.1" - circomlib "github:weijiekoh/circomlib#ac85e82c1914d47789e2032fb11ceb2cfdd38a2b" - shelljs "^0.8.3" - snarkjs "^0.5.0" - tmp "^0.2.1" - maci-common@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/maci-common/-/maci-common-1.1.1.tgz#63b0ff5e42ec5f2a6f549b0e88b0066fcaf5b45e" From 6fc0590a50eff71975e7c394ebe2e4ac0f2dfaaa Mon Sep 17 00:00:00 2001 From: yuetloo Date: Thu, 26 Oct 2023 16:07:17 -0400 Subject: [PATCH 069/338] use clrfund maci-cli 1.1.5 --- contracts/package.json | 5 ++--- yarn.lock | 18 +++++++++--------- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/contracts/package.json b/contracts/package.json index 253bd6894..ccc7f39c6 100644 --- a/contracts/package.json +++ b/contracts/package.json @@ -3,7 +3,6 @@ "version": "4.3.0", "license": "GPL-3.0", "scripts": { - "postinstallx": "ln -sf ../../snarkjs ./node_modules/maci-circuits/node_modules/snarkjs && ln -sf ../../../../../../snarkjs ./@clrfund/maci-cli/node_modules/maci-circuits/node_modules/snarkjs", "hardhat": "hardhat", "build": "hardhat compile", "node": "hardhat node --port 18545 --hostname 0.0.0.0", @@ -29,9 +28,9 @@ "solidity-rlp": "2.0.8" }, "devDependencies": { - "@clrfund/maci-circuits": "1.1.4", + "@clrfund/maci-circuits": "1.1.5", "@clrfund/common": "^0.0.1", - "@clrfund/maci-cli": "1.1.4", + "@clrfund/maci-cli": "1.1.5", "@ethereum-waffle/mock-contract": "^3.4.4", "@kleros/gtcr-encoder": "^1.4.0", "@nomiclabs/hardhat-ethers": "^2.2.1", diff --git a/yarn.lock b/yarn.lock index a109c2372..eae711844 100644 --- a/yarn.lock +++ b/yarn.lock @@ -604,10 +604,10 @@ "@chainsafe/persistent-merkle-tree" "^0.4.2" case "^1.6.3" -"@clrfund/maci-circuits@1.1.4": - version "1.1.4" - resolved "https://registry.yarnpkg.com/@clrfund/maci-circuits/-/maci-circuits-1.1.4.tgz#70e0e662faeacd91affcb4697365eff762079acb" - integrity sha512-hV+HNRJG0rtzzI/6P+UyG7gsPzDsW3GO/GsbgTtPbRNTOB/DSF/isQGCOMLKVPr1XIySMXiDK1pdERiyLlUMTg== +"@clrfund/maci-circuits@1.1.5": + version "1.1.5" + resolved "https://registry.yarnpkg.com/@clrfund/maci-circuits/-/maci-circuits-1.1.5.tgz#0ff8e1dc209327594c8cecbae4c1f9cf7679fdfa" + integrity sha512-SUGRtU0+NeCVvb5pArES3g04n4GTzeg5XxioxHj5lB+YWceWO3dPoiQBryrW6pQQBylC0BzwtGNhQb4yyupAHQ== dependencies: argparse "^2.0.1" circomlib "https://github.com/weijiekoh/circomlib#ac85e82c1914d47789e2032fb11ceb2cfdd38a2b" @@ -615,12 +615,12 @@ snarkjs "^0.5.0" tmp "^0.2.1" -"@clrfund/maci-cli@1.1.4": - version "1.1.4" - resolved "https://registry.yarnpkg.com/@clrfund/maci-cli/-/maci-cli-1.1.4.tgz#efd8756dc51bd9e128cc4b1afbba43c1eb02f4dd" - integrity sha512-oPs1rx1jeKygalv0e4ZB5vG4lLvu43Afqad/2YhBJ1O9kg/47S+sKWOj+VAk1Bzbd7JENwVP3tw24yjTgnFvLA== +"@clrfund/maci-cli@1.1.5": + version "1.1.5" + resolved "https://registry.yarnpkg.com/@clrfund/maci-cli/-/maci-cli-1.1.5.tgz#e6939f2e9dbd7d2a8fa7e50527c9c7ba3f90f5dd" + integrity sha512-tgh/qHwz6KFToKfwubdvVjn6P7jeS6Z2Sy9tdk4jizGdJ5x0r9Do84x8uJN5ithkb3ND6KbgI+tUMqnz/PYhvA== dependencies: - "@clrfund/maci-circuits" "1.1.4" + "@clrfund/maci-circuits" "1.1.5" "@nomiclabs/hardhat-ethers" "^2.0.2" argparse "^1.0.10" circom_runtime "^0.1.22" From af37c5d732431c1115ee43e9be39918bddc5aa29 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Thu, 26 Oct 2023 16:23:16 -0400 Subject: [PATCH 070/338] add missing await --- contracts/utils/maci.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/contracts/utils/maci.ts b/contracts/utils/maci.ts index 4b61c1b2c..23f5ad9ed 100644 --- a/contracts/utils/maci.ts +++ b/contracts/utils/maci.ts @@ -78,13 +78,18 @@ export class MaciParameters { ] } - static fromConfig(circuit: string, directory: string): MaciParameters { + static async fromConfig( + circuit: string, + directory: string + ): Promise { const params = CIRCUITS[circuit] const { processZkFile, tallyZkFile } = getCircuitFiles(circuit, directory) const processVk: VerifyingKey = VerifyingKey.fromObj( - extractVk(processZkFile) + await extractVk(processZkFile) + ) + const tallyVk: VerifyingKey = VerifyingKey.fromObj( + await extractVk(tallyZkFile) ) - const tallyVk: VerifyingKey = VerifyingKey.fromObj(extractVk(tallyZkFile)) return new MaciParameters({ ...params.maxValues, From 16162b03b34f6cfcfb829ae2558ed1ddd482be5b Mon Sep 17 00:00:00 2001 From: yuetloo Date: Thu, 26 Oct 2023 17:29:38 -0400 Subject: [PATCH 071/338] fix e2e test error --- contracts/e2e/index.ts | 73 ++++++++++++++++++++++++------------------ 1 file changed, 41 insertions(+), 32 deletions(-) diff --git a/contracts/e2e/index.ts b/contracts/e2e/index.ts index 634d38016..a03621e3a 100644 --- a/contracts/e2e/index.ts +++ b/contracts/e2e/index.ts @@ -47,12 +47,15 @@ const roundDuration = 7 * 86400 // MACI zkFiles const circuit = process.env.CIRCUIT_TYPE || 'micro' const circuitDirectory = process.env.CIRCUIT_DIRECTORY || '../../params' -const params = MaciParameters.fromConfig(circuit, circuitDirectory) const rapidSnarkDirectory = process.env.RAPIDSNARK_DIRECTORY || '../../rapidsnark/build' const rapidSnarkExe = path.join(rapidSnarkDirectory, 'prover') -const { processZkFile, tallyZkFile, processWitness, tallyWitness } = - getCircuitFiles(circuit, circuitDirectory) +const { + processZkFile, + tallyZkFile, + processWitness, + tallyWitness, +} = getCircuitFiles(circuit, circuitDirectory) let maciTransactionHash: string let alpha: bigint let voiceCreditFactor: bigint @@ -86,8 +89,8 @@ function sumVoiceCredits(voiceCredits: BigNumber[]): string { * recipientsVotes[i][j] is the jth vote received by recipient i * returns the tally result for each recipient */ -function tallyVotes(recipientsVotes: BigNumber[][]): string[] { - const result = recipientsVotes.map((votes) => { +function tallyVotes(recipientsVotes: BigNumber[][]): BigNumber[] { + const result = recipientsVotes.map(votes => { return votes.reduce( (sum, voiceCredits) => sum.add(bnSqrt(voiceCredits)), BigNumber.from(0) @@ -104,13 +107,16 @@ function tallyVotes(recipientsVotes: BigNumber[][]): string[] { async function calculateClaims( fundingRound: Contract, votes: BigNumber[][] -): BigNumber[] { +): Promise { const alpha = await fundingRound.alpha() const factor = await fundingRound.voiceCreditFactor() const tallyResult = tallyVotes(votes) return tallyResult.map((quadraticVotes, i) => { const spent = sumVoiceCredits(votes[i]) - const quadratic = quadraticVotes.mul(quadraticVotes).mul(factor).mul(alpha) + const quadratic = quadraticVotes + .mul(quadraticVotes) + .mul(factor) + .mul(alpha) const linear = BigNumber.from(spent) .mul(factor) .mul(ALPHA_PRECISION.sub(alpha)) @@ -118,7 +124,7 @@ async function calculateClaims( }) } -describe('End-to-end Tests', function () { +describe('End-to-end Tests', function() { this.timeout(60 * 60 * 1000) this.bail(true) @@ -141,6 +147,11 @@ describe('End-to-end Tests', function () { let maci: Contract let pollId: bigint let coordinatorKeypair: Keypair + let params: MaciParameters + + before(async () => { + params = await MaciParameters.fromConfig(circuit, circuitDirectory) + }) beforeEach(async () => { ;[ @@ -270,7 +281,7 @@ describe('End-to-end Tests', function () { if (err) throw err for (const file of files) { - unlink(path.join(outputDir, file), (err) => { + unlink(path.join(outputDir, file), err => { if (err) throw err }) } @@ -280,7 +291,7 @@ describe('End-to-end Tests', function () { async function timeTravel(duration: number) { const currentTime = await currentBlockTimestamp(provider) await provider.send('evm_increaseTime', [duration + currentTime]) - await network.provider.send('evm_mine') + await provider.send('evm_mine') } async function makeContributions(amounts: BigNumber[]) { @@ -389,7 +400,6 @@ describe('End-to-end Tests', function () { }) const tally = JSON.parse(readFileSync(tallyFile).toString()) - const saltFile = JSON.parse(readFileSync(sbSaltFile).toString()) const tallyHash = await getIpfsHash(tally) await fundingRound.connect(coordinator).publishTallyHash(tallyHash) @@ -404,7 +414,7 @@ describe('End-to-end Tests', function () { ) const newResultCommitment = genTallyResultCommitment( - tally.results.tally.map((x) => BigInt(x)), + tally.results.tally.map(x => BigInt(x)), tally.results.salt, recipientTreeDepth ) @@ -415,7 +425,7 @@ describe('End-to-end Tests', function () { ]) const perVOSpentVoiceCreditsCommitment = genTallyResultCommitment( - tally.perVOSpentVoiceCredits.tally.map((x) => BigInt(x)), + tally.perVOSpentVoiceCredits.tally.map(x => BigInt(x)), tally.perVOSpentVoiceCredits.salt, recipientTreeDepth ) @@ -438,7 +448,6 @@ describe('End-to-end Tests', function () { recipientTreeDepth, tally ) - const tallyResultOnChain = await fundingRound.recipients(recipientIndex) const claimTx = await fundingRound .connect(recipient) .claimFunds( @@ -504,22 +513,22 @@ describe('End-to-end Tests', function () { } await fundingRound.connect(contributor).submitMessageBatch( - messages.reverse().map((msg) => msg.asContractParam()), - encPubKeys.reverse().map((key) => key.asContractParam()) + messages.reverse().map(msg => msg.asContractParam()), + encPubKeys.reverse().map(key => key.asContractParam()) ) } await timeTravel(roundDuration) const { tally, claims } = await finalizeRound() const expectedTotalVoiceCredits = sumVoiceCredits( - contributions.map((x) => x.voiceCredits) + contributions.map(x => x.voiceCredits) ) expect(tally.totalSpentVoiceCredits.spent).to.equal( expectedTotalVoiceCredits ) const expectedClaims = await calculateClaims( fundingRound, - new Array(2).fill(contributions.map((x) => x.voiceCredits.div(2))) + new Array(2).fill(contributions.map(x => x.voiceCredits.div(2))) ) expect(claims[1]).to.equal(expectedClaims[0]) expect(claims[2]).to.equal(expectedClaims[1]) @@ -555,15 +564,15 @@ describe('End-to-end Tests', function () { nonce += 1 } await fundingRound.connect(contributor).submitMessageBatch( - messages.reverse().map((msg) => msg.asContractParam()), - encPubKeys.reverse().map((key) => key.asContractParam()) + messages.reverse().map(msg => msg.asContractParam()), + encPubKeys.reverse().map(key => key.asContractParam()) ) } await timeTravel(roundDuration) const { tally, claims } = await finalizeRound() const expectedTotalVoiceCredits = sumVoiceCredits( - contributions.map((x) => x.voiceCredits.div(2)) + contributions.map(x => x.voiceCredits.div(2)) ) expect(tally.totalSpentVoiceCredits.spent).to.equal( expectedTotalVoiceCredits @@ -571,7 +580,7 @@ describe('End-to-end Tests', function () { const expectedClaims = await calculateClaims( fundingRound, - new Array(2).fill(contributions.map((x) => x.voiceCredits.div(4))) + new Array(2).fill(contributions.map(x => x.voiceCredits.div(4))) ) expect(claims[1]).to.equal(expectedClaims[0]) expect(claims[2]).to.equal(expectedClaims[1]) @@ -607,8 +616,8 @@ describe('End-to-end Tests', function () { encPubKeys.push(encPubKey) } await fundingRound.connect(contributor).submitMessageBatch( - messages.reverse().map((msg) => msg.asContractParam()), - encPubKeys.reverse().map((key) => key.asContractParam()) + messages.reverse().map(msg => msg.asContractParam()), + encPubKeys.reverse().map(key => key.asContractParam()) ) const [message, encPubKey] = createMessage( contribution2.stateIndex, @@ -684,8 +693,8 @@ describe('End-to-end Tests', function () { encPubKeys.push(encPubKey) } await fundingRound.connect(contributor).submitMessageBatch( - messages.reverse().map((msg) => msg.asContractParam()), - encPubKeys.reverse().map((key) => key.asContractParam()) + messages.reverse().map(msg => msg.asContractParam()), + encPubKeys.reverse().map(key => key.asContractParam()) ) // contribution 2 @@ -768,8 +777,8 @@ describe('End-to-end Tests', function () { encPubKeys.push(encPubKey) } await fundingRound.connect(contributor).submitMessageBatch( - messages.reverse().map((msg) => msg.asContractParam()), - encPubKeys.reverse().map((key) => key.asContractParam()) + messages.reverse().map(msg => msg.asContractParam()), + encPubKeys.reverse().map(key => key.asContractParam()) ) } @@ -858,8 +867,8 @@ describe('End-to-end Tests', function () { messageBatch1.push(message) encPubKeyBatch1.push(encPubKey) await fundingRound.connect(contributor).submitMessageBatch( - messageBatch1.reverse().map((msg) => msg.asContractParam()), - encPubKeyBatch1.reverse().map((key) => key.asContractParam()) + messageBatch1.reverse().map(msg => msg.asContractParam()), + encPubKeyBatch1.reverse().map(key => key.asContractParam()) ) // override votes @@ -906,8 +915,8 @@ describe('End-to-end Tests', function () { messageBatch2.push(message) encPubKeyBatch2.push(encPubKey) await fundingRound.connect(contributor).submitMessageBatch( - messageBatch2.reverse().map((msg) => msg.asContractParam()), - encPubKeyBatch2.reverse().map((key) => key.asContractParam()) + messageBatch2.reverse().map(msg => msg.asContractParam()), + encPubKeyBatch2.reverse().map(key => key.asContractParam()) ) // contribution 2 From 7192cef756594be92d6d258f41e7e064e01f0a17 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Thu, 26 Oct 2023 17:35:12 -0400 Subject: [PATCH 072/338] fix e2e error --- contracts/e2e/index.ts | 59 +++++++++++++++++++----------------------- 1 file changed, 26 insertions(+), 33 deletions(-) diff --git a/contracts/e2e/index.ts b/contracts/e2e/index.ts index a03621e3a..f49341d7e 100644 --- a/contracts/e2e/index.ts +++ b/contracts/e2e/index.ts @@ -50,12 +50,8 @@ const circuitDirectory = process.env.CIRCUIT_DIRECTORY || '../../params' const rapidSnarkDirectory = process.env.RAPIDSNARK_DIRECTORY || '../../rapidsnark/build' const rapidSnarkExe = path.join(rapidSnarkDirectory, 'prover') -const { - processZkFile, - tallyZkFile, - processWitness, - tallyWitness, -} = getCircuitFiles(circuit, circuitDirectory) +const { processZkFile, tallyZkFile, processWitness, tallyWitness } = + getCircuitFiles(circuit, circuitDirectory) let maciTransactionHash: string let alpha: bigint let voiceCreditFactor: bigint @@ -90,7 +86,7 @@ function sumVoiceCredits(voiceCredits: BigNumber[]): string { * returns the tally result for each recipient */ function tallyVotes(recipientsVotes: BigNumber[][]): BigNumber[] { - const result = recipientsVotes.map(votes => { + const result = recipientsVotes.map((votes) => { return votes.reduce( (sum, voiceCredits) => sum.add(bnSqrt(voiceCredits)), BigNumber.from(0) @@ -113,10 +109,7 @@ async function calculateClaims( const tallyResult = tallyVotes(votes) return tallyResult.map((quadraticVotes, i) => { const spent = sumVoiceCredits(votes[i]) - const quadratic = quadraticVotes - .mul(quadraticVotes) - .mul(factor) - .mul(alpha) + const quadratic = quadraticVotes.mul(quadraticVotes).mul(factor).mul(alpha) const linear = BigNumber.from(spent) .mul(factor) .mul(ALPHA_PRECISION.sub(alpha)) @@ -124,7 +117,7 @@ async function calculateClaims( }) } -describe('End-to-end Tests', function() { +describe('End-to-end Tests', function () { this.timeout(60 * 60 * 1000) this.bail(true) @@ -281,7 +274,7 @@ describe('End-to-end Tests', function() { if (err) throw err for (const file of files) { - unlink(path.join(outputDir, file), err => { + unlink(path.join(outputDir, file), (err) => { if (err) throw err }) } @@ -414,7 +407,7 @@ describe('End-to-end Tests', function() { ) const newResultCommitment = genTallyResultCommitment( - tally.results.tally.map(x => BigInt(x)), + tally.results.tally.map((x) => BigInt(x)), tally.results.salt, recipientTreeDepth ) @@ -425,7 +418,7 @@ describe('End-to-end Tests', function() { ]) const perVOSpentVoiceCreditsCommitment = genTallyResultCommitment( - tally.perVOSpentVoiceCredits.tally.map(x => BigInt(x)), + tally.perVOSpentVoiceCredits.tally.map((x) => BigInt(x)), tally.perVOSpentVoiceCredits.salt, recipientTreeDepth ) @@ -513,22 +506,22 @@ describe('End-to-end Tests', function() { } await fundingRound.connect(contributor).submitMessageBatch( - messages.reverse().map(msg => msg.asContractParam()), - encPubKeys.reverse().map(key => key.asContractParam()) + messages.reverse().map((msg) => msg.asContractParam()), + encPubKeys.reverse().map((key) => key.asContractParam()) ) } await timeTravel(roundDuration) const { tally, claims } = await finalizeRound() const expectedTotalVoiceCredits = sumVoiceCredits( - contributions.map(x => x.voiceCredits) + contributions.map((x) => x.voiceCredits) ) expect(tally.totalSpentVoiceCredits.spent).to.equal( expectedTotalVoiceCredits ) const expectedClaims = await calculateClaims( fundingRound, - new Array(2).fill(contributions.map(x => x.voiceCredits.div(2))) + new Array(2).fill(contributions.map((x) => x.voiceCredits.div(2))) ) expect(claims[1]).to.equal(expectedClaims[0]) expect(claims[2]).to.equal(expectedClaims[1]) @@ -564,15 +557,15 @@ describe('End-to-end Tests', function() { nonce += 1 } await fundingRound.connect(contributor).submitMessageBatch( - messages.reverse().map(msg => msg.asContractParam()), - encPubKeys.reverse().map(key => key.asContractParam()) + messages.reverse().map((msg) => msg.asContractParam()), + encPubKeys.reverse().map((key) => key.asContractParam()) ) } await timeTravel(roundDuration) const { tally, claims } = await finalizeRound() const expectedTotalVoiceCredits = sumVoiceCredits( - contributions.map(x => x.voiceCredits.div(2)) + contributions.map((x) => x.voiceCredits.div(2)) ) expect(tally.totalSpentVoiceCredits.spent).to.equal( expectedTotalVoiceCredits @@ -580,7 +573,7 @@ describe('End-to-end Tests', function() { const expectedClaims = await calculateClaims( fundingRound, - new Array(2).fill(contributions.map(x => x.voiceCredits.div(4))) + new Array(2).fill(contributions.map((x) => x.voiceCredits.div(4))) ) expect(claims[1]).to.equal(expectedClaims[0]) expect(claims[2]).to.equal(expectedClaims[1]) @@ -616,8 +609,8 @@ describe('End-to-end Tests', function() { encPubKeys.push(encPubKey) } await fundingRound.connect(contributor).submitMessageBatch( - messages.reverse().map(msg => msg.asContractParam()), - encPubKeys.reverse().map(key => key.asContractParam()) + messages.reverse().map((msg) => msg.asContractParam()), + encPubKeys.reverse().map((key) => key.asContractParam()) ) const [message, encPubKey] = createMessage( contribution2.stateIndex, @@ -693,8 +686,8 @@ describe('End-to-end Tests', function() { encPubKeys.push(encPubKey) } await fundingRound.connect(contributor).submitMessageBatch( - messages.reverse().map(msg => msg.asContractParam()), - encPubKeys.reverse().map(key => key.asContractParam()) + messages.reverse().map((msg) => msg.asContractParam()), + encPubKeys.reverse().map((key) => key.asContractParam()) ) // contribution 2 @@ -777,8 +770,8 @@ describe('End-to-end Tests', function() { encPubKeys.push(encPubKey) } await fundingRound.connect(contributor).submitMessageBatch( - messages.reverse().map(msg => msg.asContractParam()), - encPubKeys.reverse().map(key => key.asContractParam()) + messages.reverse().map((msg) => msg.asContractParam()), + encPubKeys.reverse().map((key) => key.asContractParam()) ) } @@ -867,8 +860,8 @@ describe('End-to-end Tests', function() { messageBatch1.push(message) encPubKeyBatch1.push(encPubKey) await fundingRound.connect(contributor).submitMessageBatch( - messageBatch1.reverse().map(msg => msg.asContractParam()), - encPubKeyBatch1.reverse().map(key => key.asContractParam()) + messageBatch1.reverse().map((msg) => msg.asContractParam()), + encPubKeyBatch1.reverse().map((key) => key.asContractParam()) ) // override votes @@ -915,8 +908,8 @@ describe('End-to-end Tests', function() { messageBatch2.push(message) encPubKeyBatch2.push(encPubKey) await fundingRound.connect(contributor).submitMessageBatch( - messageBatch2.reverse().map(msg => msg.asContractParam()), - encPubKeyBatch2.reverse().map(key => key.asContractParam()) + messageBatch2.reverse().map((msg) => msg.asContractParam()), + encPubKeyBatch2.reverse().map((key) => key.asContractParam()) ) // contribution 2 From 0ef46e212d03e18952a69b6edeae32dfa635c4fc Mon Sep 17 00:00:00 2001 From: yuetloo Date: Thu, 26 Oct 2023 18:04:39 -0400 Subject: [PATCH 073/338] incorrect number of parameters --- contracts/e2e/index.ts | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/contracts/e2e/index.ts b/contracts/e2e/index.ts index f49341d7e..726805e0f 100644 --- a/contracts/e2e/index.ts +++ b/contracts/e2e/index.ts @@ -412,11 +412,6 @@ describe('End-to-end Tests', function () { recipientTreeDepth ) - const newSpentVoiceCreditsCommitment = hash2([ - BigInt(tally.totalSpentVoiceCredits.spent), - BigInt(tally.totalSpentVoiceCredits.salt), - ]) - const perVOSpentVoiceCreditsCommitment = genTallyResultCommitment( tally.perVOSpentVoiceCredits.tally.map((x) => BigInt(x)), tally.perVOSpentVoiceCredits.salt, @@ -443,11 +438,7 @@ describe('End-to-end Tests', function () { ) const claimTx = await fundingRound .connect(recipient) - .claimFunds( - ...claimData, - newResultCommitment.toString(), - newSpentVoiceCreditsCommitment.toString() - ) + .claimFunds(...claimData) const claimedAmount = await getEventArg( claimTx, fundingRound, From 4bd8e7dbea34c65d7acbbe3c031ed76c9f5d36e6 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Fri, 3 Nov 2023 15:06:39 -0400 Subject: [PATCH 074/338] add script to download circuit zkeys for 6-8-2-3 --- .github/scripts/download-6-8-2-3.sh | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100755 .github/scripts/download-6-8-2-3.sh diff --git a/.github/scripts/download-6-8-2-3.sh b/.github/scripts/download-6-8-2-3.sh new file mode 100755 index 000000000..61bda170a --- /dev/null +++ b/.github/scripts/download-6-8-2-3.sh @@ -0,0 +1,24 @@ +#!/bin/bash +set -e + +BASE_URL="https://maci-zkeys.s3.amazonaws.com/v1.1.0/6-8-2-3" +PKGS="maci-zkeys-6-8-2-3.tar.gz" + +mkdir -p params +cd params + + +for p in $PKGS +do + url="$BASE_URL/$p" + echo "downloading $url" + curl $url -o $p + extension="${p##*.}" + if [ "$extension" == "gz" ] + then + tar -zxvf $p + fi +done + +mv zkeys/* . +rm -rf zkeys From e68e83fbfb43052636c3818c5691001fe61217a6 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Thu, 16 Nov 2023 21:45:38 -0500 Subject: [PATCH 075/338] add on chain verification functions for tally result back --- contracts/.env.example | 7 +- contracts/.gitignore | 1 + contracts/contracts/CloneFactory.sol | 37 + contracts/contracts/ClrFundDeployer.sol | 35 +- contracts/contracts/FundingRound.sol | 180 +- contracts/contracts/MACIFactory.sol | 8 +- .../contracts/MessageAqFactoryCreator.sol | 11 - contracts/e2e/index.ts | 128 +- contracts/package.json | 6 +- contracts/tests/deployer.ts | 24 +- contracts/tests/round.ts | 76 +- contracts/utils/circuits.ts | 42 + contracts/utils/deployment.ts | 93 +- contracts/utils/maci.ts | 109 +- yarn.lock | 4754 ++++++++++------- 15 files changed, 3124 insertions(+), 2387 deletions(-) create mode 100644 contracts/contracts/CloneFactory.sol delete mode 100644 contracts/contracts/MessageAqFactoryCreator.sol create mode 100644 contracts/utils/circuits.ts diff --git a/contracts/.env.example b/contracts/.env.example index 9edad8c82..c3c9355ba 100644 --- a/contracts/.env.example +++ b/contracts/.env.example @@ -48,4 +48,9 @@ CIRCUIT_TYPE=prod # The IPFS gateway url used by the prepare-results.ts script -IPFS_GATEWAY_URL= \ No newline at end of file +IPFS_GATEWAY_URL= + +# circuit params and directory used by e2e script +CIRCUIT_TYPE= +CIRCUIT_DIRECTORY= +RAPIDSNARK_DIRECTORY= diff --git a/contracts/.gitignore b/contracts/.gitignore index 67e19cff2..b68456558 100644 --- a/contracts/.gitignore +++ b/contracts/.gitignore @@ -8,3 +8,4 @@ tally.json .env .DS_Store tasks/addresses.txt +proof_output diff --git a/contracts/contracts/CloneFactory.sol b/contracts/contracts/CloneFactory.sol new file mode 100644 index 000000000..99247f723 --- /dev/null +++ b/contracts/contracts/CloneFactory.sol @@ -0,0 +1,37 @@ +// SPDX-License-Identifier: MIT + +/* +The MIT License (MIT) +Copyright (c) 2018 Murray Software, LLC. +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + +pragma solidity 0.8.10; + +contract CloneFactory { // implementation of eip-1167 - see https://eips.ethereum.org/EIPS/eip-1167 + function createClone(address target) internal returns (address result) { + bytes20 targetBytes = bytes20(target); + assembly { + let clone := mload(0x40) + mstore(clone, 0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000) + mstore(add(clone, 0x14), targetBytes) + mstore(add(clone, 0x28), 0x5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000) + result := create(0, clone, 0x37) + } + } +} \ No newline at end of file diff --git a/contracts/contracts/ClrFundDeployer.sol b/contracts/contracts/ClrFundDeployer.sol index b8e84b469..463dd7c50 100644 --- a/contracts/contracts/ClrFundDeployer.sol +++ b/contracts/contracts/ClrFundDeployer.sol @@ -1,46 +1,13 @@ // SPDX-License-Identifier: GPL-3.0 -/* -The MIT License (MIT) -Copyright (c) 2018 Murray Software, LLC. -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -*/ - pragma solidity 0.8.10; import './MACIFactory.sol'; import './ClrFund.sol'; +import {CloneFactory} from './CloneFactory.sol'; import {SignUpGatekeeper} from "maci-contracts/contracts/gatekeepers/SignUpGatekeeper.sol"; import {InitialVoiceCreditProxy} from "maci-contracts/contracts/initialVoiceCreditProxy/InitialVoiceCreditProxy.sol"; -contract CloneFactory { // implementation of eip-1167 - see https://eips.ethereum.org/EIPS/eip-1167 - function createClone(address target) internal returns (address result) { - bytes20 targetBytes = bytes20(target); - assembly { - let clone := mload(0x40) - mstore(clone, 0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000) - mstore(add(clone, 0x14), targetBytes) - mstore(add(clone, 0x28), 0x5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000) - result := create(0, clone, 0x37) - } - } -} - contract ClrFundParams { struct Templates { address clrfund; diff --git a/contracts/contracts/FundingRound.sol b/contracts/contracts/FundingRound.sol index d0432a25b..c55f9867a 100644 --- a/contracts/contracts/FundingRound.sol +++ b/contracts/contracts/FundingRound.sol @@ -8,7 +8,8 @@ import '@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol'; import {DomainObjs} from 'maci-contracts/contracts/DomainObjs.sol'; import {MACI} from 'maci-contracts/contracts/MACI.sol'; -import {Poll,PollProcessorAndTallyer} from 'maci-contracts/contracts/Poll.sol'; +import {Poll} from 'maci-contracts/contracts/Poll.sol'; +import {Tally} from 'maci-contracts/contracts/Tally.sol'; import {SignUpGatekeeper} from "maci-contracts/contracts/gatekeepers/SignUpGatekeeper.sol"; import {InitialVoiceCreditProxy} from "maci-contracts/contracts/initialVoiceCreditProxy/InitialVoiceCreditProxy.sol"; @@ -22,9 +23,9 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom error OnlyMaciCanRegisterVoters(); error NotCoordinator(); error PollNotSet(); - error PollProcessorAndTallyerNotSet(); + error TallyNotSet(); error InvalidPollId(); - error InvalidPollProcessorAndTallyer(); + error InvalidTally(); error MaciAlreadySet(); error MaciNotSet(); error ContributionAmountIsZero(); @@ -52,6 +53,7 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom error TallyHashNotPublished(); error BudgetGreaterThanVotes(); error IncompleteTallyResults(); + error NoVotes(); // Constants uint256 private constant MAX_VOICE_CREDITS = 10 ** 9; // MACI allows 2 ** 32 voice credits max @@ -86,7 +88,7 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom uint256 public pollId; Poll public poll; - PollProcessorAndTallyer public tallyer; + Tally public tally; address public coordinator; MACI public maci; @@ -111,8 +113,8 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom event TallyPublished(string _tallyHash); event Voted(address indexed _contributor); event TallyResultsAdded(uint256 indexed _voteOptionIndex, uint256 _tally); - event PollSet(uint256 indexed _pollId, address indexed poll); - event TallyerSet(address indexed tallyer); + event PollSet(uint256 indexed _pollId, address indexed _poll); + event TallySet(address indexed _tally); modifier onlyCoordinator() { if(msg.sender != coordinator) { @@ -159,21 +161,16 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom * @dev Have the votes been tallied */ function isTallied() internal view returns (bool) { - if (address(tallyer) == address(0)) { - revert PollProcessorAndTallyerNotSet(); - } - - bool processingComplete = tallyer.processingComplete(); - if (!processingComplete) { - return false; + if (address(tally) == address(0)) { + revert TallyNotSet(); } (uint256 numSignUps, ) = poll.numSignUpsAndMessages(); (, uint256 tallyBatchSize, ) = poll.batchSizes(); - uint256 tallyBatchNum = tallyer.tallyBatchNum(); + uint256 tallyBatchNum = tally.tallyBatchNum(); uint256 totalTallied = tallyBatchNum * tallyBatchSize; - return totalTallied >= numSignUps; + return numSignUps > 0 && totalTallied >= numSignUps; } /** @@ -194,20 +191,20 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom } /** - * @dev Set the poll tallyer - * @param _tallyer The poll processor and tallyer contract address + * @dev Set the tally contract + * @param _tally The tally contract address */ - function setTallyer(PollProcessorAndTallyer _tallyer) + function setTally(Tally _tally) external onlyCoordinator { - if (address(_tallyer) == address(0)) { - revert InvalidPollProcessorAndTallyer(); + if (address(_tally) == address(0)) { + revert InvalidTally(); } - tallyer = _tallyer; + tally = _tally; - emit TallyerSet(address(tallyer)); + emit TallySet(address(tally)); } /** @@ -484,13 +481,15 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom // If nobody voted, the round should be cancelled to avoid locking of matching funds require(totalVotes > 0, 'FundingRound: No votes'); */ + if ( _totalSpent == 0) { + revert NoVotes(); + } -/* - bool verified = verifySpentVoiceCredits(_totalSpent, _totalSpentSalt, _newResultCommitment, _perVOSpentVoiceCreditsHash); + bool verified = tally.verifySpentVoiceCredits(_totalSpent, _totalSpentSalt, _newResultCommitment, _perVOSpentVoiceCreditsHash); if (!verified) { revert IncorrectSpentVoiceCredits(); } -*/ + totalSpent = _totalSpent; // Total amount of spent voice credits is the size of the pool of direct rewards. @@ -504,85 +503,6 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom isFinalized = true; } -/* - function verifySpentVoiceCredits( - uint256 _totalSpent, - uint256 _totalSpentSalt, - uint256 _newResultCommitment, - uint256 _perVOSpentVoiceCreditsHash - ) internal view returns (bool) { - uint256[3] memory tally; - tally[0] = _newResultCommitment; - tally[1] = hashLeftRight(_totalSpent, _totalSpentSalt); - tally[2] = _perVOSpentVoiceCreditsHash; - - uint256 tallyCommitment = tallyer.tallyCommitment(); - return hash3(tally) == tallyCommitment; - } - - - function verifyPerVOSpentVoiceCredits( - uint256 _voteOptionIndex, - uint256 _spent, - uint256[][] memory _spentProof, - uint256 _spentSalt, - uint256 _resultCommitment, - uint256 _spentVoiceCreditsCommitment - ) public view returns (bool) { - (,,, uint8 voteOptionTreeDepth) = poll.treeDepths(); - uint256 computedRoot = computeMerkleRootFromPath( - voteOptionTreeDepth, - _voteOptionIndex, - _spent, - _spentProof - ); - - uint256 perVOSpentVoiceCreditsCommitment = hashLeftRight(computedRoot, _spentSalt); - uint256[3] memory tally; - tally[0] = _resultCommitment; - tally[1] = _spentVoiceCreditsCommitment; - tally[2] = perVOSpentVoiceCreditsCommitment; - - uint256 tallyCommitment = tallyer.tallyCommitment(); - return hash3(tally) == tallyCommitment; - } -*/ - - - function computeMerkleRootFromPath( - uint8 _depth, - uint256 _index, - uint256 _leaf, - uint256[][] memory _pathElements - ) public pure returns (uint256) { - uint256 pos = _index % LEAVES_PER_NODE; - uint256 current = _leaf; - uint8 k; - - uint256[LEAVES_PER_NODE] memory level; - - for (uint8 i = 0; i < _depth; ++i) { - for (uint8 j = 0; j < LEAVES_PER_NODE; ++j) { - if (j == pos) { - level[j] = current; - } else { - if (j > pos) { - k = j - 1; - } else { - k = j; - } - level[j] = _pathElements[i][k]; - } - } - - _index /= LEAVES_PER_NODE; - pos = _index % LEAVES_PER_NODE; - current = hash5(level); - } - return current; - } - - /** * @dev Cancel funding round. */ @@ -647,20 +567,21 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom { // create scope to avoid 'stack too deep' error -/* - bool verified = verifyPerVOSpentVoiceCredits( + + (, , , uint8 voteOptionTreeDepth) = poll.treeDepths(); + bool verified = tally.verifyPerVOSpentVoiceCredits( _voteOptionIndex, _spent, _spentProof, _spentSalt, - _resultsCommitment, - _spentVoiceCreditsCommitment + voteOptionTreeDepth, + _spentVoiceCreditsCommitment, + _resultsCommitment ); if (!verified) { revert IncorrectPerVOSpentVoiceCredits(); } -*/ } (uint256 startTime, uint256 duration) = poll.getDeployTimeAndDuration(); @@ -682,24 +603,20 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom /** * @dev Add and verify tally votes and calculate sum of tally squares for alpha calculation. - * @param _voteOptionTreeDepth Vote option tree depth * @param _voteOptionIndex Vote option index. * @param _tallyResult The results of vote tally for the recipients. * @param _tallyResultProof Proofs of correctness of the vote tally results. * @param _tallyResultSalt the respective salt in the results object in the tally.json * @param _spentVoiceCreditsHash hashLeftRight(number of spent voice credits, spent salt) * @param _perVOSpentVoiceCreditsHash hashLeftRight(merkle root of the no spent voice credits per vote option, perVOSpentVoiceCredits salt) - * @param _tallyCommitment newTallyCommitment field in the tally.json */ function _addTallyResult( - uint8 _voteOptionTreeDepth, uint256 _voteOptionIndex, uint256 _tallyResult, uint256[][] calldata _tallyResultProof, uint256 _tallyResultSalt, uint256 _spentVoiceCreditsHash, - uint256 _perVOSpentVoiceCreditsHash, - uint256 _tallyCommitment + uint256 _perVOSpentVoiceCreditsHash ) private { @@ -708,18 +625,22 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom revert VoteResultsAlreadyVerified(); } - bool resultVerified = poll.verifyTallyResult( - _voteOptionIndex, - _tallyResult, - _tallyResultProof, - _tallyResultSalt, - _spentVoiceCreditsHash, - _perVOSpentVoiceCreditsHash, - _tallyCommitment - ); + { + (,,, uint8 voteOptionTreeDepth) = poll.treeDepths(); + bool resultVerified = tally.verifyTallyResult( + _voteOptionIndex, + _tallyResult, + _tallyResultProof, + _tallyResultSalt, + voteOptionTreeDepth, + _spentVoiceCreditsHash, + _perVOSpentVoiceCreditsHash + ); + - if (!resultVerified) { - revert IncorrectTallyResult(); + if (!resultVerified) { + revert IncorrectTallyResult(); + } } recipient.tallyVerified = true; @@ -738,7 +659,6 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom * @param _tallyResultSalt the respective salt in the results object in the tally.json * @param _spentVoiceCreditsHashes hashLeftRight(number of spent voice credits, spent salt) * @param _perVOSpentVoiceCreditsHashes hashLeftRight(merkle root of the no spent voice credits per vote option, perVOSpentVoiceCredits salt) - * @param _tallyCommitment newTallyCommitment field in the tally.json */ function addTallyResultsBatch( uint8 _voteOptionTreeDepth, @@ -747,8 +667,7 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom uint256[][][] calldata _tallyResultProofs, uint256 _tallyResultSalt, uint256 _spentVoiceCreditsHashes, - uint256 _perVOSpentVoiceCreditsHashes, - uint256 _tallyCommitment + uint256 _perVOSpentVoiceCreditsHashes ) external onlyCoordinator @@ -762,16 +681,13 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom for (uint256 i = 0; i < _voteOptionIndices.length; i++) { _addTallyResult( - _voteOptionTreeDepth, _voteOptionIndices[i], _tallyResults[i], _tallyResultProofs[i], _tallyResultSalt, _spentVoiceCreditsHashes, - _perVOSpentVoiceCreditsHashes, - _tallyCommitment + _perVOSpentVoiceCreditsHashes ); } } - } diff --git a/contracts/contracts/MACIFactory.sol b/contracts/contracts/MACIFactory.sol index 6c86b36a5..a6b2d7381 100644 --- a/contracts/contracts/MACIFactory.sol +++ b/contracts/contracts/MACIFactory.sol @@ -3,7 +3,7 @@ pragma solidity ^0.8.10; import {MACI} from 'maci-contracts/contracts/MACI.sol'; -import {Poll, PollFactory, MessageAqFactory} from 'maci-contracts/contracts/Poll.sol'; +import {Poll, PollFactory} from 'maci-contracts/contracts/Poll.sol'; import {SignUpGatekeeper} from 'maci-contracts/contracts/gatekeepers/SignUpGatekeeper.sol'; import {InitialVoiceCreditProxy} from 'maci-contracts/contracts/initialVoiceCreditProxy/InitialVoiceCreditProxy.sol'; import {TopupCredit} from 'maci-contracts/contracts/TopupCredit.sol'; @@ -12,7 +12,6 @@ import {SnarkCommon} from 'maci-contracts/contracts/crypto/SnarkCommon.sol'; import {Ownable} from '@openzeppelin/contracts/access/Ownable.sol'; import {Params} from 'maci-contracts/contracts/Params.sol'; import {PollFactoryCreator} from './PollFactoryCreator.sol'; -import {MessageAqFactoryCreator} from './MessageAqFactoryCreator.sol'; import {IPubKey} from 'maci-contracts/contracts/DomainObjs.sol'; contract MACIFactory is Ownable, Params, SnarkCommon, IPubKey { @@ -138,10 +137,7 @@ contract MACIFactory is Ownable, Params, SnarkCommon, IPubKey { ); pollFactory.transferOwnership(address(_maci)); - MessageAqFactory messageAqFactory = MessageAqFactoryCreator.create(); - messageAqFactory.transferOwnership(address(pollFactory)); - - _maci.init(vkRegistry, messageAqFactory, TopupCredit(topupCredit)); + _maci.init(vkRegistry, TopupCredit(topupCredit)); _maci.deployPoll(duration, maxValues, treeDepths, coordinatorPubKey); // this is a brand new maci, get poll 0 diff --git a/contracts/contracts/MessageAqFactoryCreator.sol b/contracts/contracts/MessageAqFactoryCreator.sol deleted file mode 100644 index c89b2aadd..000000000 --- a/contracts/contracts/MessageAqFactoryCreator.sol +++ /dev/null @@ -1,11 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0 - -pragma solidity 0.8.10; - -import {MessageAqFactory} from 'maci-contracts/contracts/Poll.sol'; - -library MessageAqFactoryCreator { - function create() public returns (MessageAqFactory factory) { - factory = new MessageAqFactory(); - } -} \ No newline at end of file diff --git a/contracts/e2e/index.ts b/contracts/e2e/index.ts index 726805e0f..47f549a3b 100644 --- a/contracts/e2e/index.ts +++ b/contracts/e2e/index.ts @@ -3,15 +3,7 @@ import { ethers, waffle } from 'hardhat' import { use, expect } from 'chai' import { solidity } from 'ethereum-waffle' import { BigNumber, Contract, Signer, Wallet } from 'ethers' -import { - Keypair, - createMessage, - Message, - PubKey, - hashLeftRight, - hash2, - hash3, -} from '@clrfund/common' +import { Keypair, createMessage, Message, PubKey } from '@clrfund/common' import { genTallyResultCommitment } from '@clrfund/common' import { UNIT } from '../utils/constants' @@ -19,7 +11,7 @@ import { getEventArg } from '../utils/contracts' import { deployVkRegistry, deployMaciFactory, - deployPollProcessorAndTallyer, + deployContract, mergeMessages, mergeSignups, genProofs, @@ -33,9 +25,9 @@ import { MaciParameters, addTallyResultsBatch, getRecipientClaimData, - getCircuitFiles, + getGenProofArgs, } from '../utils/maci' -import { unlink, readdir, readFileSync, existsSync, mkdirSync } from 'fs' +import { readFileSync, existsSync, mkdirSync } from 'fs' import path from 'path' use(solidity) @@ -49,23 +41,9 @@ const circuit = process.env.CIRCUIT_TYPE || 'micro' const circuitDirectory = process.env.CIRCUIT_DIRECTORY || '../../params' const rapidSnarkDirectory = process.env.RAPIDSNARK_DIRECTORY || '../../rapidsnark/build' -const rapidSnarkExe = path.join(rapidSnarkDirectory, 'prover') -const { processZkFile, tallyZkFile, processWitness, tallyWitness } = - getCircuitFiles(circuit, circuitDirectory) let maciTransactionHash: string -let alpha: bigint -let voiceCreditFactor: bigint const ALPHA_PRECISION = BigNumber.from(10).pow(18) -const timeMs = new Date().getTime() -const outputDir = path.join('.', 'tally_output', `${timeMs}`) -if (!existsSync(outputDir)) { - mkdirSync(outputDir, { recursive: true }) -} -const tallyFile = path.join(outputDir, `tally.json`) -const sbSaltFile = path.join(outputDir, `tally_0.json`) -const maciStateFile = path.join(outputDir, `macistate_${timeMs}`) - const currentBlockTimestamp = async (provider: any): Promise => { const blockNum = await provider.getBlockNumber() const block = await provider.getBlock(blockNum) @@ -132,6 +110,7 @@ describe('End-to-end Tests', function () { let recipient3: Signer let contributors: Signer[] + let poseidonLibraries: { [key: string]: string } let userRegistry: Contract let recipientRegistry: Contract let fundingRoundFactory: Contract @@ -144,6 +123,7 @@ describe('End-to-end Tests', function () { before(async () => { params = await MaciParameters.fromConfig(circuit, circuitDirectory) + poseidonLibraries = await deployPoseidonLibraries(deployer) }) beforeEach(async () => { @@ -159,7 +139,6 @@ describe('End-to-end Tests', function () { ] = await ethers.getSigners() // Deploy funding round factory - const poseidonLibraries = await deployPoseidonLibraries(deployer) const maciFactory = await deployMaciFactory(deployer, poseidonLibraries) const setMaciTx = await maciFactory.setMaciParameters( ...params.asContractParam() @@ -267,20 +246,6 @@ describe('End-to-end Tests', function () { pollId = BigInt(await fundingRound.pollId()) }) - afterEach(() => { - // clean up tally and proof files after each test - // so that next test has a clean directory to start with - readdir(outputDir, (err, files) => { - if (err) throw err - - for (const file of files) { - unlink(path.join(outputDir, file), (err) => { - if (err) throw err - }) - } - }) - }) - async function timeTravel(duration: number) { const currentTime = await currentBlockTimestamp(provider) await provider.send('evm_increaseTime', [duration + currentTime]) @@ -337,74 +302,81 @@ describe('End-to-end Tests', function () { const providerUrl = (provider as any)._hardhatNetwork.config.url // Process messages and tally votes - const mergeMessagesResult = await mergeMessages({ + await mergeMessages({ contract: maci.address, poll_id: pollId.toString(), num_queue_ops: DEFAULT_SR_QUEUE_OPS, }) - if (mergeMessagesResult !== 0) { - throw new Error('Merge messages failed') - } - - const mergeSignupsResult = await mergeSignups({ + await mergeSignups({ contract: maci.address, poll_id: pollId.toString(), num_queue_ops: DEFAULT_SR_QUEUE_OPS, }) - if (mergeSignupsResult !== 0) { - throw new Error('Merge signups failed') - } - - const genProofArgs = { - contract: maci.address, - eth_provider: providerUrl, - poll_id: pollId.toString(), - tally_file: tallyFile, - rapidsnark: rapidSnarkExe, - process_witnessgen: processWitness, - tally_witnessgen: tallyWitness, - process_zkey: processZkFile, - tally_zkey: tallyZkFile, - transaction_hash: maciTransactionHash, - output: outputDir, - privkey: coordinatorKeypair.privKey.serialize(), - macistate: maciStateFile, + const random = Math.floor(Math.random() * 10 ** 8) + const outputDir = path.join('.', 'proof_output', `${random}`) + if (!existsSync(outputDir)) { + mkdirSync(outputDir, { recursive: true }) } + const genProofArgs = getGenProofArgs({ + maciAddress: maci.address, + providerUrl, + pollId: pollId.toString(), + serializedCoordinatorPrivKey: coordinatorKeypair.privKey.serialize(), + maciTxHash: maciTransactionHash, + rapidSnarkDirectory, + circuitType: circuit, + circuitDirectory, + outputDir, + }) + await genProofs(genProofArgs) - const genProofResult = await genProofs(genProofArgs) - if (genProofResult !== 0) { - throw new Error('generation of proofs failed') - } + // deploy the tally contract + const verifierContract = await deployContract(coordinator, 'Verifier') + const tallyContract = await deployContractWithLinkedLibraries( + coordinator, + 'Tally', + poseidonLibraries, + [verifierContract.address] + ) + await fundingRound.connect(coordinator).setTally(tallyContract.address) - // deploy pollProcessorAndTallyer - const ppt = await deployPollProcessorAndTallyer(coordinator, fundingRound) + // deploy the message processing contract + const mpContract = await deployContractWithLinkedLibraries( + coordinator, + 'MessageProcessor', + poseidonLibraries, + [verifierContract.address] + ) // Submit proofs to MACI contract await proveOnChain({ contract: maci.address, poll_id: pollId.toString(), - ppt: ppt.address, - eth_privkey: coordinator.privateKey, - eth_provider: providerUrl, - privkey: coordinatorKeypair.privKey.serialize(), - proof_dir: outputDir, + mp: mpContract.address, + tally: tallyContract.address, + subsidy: tallyContract.address, // TODO: make subsidy optional + proof_dir: genProofArgs.output, }) - const tally = JSON.parse(readFileSync(tallyFile).toString()) + console.log('finished proveOnChain') + const tally = JSON.parse(readFileSync(genProofArgs.tally_file).toString()) const tallyHash = await getIpfsHash(tally) await fundingRound.connect(coordinator).publishTallyHash(tallyHash) + console.log('Tally hash', tallyHash) // add tally results to funding round - const batchSize = Number(process.env.TALLY_BATCH_SIZE) || 20 + const batchSize = Number(process.env.TALLY_BATCH_SIZE) || 8 const recipientTreeDepth = params.voteOptionTreeDepth + console.log('Adding tally result on chain in batches of', batchSize) await addTallyResultsBatch( fundingRound.connect(coordinator), recipientTreeDepth, tally, batchSize ) + console.log('Finished adding tally results') const newResultCommitment = genTallyResultCommitment( tally.results.tally.map((x) => BigInt(x)), diff --git a/contracts/package.json b/contracts/package.json index 3ae9bd225..870856748 100644 --- a/contracts/package.json +++ b/contracts/package.json @@ -24,13 +24,13 @@ "dependencies": { "@openzeppelin/contracts": "4.9.0", "dotenv": "^8.2.0", - "maci-contracts": "npm:@clrfund/maci-contracts@1.1.3", + "maci-contracts": "npm:@clrfund/maci-contracts@^1.1.7", "solidity-rlp": "2.0.8" }, "devDependencies": { - "@clrfund/maci-circuits": "1.1.5", + "@clrfund/maci-circuits": "^1.1.7", "@clrfund/common": "^0.0.1", - "@clrfund/maci-cli": "1.1.5", + "@clrfund/maci-cli": "^1.1.7", "@ethereum-waffle/mock-contract": "^3.4.4", "@kleros/gtcr-encoder": "^1.4.0", "@nomiclabs/hardhat-ethers": "^2.2.1", diff --git a/contracts/tests/deployer.ts b/contracts/tests/deployer.ts index 4e3f5a8b2..5191ed418 100644 --- a/contracts/tests/deployer.ts +++ b/contracts/tests/deployer.ts @@ -29,21 +29,25 @@ async function setMaciParameters( return clrfundAsSigner.setMaciParameters(...params.asContractParam()) } -async function setRoundTallyer( +async function setRoundTally( clrfund: Contract, coordinator: Signer ): Promise { + const libraries = await deployPoseidonLibraries(coordinator) const verifier = await deployContract(coordinator, 'MockVerifier') - const ppt = await deployContract(coordinator, 'PollProcessorAndTallyer', [ - verifier.address, - ]) + const tally = await deployContractWithLinkedLibraries( + coordinator, + 'Tally', + libraries, + [verifier.address] + ) const roundAddress = await clrfund.getCurrentRound() const round = await ethers.getContractAt( 'FundingRound', roundAddress, coordinator ) - return round.setTallyer(ppt.address) + return round.setTally(tally.address) } describe('Clr fund deployer', () => { @@ -479,7 +483,7 @@ describe('Clr fund deployer', () => { .transfer(factory.address, contributionAmount) await factory.deployNewRound(roundDuration) await provider.send('evm_increaseTime', [roundDuration]) - await setRoundTallyer(factory, coordinator) + await setRoundTally(factory, coordinator) await expect( factory.transferMatchingFunds( totalSpent, @@ -493,7 +497,7 @@ describe('Clr fund deployer', () => { it('allows owner to finalize round even without matching funds', async () => { await factory.deployNewRound(roundDuration) await provider.send('evm_increaseTime', [roundDuration]) - await setRoundTallyer(factory, coordinator) + await setRoundTally(factory, coordinator) await expect( factory.transferMatchingFunds( totalSpent, @@ -510,7 +514,7 @@ describe('Clr fund deployer', () => { await factory.addFundingSource(deployer.address) // Doesn't have tokens await factory.deployNewRound(roundDuration) await provider.send('evm_increaseTime', [roundDuration]) - await setRoundTallyer(factory, coordinator) + await setRoundTally(factory, coordinator) await expect( factory.transferMatchingFunds( totalSpent, @@ -528,7 +532,7 @@ describe('Clr fund deployer', () => { .approve(factory.address, contributionAmount.mul(2)) await factory.deployNewRound(roundDuration) await provider.send('evm_increaseTime', [roundDuration]) - await setRoundTallyer(factory, coordinator) + await setRoundTally(factory, coordinator) await expect( factory.transferMatchingFunds( totalSpent, @@ -542,7 +546,7 @@ describe('Clr fund deployer', () => { it('allows only owner to finalize round', async () => { await factory.deployNewRound(roundDuration) await provider.send('evm_increaseTime', [roundDuration]) - await setRoundTallyer(factory, coordinator) + await setRoundTally(factory, coordinator) await expect( factory .connect(contributor) diff --git a/contracts/tests/round.ts b/contracts/tests/round.ts index 4c671d6ab..ed61cbc2c 100644 --- a/contracts/tests/round.ts +++ b/contracts/tests/round.ts @@ -100,7 +100,7 @@ describe('Funding Round', () => { let maci: Contract let pollId: bigint let poll: Contract - let tallyer: Contract + let tally: Contract async function deployMaciMock(): Promise { const MACIArtifact = await artifacts.readArtifact('MACI') @@ -573,19 +573,17 @@ describe('Funding Round', () => { beforeEach(async () => { maci = await deployMaciMock() poll = await deployMockContractByName('Poll') - tallyer = await deployMockContractByName('PollProcessorAndTallyer') + tally = await deployMockContractByName('Tally') pollId = BigInt(0) - await poll.mock.verifyTallyResult.returns(true) - await poll.mock.verifySpentVoiceCredits.returns(true) await poll.mock.treeDepths.returns(1, 1, 1, tallyTreeDepth) - await maci.mock.getPoll.returns(poll.address) // round.isTallied() = tallyBatchSize * tallyBatchNum >= numSignups await poll.mock.numSignUpsAndMessages.returns(numSignUps, 1) await poll.mock.batchSizes.returns(1, tallyBatchSize, 1) - await tallyer.mock.tallyBatchNum.returns(tallyBatchNum) - await tallyer.mock.processingComplete.returns(true) + await tally.mock.tallyBatchNum.returns(tallyBatchNum) + await tally.mock.verifyTallyResult.returns(true) + await tally.mock.verifySpentVoiceCredits.returns(true) // round.isVotingOver() const deployTime = (await provider.getBlock('latest')).timestamp @@ -599,7 +597,7 @@ describe('Funding Round', () => { it('allows owner to finalize round', async () => { await fundingRound.setMaci(maci.address) await fundingRound.setPoll(pollId) - await fundingRound.connect(coordinator).setTallyer(tallyer.address) + await fundingRound.connect(coordinator).setTally(tally.address) await fundingRound .connect(contributor) @@ -620,15 +618,13 @@ describe('Funding Round', () => { expect(await fundingRound.isFinalized()).to.equal(true) expect(await fundingRound.isCancelled()).to.equal(false) expect(await fundingRound.totalSpent()).to.equal(totalSpent) - // TODO: how to get totalVotes from maci v1? - //expect(await fundingRound.totalVotes()).to.equal(totalVotes) expect(await fundingRound.matchingPoolSize()).to.equal(matchingPoolSize) }) it('allows owner to finalize round when matching pool is empty', async () => { await fundingRound.setMaci(maci.address) await fundingRound.setPoll(pollId) - await fundingRound.connect(coordinator).setTallyer(tallyer.address) + await fundingRound.connect(coordinator).setTally(tally.address) await fundingRound .connect(contributor) @@ -652,7 +648,7 @@ describe('Funding Round', () => { it('counts direct token transfers to funding round as matching pool contributions', async () => { await fundingRound.setMaci(maci.address) await fundingRound.setPoll(pollId) - await fundingRound.connect(coordinator).setTallyer(tallyer.address) + await fundingRound.connect(coordinator).setTally(tally.address) await fundingRound .connect(contributor) @@ -679,7 +675,7 @@ describe('Funding Round', () => { it('reverts if round has been finalized already', async () => { await fundingRound.setMaci(maci.address) await fundingRound.setPoll(pollId) - await fundingRound.connect(coordinator).setTallyer(tallyer.address) + await fundingRound.connect(coordinator).setTally(tally.address) await fundingRound .connect(contributor) @@ -710,7 +706,7 @@ describe('Funding Round', () => { it('reverts if voting is still in progress', async () => { await fundingRound.setMaci(maci.address) await fundingRound.setPoll(pollId) - await fundingRound.connect(coordinator).setTallyer(tallyer.address) + await fundingRound.connect(coordinator).setTally(tally.address) await fundingRound .connect(contributor) @@ -725,7 +721,7 @@ describe('Funding Round', () => { it('reverts if votes has not been tallied', async () => { await fundingRound.setMaci(maci.address) await fundingRound.setPoll(pollId) - await fundingRound.connect(coordinator).setTallyer(tallyer.address) + await fundingRound.connect(coordinator).setTally(tally.address) await fundingRound .connect(contributor) @@ -741,7 +737,7 @@ describe('Funding Round', () => { it('reverts if tally hash has not been published', async () => { await fundingRound.setMaci(maci.address) await fundingRound.setPoll(pollId) - await fundingRound.connect(coordinator).setTallyer(tallyer.address) + await fundingRound.connect(coordinator).setTally(tally.address) await fundingRound .connect(contributor) @@ -757,7 +753,7 @@ describe('Funding Round', () => { it.skip('reverts if total votes is zero', async () => { await fundingRound.setMaci(maci.address) await fundingRound.setPoll(pollId) - await fundingRound.connect(coordinator).setTallyer(tallyer.address) + await fundingRound.connect(coordinator).setTally(tally.address) await fundingRound .connect(contributor) @@ -781,7 +777,7 @@ describe('Funding Round', () => { it.skip('reverts if total amount of spent voice credits is incorrect', async () => { await fundingRound.setMaci(maci.address) await fundingRound.setPoll(pollId) - await fundingRound.connect(coordinator).setTallyer(tallyer.address) + await fundingRound.connect(coordinator).setTally(tally.address) await fundingRound .connect(contributor) @@ -806,7 +802,7 @@ describe('Funding Round', () => { it('allows only owner to finalize round', async () => { await fundingRound.setMaci(maci.address) await fundingRound.setPoll(pollId) - await fundingRound.connect(coordinator).setTallyer(tallyer.address) + await fundingRound.connect(coordinator).setTally(tally.address) await fundingRound .connect(contributor) @@ -837,18 +833,17 @@ describe('Funding Round', () => { maci = await deployMaciMock() poll = await deployMockContractByName('Poll') - tallyer = await deployMockContractByName('PollProcessorAndTallyer') + tally = await deployMockContractByName('Tally') pollId = BigInt(0) - await poll.mock.verifyTallyResult.returns(true) - await poll.mock.verifySpentVoiceCredits.returns(true) + await tally.mock.verifyTallyResult.returns(true) + await tally.mock.verifySpentVoiceCredits.returns(true) await poll.mock.treeDepths.returns(1, 2, 3, tallyTreeDepth) await maci.mock.getPoll.returns(poll.address) // round.isTallied() = tallyBatchSize * tallyBatchNum >= numSignups await poll.mock.numSignUpsAndMessages.returns(numSignUps, 1) await poll.mock.batchSizes.returns(1, tallyBatchSize, 1) - await tallyer.mock.tallyBatchNum.returns(tallyBatchNum) - await tallyer.mock.processingComplete.returns(true) + await tally.mock.tallyBatchNum.returns(tallyBatchNum) // round.isVotingOver() const deployTime = (await provider.getBlock('latest')).timestamp @@ -856,7 +851,7 @@ describe('Funding Round', () => { await fundingRound.setMaci(maci.address) await fundingRound.setPoll(pollId) - await fundingRound.connect(coordinator).setTallyer(tallyer.address) + await fundingRound.connect(coordinator).setTally(tally.address) await token .connect(contributor) .approve(fundingRound.address, totalContributions) @@ -1009,19 +1004,18 @@ describe('Funding Round', () => { beforeEach(async () => { maci = await deployMaciMock() poll = await deployMockContractByName('Poll') - tallyer = await deployMockContractByName('PollProcessorAndTallyer') + tally = await deployMockContractByName('Tally') pollId = BigInt(0) - await poll.mock.verifyTallyResult.returns(true) - await poll.mock.verifySpentVoiceCredits.returns(true) await poll.mock.treeDepths.returns(1, 1, 1, tallyTreeDepth) await maci.mock.getPoll.returns(poll.address) // round.isTallied() = tallyBatchSize * tallyBatchNum >= numSignups await poll.mock.numSignUpsAndMessages.returns(numSignUps, 1) await poll.mock.batchSizes.returns(1, tallyBatchSize, 1) - await poll.mock.verifyPerVOSpentVoiceCredits.returns(true) - await tallyer.mock.tallyBatchNum.returns(tallyBatchNum) - await tallyer.mock.processingComplete.returns(true) + await tally.mock.verifyPerVOSpentVoiceCredits.returns(true) + await tally.mock.verifyTallyResult.returns(true) + await tally.mock.verifySpentVoiceCredits.returns(true) + await tally.mock.tallyBatchNum.returns(tallyBatchNum) // round.isVotingOver() const deployTime = (await provider.getBlock('latest')).timestamp @@ -1032,7 +1026,7 @@ describe('Funding Round', () => { await fundingRound.setMaci(maci.address) await fundingRound.setPoll(pollId) - await fundingRound.connect(coordinator).setTallyer(tallyer.address) + await fundingRound.connect(coordinator).setTally(tally.address) const tokenAsContributor = token.connect(contributor) await tokenAsContributor.approve(fundingRound.address, contributions) fundingRoundAsContributor = fundingRound.connect(contributor) @@ -1224,7 +1218,7 @@ describe('Funding Round', () => { it('should verify that tally result is correct', async () => { await token.transfer(fundingRound.address, budget) - await poll.mock.verifyTallyResult.returns(false) + await tally.mock.verifyTallyResult.returns(false) await expect( addTallyResultsBatch( fundingRound.connect(coordinator), @@ -1237,7 +1231,7 @@ describe('Funding Round', () => { it.skip('should verify that amount of spent voice credits is correct', async () => { await token.transfer(fundingRound.address, budget) - await poll.mock.verifyPerVOSpentVoiceCredits.returns(false) + await tally.mock.verifyPerVOSpentVoiceCredits.returns(false) await addTallyResultsBatch( fundingRound.connect(coordinator), @@ -1261,25 +1255,23 @@ describe('Funding Round', () => { describe('finalizing with alpha', function () { this.timeout(2 * 60 * 1000) const treeDepth = 2 - const totalVotes = 11382064 const totalSpentSalt = genRandomSalt().toString() beforeEach(async () => { maci = await deployMaciMock() poll = await deployMockContractByName('Poll') - tallyer = await deployMockContractByName('PollProcessorAndTallyer') + tally = await deployMockContractByName('Tally') pollId = BigInt(0) - await poll.mock.verifyTallyResult.returns(true) - await poll.mock.verifySpentVoiceCredits.returns(true) + await tally.mock.verifyTallyResult.returns(true) + await tally.mock.verifySpentVoiceCredits.returns(true) await poll.mock.treeDepths.returns(1, 1, 1, treeDepth) await maci.mock.getPoll.returns(poll.address) // round.isTallied() = tallyBatchSize * tallyBatchNum >= numSignups await poll.mock.numSignUpsAndMessages.returns(numSignUps, 1) await poll.mock.batchSizes.returns(1, tallyBatchSize, 1) - await poll.mock.verifyPerVOSpentVoiceCredits.returns(true) - await tallyer.mock.tallyBatchNum.returns(tallyBatchNum) - await tallyer.mock.processingComplete.returns(true) + await tally.mock.verifyPerVOSpentVoiceCredits.returns(true) + await tally.mock.tallyBatchNum.returns(tallyBatchNum) // round.isVotingOver() const deployTime = (await provider.getBlock('latest')).timestamp @@ -1290,7 +1282,7 @@ describe('Funding Round', () => { await fundingRound.setMaci(maci.address) await fundingRound.setPoll(pollId) - await fundingRound.connect(coordinator).setTallyer(tallyer.address) + await fundingRound.connect(coordinator).setTally(tally.address) await recipientRegistry.mock.getRecipientAddress.returns( recipient.address ) diff --git a/contracts/utils/circuits.ts b/contracts/utils/circuits.ts new file mode 100644 index 000000000..c12108426 --- /dev/null +++ b/contracts/utils/circuits.ts @@ -0,0 +1,42 @@ +// custom configuration for MACI parameters +// See https://github.com/privacy-scaling-explorations/maci/wiki/Precompiled-v1.1.1 for parameter definition +// TODO: currently the version of MACI used in clrfund only supports circuit 6-8-2-3 because stateTreeDepth = 6 in MACI contract + +const TREE_ARITY = 5 + +export const CIRCUITS: { [name: string]: any } = { + micro: { + processMessagesZkey: 'processmessages_6-8-2-3_final.zkey', + processWitness: 'processMessages_6-8-2-3_test', + processWasm: 'processmessages_6-8-2-3.wasm', + tallyVotesZkey: 'tallyvotes_6-2-3_final.zkey', + tallyWitness: 'tallyVotes_6-2-3_test', + tallyWasm: 'tallyvotes_6-2-3.wasm', + treeDepths: { + // + stateTreeDepth: 6, + messageTreeDepth: 8, + // TODO: confirm if messageBatchTreeDepth is the same as _messageTreeSubDepth in TreeDepths. + // see https://github.com/clrfund/maci-v1/blob/b5ea1ed4a10c14dc133f8d61e886120cda240003/cli/ts/deployPoll.ts#L153 + // TODO: is messageBatchTreeDepth == intStateTreeDepth?? + messageTreeSubDepth: 2, + voteOptionTreeDepth: 3, + // TODO: confirm if intStateTreeDepth is the 2nd param in tallyVotes.circom + intStateTreeDepth: 2, + }, + maxValues: { + // maxMessages and maxVoteOptions are calculated using treeArity = 5 as seen in the following code: + // https://github.com/privacy-scaling-explorations/maci/blob/master/contracts/contracts/Poll.sol#L115 + // treeArity ** messageTreeDepth + maxMessages: TREE_ARITY ** 8, + // treeArity ** voteOptionTreeDepth + maxVoteOptions: TREE_ARITY ** 3, + }, + batchSizes: { + // TODO: confirm the following mapping + // https://github.com/privacy-scaling-explorations/maci/blob/master/contracts/contracts/MACI.sol#L259 + // treeArity ** messageBatchTreeDepth + messageBatchSize: TREE_ARITY ** 2, + }, + }, +} diff --git a/contracts/utils/deployment.ts b/contracts/utils/deployment.ts index 0c9481f06..d4a75e27a 100644 --- a/contracts/utils/deployment.ts +++ b/contracts/utils/deployment.ts @@ -11,8 +11,7 @@ import { import { readFileSync } from 'fs' import { MaciParameters } from './maci' - -const TREE_ARITY = 5 +import { CIRCUTIS } from './circuits' const userRegistryNames: Record = { simple: 'SimpleUserRegistry', @@ -67,69 +66,6 @@ export function linkBytecode( return linkable.evm.bytecode.object } -// custom configuration for MACI parameters -export const CIRCUITS: { [name: string]: any } = { - // TODO: check if the maci v1 only supports micro based on the following comment: - // https://github.com/privacy-scaling-explorations/maci/blob/master/contracts/contracts/MACI.sol#L25 - micro: { - //https://github.com/privacy-scaling-explorations/maci/wiki/Precompiled-v1.1.1#micro-size - processMessagesZkey: 'ProcessMessages_10-2-1-2_test.0.zkey', - tallyVotesZkey: 'TallyVotes_10-1-2_test.0.zkey', - processWitness: 'ProcessMessages_10-2-1-2_test', - tallyWitness: 'TallyVotes_10-1-2_test', - treeDepths: { - // TODO: confirm if the following 4 parameters are the 4 parameters in processMessages.circom - stateTreeDepth: 10, - messageTreeDepth: 2, - // TODO: confirm if messageBatchTreeDepth is the same as _messageTreeSubDepth in TreeDepths. - // see https://github.com/clrfund/maci-v1/blob/b5ea1ed4a10c14dc133f8d61e886120cda240003/cli/ts/deployPoll.ts#L153 - // TODO: is messageBatchTreeDepth == intStateTreeDepth?? - messageTreeSubDepth: 1, - voteOptionTreeDepth: 2, - // TODO: confirm if intStateTreeDepth is the 2nd param in tallyVotes.circom - intStateTreeDepth: 1, - }, - maxValues: { - // maxMessages and maxVoteOptions are calculated using treeArity = 5 as seen in the following code: - // https://github.com/privacy-scaling-explorations/maci/blob/master/contracts/contracts/Poll.sol#L115 - // treeArity ** messageTreeDepth - maxMessages: TREE_ARITY ** 2, - // treeArity ** voteOptionTreeDepth - maxVoteOptions: TREE_ARITY ** 2, - }, - batchSizes: { - // TODO: confirm the following mapping - // https://github.com/privacy-scaling-explorations/maci/blob/master/contracts/contracts/MACI.sol#L259 - // treeArity ** messageBatchTreeDepth - messageBatchSize: TREE_ARITY ** 1, - }, - }, - //https://github.com/privacy-scaling-explorations/maci/wiki/Precompiled-v1.1.1#prod-size - prod: { - processMessagesZkey: 'ProcessMessages_7-9-3-4_test.0.zkey', - tallyVotesZkey: 'TallyVotes_7-3-4_test.0.zkey', - processWitness: 'ProcessMessages_7-9-3-4_test', - tallyWitness: 'TallyVotes_7-3-4_test', - treeDepths: { - stateTreeDepth: 7, - messageTreeDepth: 9, - messageTreeSubDepth: 3, - voteOptionTreeDepth: 4, - intStateTreeDepth: 3, - }, - maxValues: { - maxMessages: TREE_ARITY ** 9, - maxVoteOptions: TREE_ARITY ** 4, - }, - batchSizes: { - // TODO: confirm the following mapping - // https://github.com/privacy-scaling-explorations/maci/blob/master/contracts/contracts/MACI.sol#L259 - // treeArity ** messageBatchTreeDepth - messageBatchSize: TREE_ARITY ** 3, - }, - }, -} - type PoseidonName = 'PoseidonT3' | 'PoseidonT4' | 'PoseidonT5' | 'PoseidonT6' /** @@ -190,27 +126,6 @@ export async function deployContract( return await contract.deployed() } -/** - * Deploy and set the PollProcessorAndTallyer in the funding round - * @param coordinator The coordinator who can set the set the tallyer in the funding round - * @param fundingRound The funding round contract - * @returns - */ -export async function deployPollProcessorAndTallyer( - coordinator: Signer, - fundingRound: Contract -): Promise { - const verifier = await deployContract(coordinator, 'Verifier') - const ppt = await deployContract(coordinator, 'PollProcessorAndTallyer', [ - verifier.address, - ]) - const setPptTx = await fundingRound - .connect(coordinator) - .setTallyer(ppt.address) - await setPptTx.wait() - return ppt -} - export async function deployVkRegistry( account: Signer, owner: string, @@ -244,11 +159,6 @@ export async function deployMaciFactory( 'PollFactoryCreator', { ...poseidonContracts } ) - const messageAqFactoryCreator = await deployContractWithLinkedLibraries( - account, - 'MessageAqFactoryCreator', - { ...poseidonContracts } - ) const vkRegistry = await deployContract(account, 'VkRegistry') const MACIFactory = await ethers.getContractFactory('MACIFactory', { @@ -256,7 +166,6 @@ export async function deployMaciFactory( libraries: { ...poseidonContracts, PollFactoryCreator: pollFactoryCreator.address, - MessageAqFactoryCreator: messageAqFactoryCreator.address, }, }) diff --git a/contracts/utils/maci.ts b/contracts/utils/maci.ts index 23f5ad9ed..d5bdc359a 100644 --- a/contracts/utils/maci.ts +++ b/contracts/utils/maci.ts @@ -9,19 +9,25 @@ import { hashLeftRight, LEAVES_PER_NODE, } from '@clrfund/common' +import * as os from 'os' import { genTallyResultCommitment } from '@clrfund/common' import { VerifyingKey } from 'maci-domainobjs' import { extractVk } from '@clrfund/maci-circuits' -import { CIRCUITS } from './deployment' +import { CIRCUITS } from './circuits' import path from 'path' export interface ZkFiles { processZkFile: string processWitness: string + processWasm: string tallyZkFile: string tallyWitness: string + tallyWasm: string } + +export const isOsArm = os.arch().includes('arm') + /** * Get the zkey file path * @param name zkey file name @@ -32,8 +38,10 @@ export function getCircuitFiles(circuit: string, directory: string): ZkFiles { return { processZkFile: path.join(directory, params.processMessagesZkey), processWitness: path.join(directory, params.processWitness), + processWasm: path.join(directory, params.processWasm), tallyZkFile: path.join(directory, params.tallyVotesZkey), tallyWitness: path.join(directory, params.tallyWitness), + tallyWasm: path.join(directory, params.tallyWasm), } } @@ -273,8 +281,7 @@ export async function addTallyResultsBatch( ...data, BigInt(tallyData.results.salt).toString(), spentVoiceCreditsHash.toString(), - BigInt(perVOSpentVoiceCreditsHash).toString(), - tallyData.newTallyCommitment + BigInt(perVOSpentVoiceCreditsHash).toString() ) const receipt = await tx.wait() if (callback) { @@ -288,4 +295,100 @@ export async function addTallyResultsBatch( return totalGasUsed } +/* Input to getGenProofArgs() */ +type getGenProofArgsInput = { + maciAddress: string + providerUrl: string + pollId: string + serializedCoordinatorPrivKey: string + // the transaction hash of the creation of the MACI contract + maciTxHash?: string + // the key get zkeys file mapping, see utils/circuits.ts + circuitType: string + circuitDirectory: string + rapidSnarkDirectory: string + // where the proof will be produced + outputDir: string +} + +type getGenProofArgsResult = { + contract: string + eth_provider: string + poll_id: string + tally_file: string + rapidsnark?: string + process_witnessgen?: string + tally_witnessgen?: string + process_wasm?: string + tally_wasm?: string + process_zkey: string + tally_zkey: string + transaction_hash?: string + output: string + privkey: string + macistate: string +} + +/* + * Get the arguments to pass to the genProof function + */ +export function getGenProofArgs( + args: getGenProofArgsInput +): getGenProofArgsResult { + const { + maciAddress, + providerUrl, + pollId, + serializedCoordinatorPrivKey, + maciTxHash, + circuitType, + circuitDirectory, + rapidSnarkDirectory, + outputDir, + } = args + const tallyFile = path.join(outputDir, `tally.json`) + const maciStateFile = path.join(outputDir, `macistate`) + const rapidSnarkExe = path.join(rapidSnarkDirectory, 'prover') + + const { + processZkFile, + tallyZkFile, + processWitness, + processWasm, + tallyWitness, + tallyWasm, + } = getCircuitFiles(circuitType, circuitDirectory) + + return isOsArm + ? { + contract: maciAddress, + eth_provider: providerUrl, + poll_id: pollId.toString(), + tally_file: tallyFile, + process_wasm: processWasm, + process_zkey: processZkFile, + tally_zkey: tallyZkFile, + tally_wasm: tallyWasm, + transaction_hash: maciTxHash, + output: outputDir, + privkey: serializedCoordinatorPrivKey, + macistate: maciStateFile, + } + : { + contract: maciAddress, + eth_provider: providerUrl, + poll_id: pollId.toString(), + tally_file: tallyFile, + rapidsnark: rapidSnarkExe, + process_witnessgen: processWitness, + tally_witnessgen: tallyWitness, + process_zkey: processZkFile, + tally_zkey: tallyZkFile, + transaction_hash: maciTxHash, + output: outputDir, + privkey: serializedCoordinatorPrivKey, + macistate: maciStateFile, + } +} + export { createMessage, getRecipientClaimData, bnSqrt } diff --git a/yarn.lock b/yarn.lock index eae711844..44fb31713 100644 --- a/yarn.lock +++ b/yarn.lock @@ -55,7 +55,7 @@ dependencies: node-fetch "^2.6.1" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.22.10", "@babel/code-frame@^7.22.5": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.22.13": version "7.22.13" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e" integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w== @@ -64,37 +64,37 @@ chalk "^2.4.2" "@babel/compat-data@^7.20.5", "@babel/compat-data@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.9.tgz#71cdb00a1ce3a329ce4cbec3a44f9fef35669730" - integrity sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ== + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.3.tgz#3febd552541e62b5e883a25eb3effd7c7379db11" + integrity sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ== "@babel/core@^7.14.0": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.11.tgz#8033acaa2aa24c3f814edaaa057f3ce0ba559c24" - integrity sha512-lh7RJrtPdhibbxndr6/xx0w8+CVlY5FJZiaSz908Fpy+G0xkBFTvwLcKJFF4PJxVfGhVWNebikpWGnOoC71juQ== + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.3.tgz#5ec09c8803b91f51cc887dedc2654a35852849c9" + integrity sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew== dependencies: "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.22.10" - "@babel/generator" "^7.22.10" - "@babel/helper-compilation-targets" "^7.22.10" - "@babel/helper-module-transforms" "^7.22.9" - "@babel/helpers" "^7.22.11" - "@babel/parser" "^7.22.11" - "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.11" - "@babel/types" "^7.22.11" - convert-source-map "^1.7.0" + "@babel/code-frame" "^7.22.13" + "@babel/generator" "^7.23.3" + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helpers" "^7.23.2" + "@babel/parser" "^7.23.3" + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.3" + "@babel/types" "^7.23.3" + 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.14.0", "@babel/generator@^7.18.13", "@babel/generator@^7.22.10": - version "7.22.10" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.10.tgz#c92254361f398e160645ac58831069707382b722" - integrity sha512-79KIf7YiWjjdZ81JnLujDRApWtl7BxTqWD88+FFdQEIOG8LJ0etDOM7CXuIgGJa55sGOwZVwuEsaLEm0PJ5/+A== +"@babel/generator@^7.14.0", "@babel/generator@^7.18.13", "@babel/generator@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.3.tgz#86e6e83d95903fbe7613f448613b8b319f330a8e" + integrity sha512-keeZWAV4LU3tW0qRi19HRpabC/ilM0HRBBzf9/k8FFiG4KVpiv0FIy4hHfLfFQZNhziCTPTmd59zoyv6DNISzg== dependencies: - "@babel/types" "^7.22.10" + "@babel/types" "^7.23.3" "@jridgewell/gen-mapping" "^0.3.2" "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" @@ -106,44 +106,44 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.22.10", "@babel/helper-compilation-targets@^7.22.5", "@babel/helper-compilation-targets@^7.22.6": - version "7.22.10" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.10.tgz#01d648bbc25dd88f513d862ee0df27b7d4e67024" - integrity sha512-JMSwHD4J7SLod0idLq5PKgI+6g/hLD/iuWBq08ZX49xE14VpVEojJ5rHWptpirV2j020MvypRLAXAO50igCJ5Q== +"@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.22.15": + 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== dependencies: "@babel/compat-data" "^7.22.9" - "@babel/helper-validator-option" "^7.22.5" + "@babel/helper-validator-option" "^7.22.15" browserslist "^4.21.9" lru-cache "^5.1.1" semver "^6.3.1" "@babel/helper-create-class-features-plugin@^7.18.6": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.11.tgz#4078686740459eeb4af3494a273ac09148dfb213" - integrity sha512-y1grdYL4WzmUDBRGK0pDbIoFd7UZKoDurDzWEoNMYoj1EL+foGRQNyPWDcC+YyegN5y1DUsFFmzjGijB3nSVAQ== + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz#97a61b385e57fe458496fad19f8e63b63c867de4" + integrity sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" "@babel/helper-environment-visitor" "^7.22.5" "@babel/helper-function-name" "^7.22.5" - "@babel/helper-member-expression-to-functions" "^7.22.5" + "@babel/helper-member-expression-to-functions" "^7.22.15" "@babel/helper-optimise-call-expression" "^7.22.5" "@babel/helper-replace-supers" "^7.22.9" "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" "@babel/helper-split-export-declaration" "^7.22.6" semver "^6.3.1" -"@babel/helper-environment-visitor@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98" - integrity sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q== +"@babel/helper-environment-visitor@^7.22.20", "@babel/helper-environment-visitor@^7.22.5": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" + integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== -"@babel/helper-function-name@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz#ede300828905bb15e582c037162f99d5183af1be" - integrity sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ== +"@babel/helper-function-name@^7.22.5", "@babel/helper-function-name@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" + integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== dependencies: - "@babel/template" "^7.22.5" - "@babel/types" "^7.22.5" + "@babel/template" "^7.22.15" + "@babel/types" "^7.23.0" "@babel/helper-hoist-variables@^7.22.5": version "7.22.5" @@ -152,30 +152,30 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-member-expression-to-functions@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz#0a7c56117cad3372fbf8d2fb4bf8f8d64a1e76b2" - integrity sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ== +"@babel/helper-member-expression-to-functions@^7.22.15": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz#9263e88cc5e41d39ec18c9a3e0eced59a3e7d366" + integrity sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA== dependencies: - "@babel/types" "^7.22.5" + "@babel/types" "^7.23.0" -"@babel/helper-module-imports@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz#1a8f4c9f4027d23f520bd76b364d44434a72660c" - integrity sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg== +"@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" + integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== dependencies: - "@babel/types" "^7.22.5" + "@babel/types" "^7.22.15" -"@babel/helper-module-transforms@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz#92dfcb1fbbb2bc62529024f72d942a8c97142129" - integrity sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ== +"@babel/helper-module-transforms@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1" + integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ== dependencies: - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-module-imports" "^7.22.5" + "@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.5" + "@babel/helper-validator-identifier" "^7.22.20" "@babel/helper-optimise-call-expression@^7.22.5": version "7.22.5" @@ -189,13 +189,13 @@ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== -"@babel/helper-replace-supers@^7.22.5", "@babel/helper-replace-supers@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.9.tgz#cbdc27d6d8d18cd22c81ae4293765a5d9afd0779" - integrity sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg== +"@babel/helper-replace-supers@^7.22.20", "@babel/helper-replace-supers@^7.22.9": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz#e37d367123ca98fe455a9887734ed2e16eb7a793" + integrity sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw== dependencies: - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-member-expression-to-functions" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-member-expression-to-functions" "^7.22.15" "@babel/helper-optimise-call-expression" "^7.22.5" "@babel/helper-simple-access@^7.22.5": @@ -224,38 +224,38 @@ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== -"@babel/helper-validator-identifier@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193" - integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ== +"@babel/helper-validator-identifier@^7.22.19", "@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" + integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== -"@babel/helper-validator-option@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz#de52000a15a177413c8234fa3a8af4ee8102d0ac" - integrity sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw== +"@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/helpers@^7.22.11": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.22.11.tgz#b02f5d5f2d7abc21ab59eeed80de410ba70b056a" - integrity sha512-vyOXC8PBWaGc5h7GMsNx68OH33cypkEDJCHvYVVgVbbxJDROYVtexSk0gK5iCF1xNjRIN2s8ai7hwkWDq5szWg== +"@babel/helpers@^7.23.2": + version "7.23.2" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.2.tgz#2832549a6e37d484286e15ba36a5330483cac767" + integrity sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ== dependencies: - "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.11" - "@babel/types" "^7.22.11" + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.2" + "@babel/types" "^7.23.0" "@babel/highlight@^7.22.13": - version "7.22.13" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.13.tgz#9cda839e5d3be9ca9e8c26b6dd69e7548f0cbf16" - integrity sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ== + 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== dependencies: - "@babel/helper-validator-identifier" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.20" chalk "^2.4.2" js-tokens "^4.0.0" -"@babel/parser@^7.14.0", "@babel/parser@^7.16.8", "@babel/parser@^7.20.15", "@babel/parser@^7.21.3", "@babel/parser@^7.21.8", "@babel/parser@^7.22.11", "@babel/parser@^7.22.5": - version "7.22.13" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.13.tgz#23fb17892b2be7afef94f573031c2f4b42839a2b" - integrity sha512-3l6+4YOvc9wx7VlCSw4yQfcBo01ECA8TicQfbnCPuCEpRQrf+gTUyGdxNw+pyTUyywp6JRD1w0YQs9TpBXYlkw== +"@babel/parser@^7.14.0", "@babel/parser@^7.16.8", "@babel/parser@^7.21.8", "@babel/parser@^7.22.15", "@babel/parser@^7.22.5", "@babel/parser@^7.23.0", "@babel/parser@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.3.tgz#0ce0be31a4ca4f1884b5786057cadcb6c3be58f9" + integrity sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw== "@babel/plugin-proposal-class-properties@^7.0.0": version "7.18.6" @@ -283,24 +283,24 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-syntax-flow@^7.0.0", "@babel/plugin-syntax-flow@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.22.5.tgz#163b820b9e7696ce134df3ee716d9c0c98035859" - integrity sha512-9RdCl0i+q0QExayk2nOS7853w08yLucnnPML6EN9S8fgMPVtdLDCdx/cOQ/i44Lb9UeQX9A35yaqBBOMMZxPxQ== +"@babel/plugin-syntax-flow@^7.0.0", "@babel/plugin-syntax-flow@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.23.3.tgz#084564e0f3cc21ea6c70c44cff984a1c0509729a" + integrity sha512-YZiAIpkJAwQXBJLIQbRFayR5c+gJ35Vcz3bg954k7cd73zqjvhacJuL9RbrzPz8qPmZdgqP6EUKwy0PCNhaaPA== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-import-assertions@^7.20.0": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz#07d252e2aa0bc6125567f742cd58619cb14dce98" - integrity sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg== + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz#9c05a7f592982aff1a2768260ad84bcd3f0c77fc" + integrity sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz#a6b68e84fb76e759fc3b93e901876ffabbe1d918" - integrity sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg== + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz#8f2e4f8a9b5f9aa16067e142c1ac9cd9f810f473" + integrity sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" @@ -312,204 +312,222 @@ "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-transform-arrow-functions@^7.0.0": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz#e5ba566d0c58a5b2ba2a8b795450641950b71958" - integrity sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw== + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz#94c6dcfd731af90f27a79509f9ab7fb2120fc38b" + integrity sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-block-scoped-functions@^7.0.0": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz#27978075bfaeb9fa586d3cb63a3d30c1de580024" - integrity sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA== + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz#fe1177d715fb569663095e04f3598525d98e8c77" + integrity sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-block-scoping@^7.0.0": - version "7.22.10" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.10.tgz#88a1dccc3383899eb5e660534a76a22ecee64faa" - integrity sha512-1+kVpGAOOI1Albt6Vse7c8pHzcZQdQKW+wJH+g8mCaszOdDVwRXa/slHPqIw+oJAJANTKDMuM2cBdV0Dg618Vg== + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.3.tgz#e99a3ff08f58edd28a8ed82481df76925a4ffca7" + integrity sha512-QPZxHrThbQia7UdvfpaRRlq/J9ciz1J4go0k+lPBXbgaNeY7IQrBj/9ceWjvMMI07/ZBzHl/F0R/2K0qH7jCVw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-classes@^7.0.0": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.6.tgz#e04d7d804ed5b8501311293d1a0e6d43e94c3363" - integrity sha512-58EgM6nuPNG6Py4Z3zSuu0xWu2VfodiMi72Jt5Kj2FECmaYk1RrTXA45z6KBFsu9tRgwQDwIiY4FXTt+YsSFAQ== + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.3.tgz#73380c632c095b03e8503c24fd38f95ad41ffacb" + integrity sha512-FGEQmugvAEu2QtgtU0uTASXevfLMFfBeVCIIdcQhn/uBQsMTjBajdnAtanQlOcuihWh10PZ7+HWvc7NtBwP74w== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-compilation-targets" "^7.22.6" - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" "@babel/helper-optimise-call-expression" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.20" "@babel/helper-split-export-declaration" "^7.22.6" globals "^11.1.0" "@babel/plugin-transform-computed-properties@^7.0.0": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz#cd1e994bf9f316bd1c2dafcd02063ec261bb3869" - integrity sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg== + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz#652e69561fcc9d2b50ba4f7ac7f60dcf65e86474" + integrity sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" - "@babel/template" "^7.22.5" + "@babel/template" "^7.22.15" "@babel/plugin-transform-destructuring@^7.0.0": - version "7.22.10" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.10.tgz#38e2273814a58c810b6c34ea293be4973c4eb5e2" - integrity sha512-dPJrL0VOyxqLM9sritNbMSGx/teueHF/htMKrPT7DNxccXxRDPYqlgPFFdr8u+F+qUZOkZoXue/6rL5O5GduEw== + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz#8c9ee68228b12ae3dff986e56ed1ba4f3c446311" + integrity sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-flow-strip-types@^7.0.0": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.22.5.tgz#0bb17110c7bf5b35a60754b2f00c58302381dee2" - integrity sha512-tujNbZdxdG0/54g/oua8ISToaXTFBf8EnSb5PgQSciIXWOWKX3S4+JR7ZE9ol8FZwf9kxitzkGQ+QWeov/mCiA== + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.23.3.tgz#cfa7ca159cc3306fab526fc67091556b51af26ff" + integrity sha512-26/pQTf9nQSNVJCrLB1IkHUKyPxR+lMrH2QDPG89+Znu9rAMbtrybdbWeE9bb7gzjmE5iXHEY+e0HUwM6Co93Q== dependencies: "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-flow" "^7.22.5" + "@babel/plugin-syntax-flow" "^7.23.3" "@babel/plugin-transform-for-of@^7.0.0": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.5.tgz#ab1b8a200a8f990137aff9a084f8de4099ab173f" - integrity sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A== + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.3.tgz#afe115ff0fbce735e02868d41489093c63e15559" + integrity sha512-X8jSm8X1CMwxmK878qsUGJRmbysKNbdpTv/O1/v0LuY/ZkZrng5WYiekYSdg9m09OTmDDUWeEDsTE+17WYbAZw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-function-name@^7.0.0": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz#935189af68b01898e0d6d99658db6b164205c143" - integrity sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg== + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz#8f424fcd862bf84cb9a1a6b42bc2f47ed630f8dc" + integrity sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw== dependencies: - "@babel/helper-compilation-targets" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-function-name" "^7.23.0" "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-literals@^7.0.0": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz#e9341f4b5a167952576e23db8d435849b1dd7920" - integrity sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g== + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz#8214665f00506ead73de157eba233e7381f3beb4" + integrity sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-member-expression-literals@^7.0.0": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz#4fcc9050eded981a468347dd374539ed3e058def" - integrity sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew== + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz#e37b3f0502289f477ac0e776b05a833d853cabcc" + integrity sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-modules-commonjs@^7.0.0": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.11.tgz#d7991d3abad199c03b68ee66a64f216c47ffdfae" - integrity sha512-o2+bg7GDS60cJMgz9jWqRUsWkMzLCxp+jFDeDUT5sjRlAxcJWZ2ylNdI7QQ2+CH5hWu7OnN+Cv3htt7AkSf96g== + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz#661ae831b9577e52be57dd8356b734f9700b53b4" + integrity sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA== dependencies: - "@babel/helper-module-transforms" "^7.22.9" + "@babel/helper-module-transforms" "^7.23.3" "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-simple-access" "^7.22.5" "@babel/plugin-transform-object-super@^7.0.0": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz#794a8d2fcb5d0835af722173c1a9d704f44e218c" - integrity sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw== + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz#81fdb636dcb306dd2e4e8fd80db5b2362ed2ebcd" + integrity sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA== dependencies: "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.20" "@babel/plugin-transform-parameters@^7.0.0", "@babel/plugin-transform-parameters@^7.20.7": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.5.tgz#c3542dd3c39b42c8069936e48717a8d179d63a18" - integrity sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg== + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz#83ef5d1baf4b1072fa6e54b2b0999a7b2527e2af" + integrity sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-property-literals@^7.0.0": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz#b5ddabd73a4f7f26cd0e20f5db48290b88732766" - integrity sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ== + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz#54518f14ac4755d22b92162e4a852d308a560875" + integrity sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-react-display-name@^7.0.0": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.22.5.tgz#3c4326f9fce31c7968d6cb9debcaf32d9e279a2b" - integrity sha512-PVk3WPYudRF5z4GKMEYUrLjPl38fJSKNaEOkFuoprioowGuWN6w2RKznuFNSlJx7pzzXXStPUnNSOEO0jL5EVw== + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.23.3.tgz#70529f034dd1e561045ad3c8152a267f0d7b6200" + integrity sha512-GnvhtVfA2OAtzdX58FJxU19rhoGeQzyVndw3GgtdECQvQFXPEZIOVULHVZGAYmOgmqjXpVpfocAbSjh99V/Fqw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-react-jsx@^7.0.0": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.5.tgz#932c291eb6dd1153359e2a90cb5e557dcf068416" - integrity sha512-rog5gZaVbUip5iWDMTYbVM15XQq+RkUKhET/IHR6oizR+JEoN6CAfTTuHcK4vwUyzca30qqHqEpzBOnaRMWYMA== + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.15.tgz#7e6266d88705d7c49f11c98db8b9464531289cd6" + integrity sha512-oKckg2eZFa8771O/5vi7XeTvmM6+O9cxZu+kanTU7tD4sin5nO/G8jGJhq8Hvt2Z0kUoEDRayuZLaUlYl8QuGA== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-module-imports" "^7.22.5" + "@babel/helper-module-imports" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-jsx" "^7.22.5" - "@babel/types" "^7.22.5" + "@babel/types" "^7.22.15" "@babel/plugin-transform-shorthand-properties@^7.0.0": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz#6e277654be82b5559fc4b9f58088507c24f0c624" - integrity sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA== + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz#97d82a39b0e0c24f8a981568a8ed851745f59210" + integrity sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-spread@^7.0.0": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz#6487fd29f229c95e284ba6c98d65eafb893fea6b" - integrity sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg== + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz#41d17aacb12bde55168403c6f2d6bdca563d362c" + integrity sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" "@babel/plugin-transform-template-literals@^7.0.0": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz#8f38cf291e5f7a8e60e9f733193f0bcc10909bff" - integrity sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA== + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz#5f0f028eb14e50b5d0f76be57f90045757539d07" + integrity sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/runtime@^7.0.0": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.11.tgz#7a9ba3bbe406ad6f9e8dd4da2ece453eb23a77a4" - integrity sha512-ee7jVNlWN09+KftVOu9n7S8gQzD/Z6hN/I8VBRXW4P1+Xe7kJGXMwu8vds4aGIMHZnNbdpSWCfZZtinytpcAvA== + version "7.23.2" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.2.tgz#062b0ac103261d68a966c4c7baf2ae3e62ec3885" + integrity sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg== dependencies: regenerator-runtime "^0.14.0" -"@babel/template@^7.18.10", "@babel/template@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.5.tgz#0c8c4d944509875849bd0344ff0050756eefc6ec" - integrity sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw== +"@babel/template@^7.18.10", "@babel/template@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" + integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== dependencies: - "@babel/code-frame" "^7.22.5" - "@babel/parser" "^7.22.5" - "@babel/types" "^7.22.5" + "@babel/code-frame" "^7.22.13" + "@babel/parser" "^7.22.15" + "@babel/types" "^7.22.15" -"@babel/traverse@^7.14.0", "@babel/traverse@^7.16.8", "@babel/traverse@^7.22.11": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.11.tgz#71ebb3af7a05ff97280b83f05f8865ac94b2027c" - integrity sha512-mzAenteTfomcB7mfPtyi+4oe5BZ6MXxWcn4CX+h4IRJ+OOGXBrWU6jDQavkQI9Vuc5P+donFabBfFCcmWka9lQ== +"@babel/traverse@^7.14.0", "@babel/traverse@^7.16.8", "@babel/traverse@^7.23.2", "@babel/traverse@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.3.tgz#26ee5f252e725aa7aca3474aa5b324eaf7908b5b" + integrity sha512-+K0yF1/9yR0oHdE0StHuEj3uTPzwwbrLGfNOndVJVV2TqA5+j3oljJUb4nmB954FLGjNem976+B+eDuLIjesiQ== dependencies: - "@babel/code-frame" "^7.22.10" - "@babel/generator" "^7.22.10" - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" + "@babel/code-frame" "^7.22.13" + "@babel/generator" "^7.23.3" + "@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.22.11" - "@babel/types" "^7.22.11" + "@babel/parser" "^7.23.3" + "@babel/types" "^7.23.3" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.16.8", "@babel/types@^7.18.13", "@babel/types@^7.22.10", "@babel/types@^7.22.11", "@babel/types@^7.22.5": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.11.tgz#0e65a6a1d4d9cbaa892b2213f6159485fe632ea2" - integrity sha512-siazHiGuZRz9aB9NpHy9GOs9xiQPKnMzgdr493iI1M67vRXpnEq8ZOOKzezC5q7zwuQ6sDhdSp4SD9ixKSqKZg== +"@babel/types@7.22.19": + version "7.22.19" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.19.tgz#7425343253556916e440e662bb221a93ddb75684" + integrity sha512-P7LAw/LbojPzkgp5oznjE6tQEIWbp4PkkfrZDINTro9zgBRtI324/EYsiSI7lhPbpIQ+DCeR2NNmMWANGGfZsg== dependencies: "@babel/helper-string-parser" "^7.22.5" - "@babel/helper-validator-identifier" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.19" + to-fast-properties "^2.0.0" + +"@babel/types@7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.0.tgz#8c1f020c9df0e737e4e247c0619f58c68458aaeb" + integrity sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg== + dependencies: + "@babel/helper-string-parser" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.20" + to-fast-properties "^2.0.0" + +"@babel/types@^7.0.0", "@babel/types@^7.16.8", "@babel/types@^7.18.13", "@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.3.tgz#d5ea892c07f2ec371ac704420f4dcdb07b5f9598" + integrity sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw== + dependencies: + "@babel/helper-string-parser" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.20" to-fast-properties "^2.0.0" "@bugsnag/browser@^7.20.2", "@bugsnag/browser@^7.21.0": @@ -604,49 +622,101 @@ "@chainsafe/persistent-merkle-tree" "^0.4.2" case "^1.6.3" -"@clrfund/maci-circuits@1.1.5": - version "1.1.5" - resolved "https://registry.yarnpkg.com/@clrfund/maci-circuits/-/maci-circuits-1.1.5.tgz#0ff8e1dc209327594c8cecbae4c1f9cf7679fdfa" - integrity sha512-SUGRtU0+NeCVvb5pArES3g04n4GTzeg5XxioxHj5lB+YWceWO3dPoiQBryrW6pQQBylC0BzwtGNhQb4yyupAHQ== +"@clrfund/maci-circuits@^1.1.7": + version "1.1.7" + resolved "https://registry.yarnpkg.com/@clrfund/maci-circuits/-/maci-circuits-1.1.7.tgz#08d2f19ccc0397d31b23c44cfb567a34df0f2c8f" + integrity sha512-tKwZsEX7J5504hMMKJRN9dwGqSwmU9SvogzHKFHljR7BHtkpeqmvzO5nVMtiSvEXTcNsddpdvKMbG6PDFS6/Iw== dependencies: - argparse "^2.0.1" circomlib "https://github.com/weijiekoh/circomlib#ac85e82c1914d47789e2032fb11ceb2cfdd38a2b" shelljs "^0.8.3" snarkjs "^0.5.0" tmp "^0.2.1" -"@clrfund/maci-cli@1.1.5": - version "1.1.5" - resolved "https://registry.yarnpkg.com/@clrfund/maci-cli/-/maci-cli-1.1.5.tgz#e6939f2e9dbd7d2a8fa7e50527c9c7ba3f90f5dd" - integrity sha512-tgh/qHwz6KFToKfwubdvVjn6P7jeS6Z2Sy9tdk4jizGdJ5x0r9Do84x8uJN5ithkb3ND6KbgI+tUMqnz/PYhvA== - dependencies: - "@clrfund/maci-circuits" "1.1.5" +"@clrfund/maci-cli@^1.1.7": + version "1.1.7" + resolved "https://registry.yarnpkg.com/@clrfund/maci-cli/-/maci-cli-1.1.7.tgz#0201865716a985e8183777c5d425606d5da6c1d7" + integrity sha512-/4emd+m52uP6yDgSVkIS6vyQjNzHxCS/HE9ipXBxgQASrNWg2odE37RQcZpsy8P901ibDvHgUeWJWuyIM0rUbg== + dependencies: + "@clrfund/maci-circuits" "^1.1.7" + "@clrfund/maci-contracts" "^1.1.7" + "@clrfund/maci-core" "^1.1.7" + "@clrfund/maci-crypto" "^1.1.7" + "@clrfund/maci-domainobjs" "^1.1.7" "@nomiclabs/hardhat-ethers" "^2.0.2" argparse "^1.0.10" circom_runtime "^0.1.22" circomlib "^2.0.5" - ethers "^5.0.0" + ethers "^5.4.7" ffiasm "0.1.3" - hardhat "^2.0.11" + hardhat "^2.12.6" js-yaml "4.0.0" - maci-common "1.1.1" - maci-contracts "1.1.1" - maci-core "1.1.1" - maci-crypto "1.1.1" - maci-domainobjs "1.1.1" + maci-common "^1.1.2" prompt-async "^0.9.9" shelljs "^0.8.4" snarkjs "^0.5.0" source-map-support "^0.5.19" + typescript "^4.2.3" web3 "^1.3.4" xmlhttprequest "1.8.0" zkey-manager "^0.1.1" +"@clrfund/maci-contracts@^1.1.7", "maci-contracts@npm:@clrfund/maci-contracts@^1.1.7": + version "1.1.7" + resolved "https://registry.yarnpkg.com/@clrfund/maci-contracts/-/maci-contracts-1.1.7.tgz#8a35678cf76607c480ff164a70154c7bdc8b8c3c" + integrity sha512-m68HH6KEP64WBWhJmUdiwk3kKSLfC+sIpE+vp4awBkCstFaEEgGQNEdikxKo2rFFSGpn7XPegb6oCeDXQvWxgg== + dependencies: + "@clrfund/maci-core" "^1.1.7" + "@clrfund/maci-crypto" "^1.1.7" + "@clrfund/maci-domainobjs" "^1.1.7" + "@nomicfoundation/hardhat-chai-matchers" "^1.0.0" + "@nomiclabs/hardhat-ethers" "^2.0.0" + "@openzeppelin/contracts" "^4.8.0" + circomlib "^2.0.5" + circomlibjs "^0.1.7" + ethers "^5.4.7" + hardhat "^2.12.6" + hardhat-artifactor "^0.2.0" + hardhat-contract-sizer "^2.10.0" + module-alias "^2.2.2" + typescript "^4.2.3" + +"@clrfund/maci-core@^1.1.7": + version "1.1.7" + resolved "https://registry.yarnpkg.com/@clrfund/maci-core/-/maci-core-1.1.7.tgz#0de2bc16077ed29511b4a1c086692f4a22499923" + integrity sha512-+xGTyNMbvd2qz/qk15D9YATw8Ig6eMiRWgbz0xXGUSyrHaQGvEfmzuK4c6gS2h5rDSXj+q7i0XzhLbP+t13Z/A== + dependencies: + "@clrfund/maci-crypto" "^1.1.7" + "@clrfund/maci-domainobjs" "^1.1.7" + module-alias "^2.2.2" + +"@clrfund/maci-crypto@^1.1.7": + version "1.1.7" + resolved "https://registry.yarnpkg.com/@clrfund/maci-crypto/-/maci-crypto-1.1.7.tgz#6841f532fdc002d311d5576b5d5342a24f092bfe" + integrity sha512-crx8QtIrtYj3Oq6G7HkRWDi/zWCdBy2gYbp080Myf1ol9MP3rCtO5uc013JuuFReX04pbDDWxOJ6AQuQ99OR0g== + dependencies: + blake-hash "^1.1.0" + circomlib "https://github.com/weijiekoh/circomlib.git#24ed08eee0bb613b8c0135d66c1013bd9f78d50a" + ethers "^5.4.7" + ffjavascript "^0.2.62" + optimisedmt "^0.0.7" + +"@clrfund/maci-domainobjs@^1.1.7": + version "1.1.7" + resolved "https://registry.yarnpkg.com/@clrfund/maci-domainobjs/-/maci-domainobjs-1.1.7.tgz#874d1f87f399bf94c180f341dfc2414b4172cd87" + integrity sha512-nR24qELBjSdDshSCIBs3IyuRoBNPApv44C8NYqapNTDTJndECYqdTz6Rm/eSGr4acJIAOnMb8XB1cm1WpVFCoA== + dependencies: + base64url "^3.0.1" + "@colors/colors@1.5.0": version "1.5.0" resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== +"@colors/colors@1.6.0", "@colors/colors@^1.6.0": + version "1.6.0" + resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.6.0.tgz#ec6cd237440700bc23ca23087f513c75508958b0" + integrity sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA== + "@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" @@ -692,220 +762,330 @@ resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz#984b4f9c8d0377443cc2dfcef266d02244593622" integrity sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ== -"@esbuild/android-arm64@0.19.2": - version "0.19.2" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.2.tgz#bc35990f412a749e948b792825eef7df0ce0e073" - integrity sha512-lsB65vAbe90I/Qe10OjkmrdxSX4UJDjosDgb8sZUKcg3oefEuW2OT2Vozz8ef7wrJbMcmhvCC+hciF8jY/uAkw== +"@esbuild/android-arm64@0.19.4": + version "0.19.4" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.4.tgz#74752a09301b8c6b9a415fbda9fb71406a62a7b7" + integrity sha512-mRsi2vJsk4Bx/AFsNBqOH2fqedxn5L/moT58xgg51DjX1la64Z3Npicut2VbhvDFO26qjWtPMsVxCd80YTFVeg== + +"@esbuild/android-arm64@0.19.5": + version "0.19.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.5.tgz#276c5f99604054d3dbb733577e09adae944baa90" + integrity sha512-5d1OkoJxnYQfmC+Zd8NBFjkhyCNYwM4n9ODrycTFY6Jk1IGiZ+tjVJDDSwDt77nK+tfpGP4T50iMtVi4dEGzhQ== "@esbuild/android-arm@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.18.20.tgz#fedb265bc3a589c84cc11f810804f234947c3682" integrity sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw== -"@esbuild/android-arm@0.19.2": - version "0.19.2" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.2.tgz#edd1c8f23ba353c197f5b0337123c58ff2a56999" - integrity sha512-tM8yLeYVe7pRyAu9VMi/Q7aunpLwD139EY1S99xbQkT4/q2qa6eA4ige/WJQYdJ8GBL1K33pPFhPfPdJ/WzT8Q== +"@esbuild/android-arm@0.19.4": + version "0.19.4" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.4.tgz#c27363e1e280e577d9b5c8fa7c7a3be2a8d79bf5" + integrity sha512-uBIbiYMeSsy2U0XQoOGVVcpIktjLMEKa7ryz2RLr7L/vTnANNEsPVAh4xOv7ondGz6ac1zVb0F8Jx20rQikffQ== + +"@esbuild/android-arm@0.19.5": + version "0.19.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.5.tgz#4a3cbf14758166abaae8ba9c01a80e68342a4eec" + integrity sha512-bhvbzWFF3CwMs5tbjf3ObfGqbl/17ict2/uwOSfr3wmxDE6VdS2GqY/FuzIPe0q0bdhj65zQsvqfArI9MY6+AA== "@esbuild/android-x64@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.18.20.tgz#35cf419c4cfc8babe8893d296cd990e9e9f756f2" integrity sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg== -"@esbuild/android-x64@0.19.2": - version "0.19.2" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.2.tgz#2dcdd6e6f1f2d82ea1b746abd8da5b284960f35a" - integrity sha512-qK/TpmHt2M/Hg82WXHRc/W/2SGo/l1thtDHZWqFq7oi24AjZ4O/CpPSu6ZuYKFkEgmZlFoa7CooAyYmuvnaG8w== +"@esbuild/android-x64@0.19.4": + version "0.19.4" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.4.tgz#6c9ee03d1488973d928618100048b75b147e0426" + integrity sha512-4iPufZ1TMOD3oBlGFqHXBpa3KFT46aLl6Vy7gwed0ZSYgHaZ/mihbYb4t7Z9etjkC9Al3ZYIoOaHrU60gcMy7g== + +"@esbuild/android-x64@0.19.5": + version "0.19.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.5.tgz#21a3d11cd4613d2d3c5ccb9e746c254eb9265b0a" + integrity sha512-9t+28jHGL7uBdkBjL90QFxe7DVA+KGqWlHCF8ChTKyaKO//VLuoBricQCgwhOjA1/qOczsw843Fy4cbs4H3DVA== "@esbuild/darwin-arm64@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz#08172cbeccf95fbc383399a7f39cfbddaeb0d7c1" integrity sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA== -"@esbuild/darwin-arm64@0.19.2": - version "0.19.2" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.2.tgz#55b36bc06d76f5c243987c1f93a11a80d8fc3b26" - integrity sha512-Ora8JokrvrzEPEpZO18ZYXkH4asCdc1DLdcVy8TGf5eWtPO1Ie4WroEJzwI52ZGtpODy3+m0a2yEX9l+KUn0tA== +"@esbuild/darwin-arm64@0.19.4": + version "0.19.4" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.4.tgz#64e2ee945e5932cd49812caa80e8896e937e2f8b" + integrity sha512-Lviw8EzxsVQKpbS+rSt6/6zjn9ashUZ7Tbuvc2YENgRl0yZTktGlachZ9KMJUsVjZEGFVu336kl5lBgDN6PmpA== + +"@esbuild/darwin-arm64@0.19.5": + version "0.19.5" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.5.tgz#714cb839f467d6a67b151ee8255886498e2b9bf6" + integrity sha512-mvXGcKqqIqyKoxq26qEDPHJuBYUA5KizJncKOAf9eJQez+L9O+KfvNFu6nl7SCZ/gFb2QPaRqqmG0doSWlgkqw== "@esbuild/darwin-x64@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz#d70d5790d8bf475556b67d0f8b7c5bdff053d85d" integrity sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ== -"@esbuild/darwin-x64@0.19.2": - version "0.19.2" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.2.tgz#982524af33a6424a3b5cb44bbd52559623ad719c" - integrity sha512-tP+B5UuIbbFMj2hQaUr6EALlHOIOmlLM2FK7jeFBobPy2ERdohI4Ka6ZFjZ1ZYsrHE/hZimGuU90jusRE0pwDw== +"@esbuild/darwin-x64@0.19.4": + version "0.19.4" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.4.tgz#d8e26e1b965df284692e4d1263ba69a49b39ac7a" + integrity sha512-YHbSFlLgDwglFn0lAO3Zsdrife9jcQXQhgRp77YiTDja23FrC2uwnhXMNkAucthsf+Psr7sTwYEryxz6FPAVqw== + +"@esbuild/darwin-x64@0.19.5": + version "0.19.5" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.5.tgz#2c553e97a6d2b4ae76a884e35e6cbab85a990bbf" + integrity sha512-Ly8cn6fGLNet19s0X4unjcniX24I0RqjPv+kurpXabZYSXGM4Pwpmf85WHJN3lAgB8GSth7s5A0r856S+4DyiA== "@esbuild/freebsd-arm64@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz#98755cd12707f93f210e2494d6a4b51b96977f54" integrity sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw== -"@esbuild/freebsd-arm64@0.19.2": - version "0.19.2" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.2.tgz#8e478a0856645265fe79eac4b31b52193011ee06" - integrity sha512-YbPY2kc0acfzL1VPVK6EnAlig4f+l8xmq36OZkU0jzBVHcOTyQDhnKQaLzZudNJQyymd9OqQezeaBgkTGdTGeQ== +"@esbuild/freebsd-arm64@0.19.4": + version "0.19.4" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.4.tgz#29751a41b242e0a456d89713b228f1da4f45582f" + integrity sha512-vz59ijyrTG22Hshaj620e5yhs2dU1WJy723ofc+KUgxVCM6zxQESmWdMuVmUzxtGqtj5heHyB44PjV/HKsEmuQ== + +"@esbuild/freebsd-arm64@0.19.5": + version "0.19.5" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.5.tgz#d554f556718adb31917a0da24277bf84b6ee87f3" + integrity sha512-GGDNnPWTmWE+DMchq1W8Sd0mUkL+APvJg3b11klSGUDvRXh70JqLAO56tubmq1s2cgpVCSKYywEiKBfju8JztQ== "@esbuild/freebsd-x64@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz#c1eb2bff03915f87c29cece4c1a7fa1f423b066e" integrity sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ== -"@esbuild/freebsd-x64@0.19.2": - version "0.19.2" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.2.tgz#01b96604f2540db023c73809bb8ae6cd1692d6f3" - integrity sha512-nSO5uZT2clM6hosjWHAsS15hLrwCvIWx+b2e3lZ3MwbYSaXwvfO528OF+dLjas1g3bZonciivI8qKR/Hm7IWGw== +"@esbuild/freebsd-x64@0.19.4": + version "0.19.4" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.4.tgz#873edc0f73e83a82432460ea59bf568c1e90b268" + integrity sha512-3sRbQ6W5kAiVQRBWREGJNd1YE7OgzS0AmOGjDmX/qZZecq8NFlQsQH0IfXjjmD0XtUYqr64e0EKNFjMUlPL3Cw== + +"@esbuild/freebsd-x64@0.19.5": + version "0.19.5" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.5.tgz#288f7358a3bb15d99e73c65c9adaa3dabb497432" + integrity sha512-1CCwDHnSSoA0HNwdfoNY0jLfJpd7ygaLAp5EHFos3VWJCRX9DMwWODf96s9TSse39Br7oOTLryRVmBoFwXbuuQ== "@esbuild/linux-arm64@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz#bad4238bd8f4fc25b5a021280c770ab5fc3a02a0" integrity sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA== -"@esbuild/linux-arm64@0.19.2": - version "0.19.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.2.tgz#7e5d2c7864c5c83ec789b59c77cd9c20d2594916" - integrity sha512-ig2P7GeG//zWlU0AggA3pV1h5gdix0MA3wgB+NsnBXViwiGgY77fuN9Wr5uoCrs2YzaYfogXgsWZbm+HGr09xg== +"@esbuild/linux-arm64@0.19.4": + version "0.19.4" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.4.tgz#659f2fa988d448dbf5010b5cc583be757cc1b914" + integrity sha512-ZWmWORaPbsPwmyu7eIEATFlaqm0QGt+joRE9sKcnVUG3oBbr/KYdNE2TnkzdQwX6EDRdg/x8Q4EZQTXoClUqqA== + +"@esbuild/linux-arm64@0.19.5": + version "0.19.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.5.tgz#95933ae86325c93cb6b5e8333d22120ecfdc901b" + integrity sha512-o3vYippBmSrjjQUCEEiTZ2l+4yC0pVJD/Dl57WfPwwlvFkrxoSO7rmBZFii6kQB3Wrn/6GwJUPLU5t52eq2meA== "@esbuild/linux-arm@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz#3e617c61f33508a27150ee417543c8ab5acc73b0" integrity sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg== -"@esbuild/linux-arm@0.19.2": - version "0.19.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.2.tgz#c32ae97bc0246664a1cfbdb4a98e7b006d7db8ae" - integrity sha512-Odalh8hICg7SOD7XCj0YLpYCEc+6mkoq63UnExDCiRA2wXEmGlK5JVrW50vZR9Qz4qkvqnHcpH+OFEggO3PgTg== +"@esbuild/linux-arm@0.19.4": + version "0.19.4" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.4.tgz#d5b13a7ec1f1c655ce05c8d319b3950797baee55" + integrity sha512-z/4ArqOo9EImzTi4b6Vq+pthLnepFzJ92BnofU1jgNlcVb+UqynVFdoXMCFreTK7FdhqAzH0vmdwW5373Hm9pg== + +"@esbuild/linux-arm@0.19.5": + version "0.19.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.5.tgz#0acef93aa3e0579e46d33b666627bddb06636664" + integrity sha512-lrWXLY/vJBzCPC51QN0HM71uWgIEpGSjSZZADQhq7DKhPcI6NH1IdzjfHkDQws2oNpJKpR13kv7/pFHBbDQDwQ== "@esbuild/linux-ia32@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz#699391cccba9aee6019b7f9892eb99219f1570a7" integrity sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA== -"@esbuild/linux-ia32@0.19.2": - version "0.19.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.2.tgz#3fc4f0fa026057fe885e4a180b3956e704f1ceaa" - integrity sha512-mLfp0ziRPOLSTek0Gd9T5B8AtzKAkoZE70fneiiyPlSnUKKI4lp+mGEnQXcQEHLJAcIYDPSyBvsUbKUG2ri/XQ== +"@esbuild/linux-ia32@0.19.4": + version "0.19.4" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.4.tgz#878cd8bf24c9847c77acdb5dd1b2ef6e4fa27a82" + integrity sha512-EGc4vYM7i1GRUIMqRZNCTzJh25MHePYsnQfKDexD8uPTCm9mK56NIL04LUfX2aaJ+C9vyEp2fJ7jbqFEYgO9lQ== + +"@esbuild/linux-ia32@0.19.5": + version "0.19.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.5.tgz#b6e5c9e80b42131cbd6b1ddaa48c92835f1ed67f" + integrity sha512-MkjHXS03AXAkNp1KKkhSKPOCYztRtK+KXDNkBa6P78F8Bw0ynknCSClO/ztGszILZtyO/lVKpa7MolbBZ6oJtQ== "@esbuild/linux-loong64@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz#e6fccb7aac178dd2ffb9860465ac89d7f23b977d" integrity sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg== -"@esbuild/linux-loong64@0.19.2": - version "0.19.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.2.tgz#633bcaea443f3505fb0ed109ab840c99ad3451a4" - integrity sha512-hn28+JNDTxxCpnYjdDYVMNTR3SKavyLlCHHkufHV91fkewpIyQchS1d8wSbmXhs1fiYDpNww8KTFlJ1dHsxeSw== +"@esbuild/linux-loong64@0.19.4": + version "0.19.4" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.4.tgz#df890499f6e566b7de3aa2361be6df2b8d5fa015" + integrity sha512-WVhIKO26kmm8lPmNrUikxSpXcgd6HDog0cx12BUfA2PkmURHSgx9G6vA19lrlQOMw+UjMZ+l3PpbtzffCxFDRg== + +"@esbuild/linux-loong64@0.19.5": + version "0.19.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.5.tgz#e5f0cf95a180158b01ff5f417da796a1c09dfbea" + integrity sha512-42GwZMm5oYOD/JHqHska3Jg0r+XFb/fdZRX+WjADm3nLWLcIsN27YKtqxzQmGNJgu0AyXg4HtcSK9HuOk3v1Dw== "@esbuild/linux-mips64el@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz#eeff3a937de9c2310de30622a957ad1bd9183231" integrity sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ== -"@esbuild/linux-mips64el@0.19.2": - version "0.19.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.2.tgz#e0bff2898c46f52be7d4dbbcca8b887890805823" - integrity sha512-KbXaC0Sejt7vD2fEgPoIKb6nxkfYW9OmFUK9XQE4//PvGIxNIfPk1NmlHmMg6f25x57rpmEFrn1OotASYIAaTg== +"@esbuild/linux-mips64el@0.19.4": + version "0.19.4" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.4.tgz#76eae4e88d2ce9f4f1b457e93892e802851b6807" + integrity sha512-keYY+Hlj5w86hNp5JJPuZNbvW4jql7c1eXdBUHIJGTeN/+0QFutU3GrS+c27L+NTmzi73yhtojHk+lr2+502Mw== + +"@esbuild/linux-mips64el@0.19.5": + version "0.19.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.5.tgz#ae36fb86c7d5f641f3a0c8472e83dcb6ea36a408" + integrity sha512-kcjndCSMitUuPJobWCnwQ9lLjiLZUR3QLQmlgaBfMX23UEa7ZOrtufnRds+6WZtIS9HdTXqND4yH8NLoVVIkcg== "@esbuild/linux-ppc64@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz#2f7156bde20b01527993e6881435ad79ba9599fb" integrity sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA== -"@esbuild/linux-ppc64@0.19.2": - version "0.19.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.2.tgz#d75798da391f54a9674f8c143b9a52d1dbfbfdde" - integrity sha512-dJ0kE8KTqbiHtA3Fc/zn7lCd7pqVr4JcT0JqOnbj4LLzYnp+7h8Qi4yjfq42ZlHfhOCM42rBh0EwHYLL6LEzcw== +"@esbuild/linux-ppc64@0.19.4": + version "0.19.4" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.4.tgz#c49032f4abbcfa3f747b543a106931fe3dce41ff" + integrity sha512-tQ92n0WMXyEsCH4m32S21fND8VxNiVazUbU4IUGVXQpWiaAxOBvtOtbEt3cXIV3GEBydYsY8pyeRMJx9kn3rvw== + +"@esbuild/linux-ppc64@0.19.5": + version "0.19.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.5.tgz#7960cb1666f0340ddd9eef7b26dcea3835d472d0" + integrity sha512-yJAxJfHVm0ZbsiljbtFFP1BQKLc8kUF6+17tjQ78QjqjAQDnhULWiTA6u0FCDmYT1oOKS9PzZ2z0aBI+Mcyj7Q== "@esbuild/linux-riscv64@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz#6628389f210123d8b4743045af8caa7d4ddfc7a6" integrity sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A== -"@esbuild/linux-riscv64@0.19.2": - version "0.19.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.2.tgz#012409bd489ed1bb9b775541d4a46c5ded8e6dd8" - integrity sha512-7Z/jKNFufZ/bbu4INqqCN6DDlrmOTmdw6D0gH+6Y7auok2r02Ur661qPuXidPOJ+FSgbEeQnnAGgsVynfLuOEw== +"@esbuild/linux-riscv64@0.19.4": + version "0.19.4" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.4.tgz#0f815a090772138503ee0465a747e16865bf94b1" + integrity sha512-tRRBey6fG9tqGH6V75xH3lFPpj9E8BH+N+zjSUCnFOX93kEzqS0WdyJHkta/mmJHn7MBaa++9P4ARiU4ykjhig== + +"@esbuild/linux-riscv64@0.19.5": + version "0.19.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.5.tgz#32207df26af60a3a9feea1783fc21b9817bade19" + integrity sha512-5u8cIR/t3gaD6ad3wNt1MNRstAZO+aNyBxu2We8X31bA8XUNyamTVQwLDA1SLoPCUehNCymhBhK3Qim1433Zag== "@esbuild/linux-s390x@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz#255e81fb289b101026131858ab99fba63dcf0071" integrity sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ== -"@esbuild/linux-s390x@0.19.2": - version "0.19.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.2.tgz#ece3ed75c5a150de8a5c110f02e97d315761626b" - integrity sha512-U+RinR6aXXABFCcAY4gSlv4CL1oOVvSSCdseQmGO66H+XyuQGZIUdhG56SZaDJQcLmrSfRmx5XZOWyCJPRqS7g== +"@esbuild/linux-s390x@0.19.4": + version "0.19.4" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.4.tgz#8d2cca20cd4e7c311fde8701d9f1042664f8b92b" + integrity sha512-152aLpQqKZYhThiJ+uAM4PcuLCAOxDsCekIbnGzPKVBRUDlgaaAfaUl5NYkB1hgY6WN4sPkejxKlANgVcGl9Qg== + +"@esbuild/linux-s390x@0.19.5": + version "0.19.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.5.tgz#b38d5681db89a3723862dfa792812397b1510a7d" + integrity sha512-Z6JrMyEw/EmZBD/OFEFpb+gao9xJ59ATsoTNlj39jVBbXqoZm4Xntu6wVmGPB/OATi1uk/DB+yeDPv2E8PqZGw== "@esbuild/linux-x64@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz#c7690b3417af318a9b6f96df3031a8865176d338" integrity sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w== -"@esbuild/linux-x64@0.19.2": - version "0.19.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.2.tgz#dea187019741602d57aaf189a80abba261fbd2aa" - integrity sha512-oxzHTEv6VPm3XXNaHPyUTTte+3wGv7qVQtqaZCrgstI16gCuhNOtBXLEBkBREP57YTd68P0VgDgG73jSD8bwXQ== +"@esbuild/linux-x64@0.19.4": + version "0.19.4" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.4.tgz#f618bec2655de49bff91c588777e37b5e3169d4a" + integrity sha512-Mi4aNA3rz1BNFtB7aGadMD0MavmzuuXNTaYL6/uiYIs08U7YMPETpgNn5oue3ICr+inKwItOwSsJDYkrE9ekVg== + +"@esbuild/linux-x64@0.19.5": + version "0.19.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.5.tgz#46feba2ad041a241379d150f415b472fe3885075" + integrity sha512-psagl+2RlK1z8zWZOmVdImisMtrUxvwereIdyJTmtmHahJTKb64pAcqoPlx6CewPdvGvUKe2Jw+0Z/0qhSbG1A== "@esbuild/netbsd-x64@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz#30e8cd8a3dded63975e2df2438ca109601ebe0d1" integrity sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A== -"@esbuild/netbsd-x64@0.19.2": - version "0.19.2" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.2.tgz#bbfd7cf9ab236a23ee3a41b26f0628c57623d92a" - integrity sha512-WNa5zZk1XpTTwMDompZmvQLHszDDDN7lYjEHCUmAGB83Bgs20EMs7ICD+oKeT6xt4phV4NDdSi/8OfjPbSbZfQ== +"@esbuild/netbsd-x64@0.19.4": + version "0.19.4" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.4.tgz#7889744ca4d60f1538d62382b95e90a49687cef2" + integrity sha512-9+Wxx1i5N/CYo505CTT7T+ix4lVzEdz0uCoYGxM5JDVlP2YdDC1Bdz+Khv6IbqmisT0Si928eAxbmGkcbiuM/A== + +"@esbuild/netbsd-x64@0.19.5": + version "0.19.5" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.5.tgz#3b5c1fb068f26bfc681d31f682adf1bea4ef0702" + integrity sha512-kL2l+xScnAy/E/3119OggX8SrWyBEcqAh8aOY1gr4gPvw76la2GlD4Ymf832UCVbmuWeTf2adkZDK+h0Z/fB4g== "@esbuild/openbsd-x64@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz#7812af31b205055874c8082ea9cf9ab0da6217ae" integrity sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg== -"@esbuild/openbsd-x64@0.19.2": - version "0.19.2" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.2.tgz#fa5c4c6ee52a360618f00053652e2902e1d7b4a7" - integrity sha512-S6kI1aT3S++Dedb7vxIuUOb3oAxqxk2Rh5rOXOTYnzN8JzW1VzBd+IqPiSpgitu45042SYD3HCoEyhLKQcDFDw== +"@esbuild/openbsd-x64@0.19.4": + version "0.19.4" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.4.tgz#c3e436eb9271a423d2e8436fcb120e3fd90e2b01" + integrity sha512-MFsHleM5/rWRW9EivFssop+OulYVUoVcqkyOkjiynKBCGBj9Lihl7kh9IzrreDyXa4sNkquei5/DTP4uCk25xw== + +"@esbuild/openbsd-x64@0.19.5": + version "0.19.5" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.5.tgz#ca6830316ca68056c5c88a875f103ad3235e00db" + integrity sha512-sPOfhtzFufQfTBgRnE1DIJjzsXukKSvZxloZbkJDG383q0awVAq600pc1nfqBcl0ice/WN9p4qLc39WhBShRTA== "@esbuild/sunos-x64@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz#d5c275c3b4e73c9b0ecd38d1ca62c020f887ab9d" integrity sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ== -"@esbuild/sunos-x64@0.19.2": - version "0.19.2" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.2.tgz#52a2ac8ac6284c02d25df22bb4cfde26fbddd68d" - integrity sha512-VXSSMsmb+Z8LbsQGcBMiM+fYObDNRm8p7tkUDMPG/g4fhFX5DEFmjxIEa3N8Zr96SjsJ1woAhF0DUnS3MF3ARw== +"@esbuild/sunos-x64@0.19.4": + version "0.19.4" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.4.tgz#f63f5841ba8c8c1a1c840d073afc99b53e8ce740" + integrity sha512-6Xq8SpK46yLvrGxjp6HftkDwPP49puU4OF0hEL4dTxqCbfx09LyrbUj/D7tmIRMj5D5FCUPksBbxyQhp8tmHzw== + +"@esbuild/sunos-x64@0.19.5": + version "0.19.5" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.5.tgz#9efc4eb9539a7be7d5a05ada52ee43cda0d8e2dd" + integrity sha512-dGZkBXaafuKLpDSjKcB0ax0FL36YXCvJNnztjKV+6CO82tTYVDSH2lifitJ29jxRMoUhgkg9a+VA/B03WK5lcg== "@esbuild/win32-arm64@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz#73bc7f5a9f8a77805f357fab97f290d0e4820ac9" integrity sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg== -"@esbuild/win32-arm64@0.19.2": - version "0.19.2" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.2.tgz#719ed5870855de8537aef8149694a97d03486804" - integrity sha512-5NayUlSAyb5PQYFAU9x3bHdsqB88RC3aM9lKDAz4X1mo/EchMIT1Q+pSeBXNgkfNmRecLXA0O8xP+x8V+g/LKg== +"@esbuild/win32-arm64@0.19.4": + version "0.19.4" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.4.tgz#80be69cec92da4da7781cf7a8351b95cc5a236b0" + integrity sha512-PkIl7Jq4mP6ke7QKwyg4fD4Xvn8PXisagV/+HntWoDEdmerB2LTukRZg728Yd1Fj+LuEX75t/hKXE2Ppk8Hh1w== + +"@esbuild/win32-arm64@0.19.5": + version "0.19.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.5.tgz#29f8184afa7a02a956ebda4ed638099f4b8ff198" + integrity sha512-dWVjD9y03ilhdRQ6Xig1NWNgfLtf2o/STKTS+eZuF90fI2BhbwD6WlaiCGKptlqXlURVB5AUOxUj09LuwKGDTg== "@esbuild/win32-ia32@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz#ec93cbf0ef1085cc12e71e0d661d20569ff42102" integrity sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g== -"@esbuild/win32-ia32@0.19.2": - version "0.19.2" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.2.tgz#24832223880b0f581962c8660f8fb8797a1e046a" - integrity sha512-47gL/ek1v36iN0wL9L4Q2MFdujR0poLZMJwhO2/N3gA89jgHp4MR8DKCmwYtGNksbfJb9JoTtbkoe6sDhg2QTA== +"@esbuild/win32-ia32@0.19.4": + version "0.19.4" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.4.tgz#15dc0ed83d2794872b05d8edc4a358fecf97eb54" + integrity sha512-ga676Hnvw7/ycdKB53qPusvsKdwrWzEyJ+AtItHGoARszIqvjffTwaaW3b2L6l90i7MO9i+dlAW415INuRhSGg== + +"@esbuild/win32-ia32@0.19.5": + version "0.19.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.5.tgz#f3de07afb292ecad651ae4bb8727789de2d95b05" + integrity sha512-4liggWIA4oDgUxqpZwrDhmEfAH4d0iljanDOK7AnVU89T6CzHon/ony8C5LeOdfgx60x5cnQJFZwEydVlYx4iw== "@esbuild/win32-x64@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz#786c5f41f043b07afb1af37683d7c33668858f6d" integrity sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ== -"@esbuild/win32-x64@0.19.2": - version "0.19.2" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.2.tgz#1205014625790c7ff0e471644a878a65d1e34ab0" - integrity sha512-tcuhV7ncXBqbt/Ybf0IyrMcwVOAPDckMK9rXNHtF17UTK18OKLpg08glminN06pt2WCoALhXdLfSPbVvK/6fxw== +"@esbuild/win32-x64@0.19.4": + version "0.19.4" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.4.tgz#d46a6e220a717f31f39ae80f49477cc3220be0f0" + integrity sha512-HP0GDNla1T3ZL8Ko/SHAS2GgtjOg+VmWnnYLhuTksr++EnduYB0f3Y2LzHsUwb2iQ13JGoY6G3R8h6Du/WG6uA== + +"@esbuild/win32-x64@0.19.5": + version "0.19.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.5.tgz#faad84c41ba12e3a0acb52571df9bff37bee75f6" + integrity sha512-czTrygUsB/jlM8qEW5MD8bgYU2Xg14lo6kBDXW6HdxKjh8M5PzETGiSHaz9MtbXBYDloHNUAUW2tMiKW4KM9Mw== "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.4.0" @@ -915,14 +1095,14 @@ eslint-visitor-keys "^3.3.0" "@eslint-community/regexpp@^4.4.0", "@eslint-community/regexpp@^4.6.1": - version "4.8.0" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.8.0.tgz#11195513186f68d42fbf449f9a7136b2c0c92005" - integrity sha512-JylOEEzDiOryeUnFbQz+oViCXS0KsvR1mvHkoMiu5+UiBvy+RYX7tzlIIIEstF/gVa2tj9AQXk3dgnxv6KxhFg== + 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.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.2.tgz#c6936b4b328c64496692f76944e755738be62396" - integrity sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g== +"@eslint/eslintrc@^2.1.2", "@eslint/eslintrc@^2.1.3": + version "2.1.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.3.tgz#797470a75fe0fbd5a53350ee715e85e87baff22d" + integrity sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA== dependencies: ajv "^6.12.4" debug "^4.3.2" @@ -939,6 +1119,11 @@ resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.48.0.tgz#642633964e217905436033a2bd08bf322849b7fb" integrity sha512-ZSjtmelB7IJfWD2Fvb7+Z+ChTIKWq6kjda95fLcQKNS5aheVHn4IkfgRQE3sIIzTcSLwLcLZUD9UBt+V7+h+Pw== +"@eslint/js@8.53.0": + version "8.53.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.53.0.tgz#bea56f2ed2b5baea164348ff4d5a879f6f81f20d" + integrity sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w== + "@ethereum-waffle/chai@^3.4.4": version "3.4.4" resolved "https://registry.yarnpkg.com/@ethereum-waffle/chai/-/chai-3.4.4.tgz#16c4cc877df31b035d6d92486dfdf983df9138ff" @@ -992,15 +1177,7 @@ patch-package "^6.2.2" postinstall-postinstall "^2.1.0" -"@ethereumjs/common@2.5.0": - version "2.5.0" - 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" - ethereumjs-util "^7.1.1" - -"@ethereumjs/common@^2.5.0": +"@ethereumjs/common@2.6.5", "@ethereumjs/common@^2.6.4": version "2.6.5" resolved "https://registry.yarnpkg.com/@ethereumjs/common/-/common-2.6.5.tgz#0a75a22a046272579d91919cb12d84f2756e8d30" integrity sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA== @@ -1013,13 +1190,13 @@ resolved "https://registry.yarnpkg.com/@ethereumjs/rlp/-/rlp-4.0.1.tgz#626fabfd9081baab3d0a3074b0c7ecaf674aaa41" integrity sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw== -"@ethereumjs/tx@3.3.2": - version "3.3.2" - resolved "https://registry.yarnpkg.com/@ethereumjs/tx/-/tx-3.3.2.tgz#348d4624bf248aaab6c44fec2ae67265efe3db00" - integrity sha512-6AaJhwg4ucmwTvw/1qLaZUX5miWrwZ4nLOUsKyb/HtzS3BMw/CasKhdi1ims9mBKeK9sOJCH4qGKOBGyJCeeog== +"@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.5.0" - ethereumjs-util "^7.1.2" + "@ethereumjs/common" "^2.6.4" + ethereumjs-util "^7.1.5" "@ethereumjs/util@^8.1.0": version "8.1.0" @@ -1416,15 +1593,20 @@ ajv-formats "^2.1.1" fast-uri "^2.0.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== + "@fastify/deepmerge@^1.0.0": version "1.3.0" resolved "https://registry.yarnpkg.com/@fastify/deepmerge/-/deepmerge-1.3.0.tgz#8116858108f0c7d9fd460d05a7d637a13fe3239a" integrity sha512-J8TOSBq3SoZbDhM9+R/u77hP93gz/rajSA+K2kGyijPpORPWUXHUpTaleoj+92As0S9uPRP7Oi8IqMf0u+ro6A== "@fastify/error@^3.0.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@fastify/error/-/error-3.3.0.tgz#eba790082e1144bfc8def0c2c8ef350064bc537b" - integrity sha512-dj7vjIn1Ar8sVXj2yAXiMNCJDmS9MQ9XMlIecX2dIzzhjSHCyKo4DdXjXMs7wKW2kj6yvVRSpuQjOZ3YLrh56w== + version "3.4.1" + resolved "https://registry.yarnpkg.com/@fastify/error/-/error-3.4.1.tgz#b14bb4cac3dd4ec614becbc643d1511331a6425c" + integrity sha512-wWSvph+29GR783IhmvdwWnN4bUxTD01Vm5Xad4i7i1VuAOItLvbPAb69sb0IQ2N57yprvhNIwAP5B6xfKTmjmQ== "@fastify/fast-json-stringify-compiler@^4.3.0": version "4.3.0" @@ -1468,11 +1650,11 @@ js-yaml "^4.1.0" "@floating-ui/core@^1.1.0": - version "1.4.1" - resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.4.1.tgz#0d633f4b76052668afb932492ac452f7ebe97f17" - integrity sha512-jk3WqquEJRlcyu7997NtR5PibI+y5bi+LS3hPmguVClypenMsCY3CBa3LAQnozRCtCrYWSEtAdiskpamuJRFOQ== + version "1.5.0" + resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.5.0.tgz#5c05c60d5ae2d05101c3021c1a2a350ddc027f8c" + integrity sha512-kK1h4m36DQ0UHGj5Ah4db7R0rHemTqqO0QLvUqi1/mUUp3LuAWbWxdxSIf/XsnH9VS6rRVPLJCncjRzUvyCLXg== dependencies: - "@floating-ui/utils" "^0.1.1" + "@floating-ui/utils" "^0.1.3" "@floating-ui/dom@~1.1.1": version "1.1.1" @@ -1481,10 +1663,10 @@ dependencies: "@floating-ui/core" "^1.1.0" -"@floating-ui/utils@^0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.1.1.tgz#1a5b1959a528e374e8037c4396c3e825d6cf4a83" - integrity sha512-m0G6wlnhm/AX0H12IOWtK8gASEMffnX08RtKkCgTdHb9JpHKGloI7icFfLg9ZmQeavcvR0PKmzxClyuFPSjKWw== +"@floating-ui/utils@^0.1.3": + version "0.1.6" + resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.1.6.tgz#22958c042e10b67463997bd6ea7115fe28cbcaf9" + integrity sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A== "@graphprotocol/graph-cli@^0.46.1": version "0.46.1" @@ -1964,46 +2146,47 @@ integrity sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ== "@grpc/grpc-js@^1.7.1", "@grpc/grpc-js@^1.7.3": - version "1.9.1" - resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.9.1.tgz#d6df7943cd2875a4feaf725f85ff605c08ac245d" - integrity sha512-AvDEPQT4teS+J8++cTE5tku4rYCwpPwPguESJUummLs/Ug/O5Bouofnc1mxaDORmwA9QkrJ+PfRQ1Qs7adQgJg== + version "1.9.10" + resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.9.10.tgz#d4eb0086662a3d05948312124a0212e71fc0cf0a" + integrity sha512-6W1NMW40R0fs4Tlv+Tx2+4J23IA/kV+ifnNaOcDAqDOBfbk3BTPuFmHVOxVQX0DEK9oD6KzKPyu2OiHW87tFpA== dependencies: "@grpc/proto-loader" "^0.7.8" "@types/node" ">=12.12.47" -"@grpc/proto-loader@^0.7.3", "@grpc/proto-loader@^0.7.8": - version "0.7.9" - resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.7.9.tgz#3ca68236f1a0d77566dafa53c715eb31d096279a" - integrity sha512-YJsOehVXzgurc+lLAxYnlSMc1p/Gu6VAvnfx0ATi2nzvr0YZcjhmZDeY8SeAKv1M7zE3aEJH0Xo9mK1iZ8GYoQ== +"@grpc/proto-loader@^0.7.8": + version "0.7.10" + resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.7.10.tgz#6bf26742b1b54d0a473067743da5d3189d06d720" + integrity sha512-CAqDfoaQ8ykFd9zqBDn4k6iWT9loLAlc2ETmDFS9JCD70gDcnA4L3AFEo2iV7KyAtAAHFW9ftq1Fz+Vsgq80RQ== dependencies: lodash.camelcase "^4.3.0" long "^5.0.0" protobufjs "^7.2.4" yargs "^17.7.2" -"@honeycombio/opentelemetry-node@^0.4.0": - version "0.4.0" - resolved "https://registry.yarnpkg.com/@honeycombio/opentelemetry-node/-/opentelemetry-node-0.4.0.tgz#974d3a8712bf98ddd50ef07de070d1aa7639da00" - integrity sha512-6PFX8FGW7uA7vQ3mxNIoN36rH9Zx5kXh4kKP9zu28nynyWyy9JE3l8PNJYd9FS2L/d88ZUpQAiQ1pROaANd5MA== +"@honeycombio/opentelemetry-node@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@honeycombio/opentelemetry-node/-/opentelemetry-node-0.5.0.tgz#67f3eb12b923199bf83d3a32758e9091012a9e2b" + integrity sha512-bAg//j0Lh0SFC0LhUrrgpO4FVScOBDt+my4YXeIo9lHi1aXXn6meaB/ycecjVfjyQLaGYWKPKu2C66rTgKIzMQ== dependencies: "@grpc/grpc-js" "^1.7.3" "@opentelemetry/api" "^1.4.1" - "@opentelemetry/exporter-metrics-otlp-grpc" "^0.36.1" - "@opentelemetry/exporter-metrics-otlp-proto" "^0.36.1" - "@opentelemetry/exporter-trace-otlp-grpc" "^0.36.1" - "@opentelemetry/exporter-trace-otlp-proto" "^0.36.1" - "@opentelemetry/resources" "^1.10.1" - "@opentelemetry/sdk-metrics" "^1.10.1" - "@opentelemetry/sdk-node" "^0.36.1" - "@opentelemetry/sdk-trace-base" "^1.10.1" + "@opentelemetry/core" "^1.13.0" + "@opentelemetry/exporter-metrics-otlp-grpc" "^0.41.0" + "@opentelemetry/exporter-metrics-otlp-proto" "^0.39.1" + "@opentelemetry/exporter-trace-otlp-grpc" "^0.41.0" + "@opentelemetry/exporter-trace-otlp-proto" "^0.41.0" + "@opentelemetry/resources" "^1.13.0" + "@opentelemetry/sdk-metrics" "^1.13.0" + "@opentelemetry/sdk-node" "^0.39.1" + "@opentelemetry/sdk-trace-base" "^1.13.0" axios "^1.1.3" -"@humanwhocodes/config-array@^0.11.10": - version "0.11.11" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.11.tgz#88a04c570dbbc7dd943e4712429c3df09bc32844" - integrity sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA== +"@humanwhocodes/config-array@^0.11.10", "@humanwhocodes/config-array@^0.11.13": + version "0.11.13" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.13.tgz#075dc9684f40a531d9b26b0822153c1e832ee297" + integrity sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ== dependencies: - "@humanwhocodes/object-schema" "^1.2.1" + "@humanwhocodes/object-schema" "^2.0.1" debug "^4.1.1" minimatch "^3.0.5" @@ -2017,10 +2200,10 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/momoa/-/momoa-2.0.4.tgz#8b9e7a629651d15009c3587d07a222deeb829385" integrity sha512-RE815I4arJFtt+FVeU1Tgp9/Xvecacji8w/V6XtXsWWH/wz/eNkNbhb+ny/+PlVZjV0rxQpRSQKNKE3lcktHEA== -"@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" - integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== +"@humanwhocodes/object-schema@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz#e5211452df060fa8522b55c7b3c0c4d1981cb044" + integrity sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw== "@iden3/bigarray@0.0.2": version "0.0.2" @@ -2059,48 +2242,39 @@ source-map "0.6.1" yaml-eslint-parser "^0.3.2" -"@intlify/core-base@9.2.2": - version "9.2.2" - resolved "https://registry.yarnpkg.com/@intlify/core-base/-/core-base-9.2.2.tgz#5353369b05cc9fe35cab95fe20afeb8a4481f939" - integrity sha512-JjUpQtNfn+joMbrXvpR4hTF8iJQ2sEFzzK3KIESOx+f+uwIjgw20igOyaIdhfsVVBCds8ZM64MoeNSx+PHQMkA== - dependencies: - "@intlify/devtools-if" "9.2.2" - "@intlify/message-compiler" "9.2.2" - "@intlify/shared" "9.2.2" - "@intlify/vue-devtools" "9.2.2" - -"@intlify/devtools-if@9.2.2": - version "9.2.2" - resolved "https://registry.yarnpkg.com/@intlify/devtools-if/-/devtools-if-9.2.2.tgz#b13d9ac4b4e2fe6d2e7daa556517a8061fe8bd39" - integrity sha512-4ttr/FNO29w+kBbU7HZ/U0Lzuh2cRDhP8UlWOtV9ERcjHzuyXVZmjyleESK6eVP60tGC9QtQW9yZE+JeRhDHkg== +"@intlify/core-base@9.6.5": + version "9.6.5" + resolved "https://registry.yarnpkg.com/@intlify/core-base/-/core-base-9.6.5.tgz#af92cae122fb99e882b3d7f1433f682065a3e164" + integrity sha512-LzbGXiZkMWPIHnHI0g6q554S87Cmh2mmCmjytK/3pDQfjI84l+dgGoeQuKj02q7EbULRuUUgYVZVqAwEUawXGg== dependencies: - "@intlify/shared" "9.2.2" + "@intlify/message-compiler" "9.6.5" + "@intlify/shared" "9.6.5" -"@intlify/message-compiler@9.2.2": - version "9.2.2" - resolved "https://registry.yarnpkg.com/@intlify/message-compiler/-/message-compiler-9.2.2.tgz#e42ab6939b8ae5b3d21faf6a44045667a18bba1c" - integrity sha512-IUrQW7byAKN2fMBe8z6sK6riG1pue95e5jfokn8hA5Q3Bqy4MBJ5lJAofUsawQJYHeoPJ7svMDyBaVJ4d0GTtA== +"@intlify/message-compiler@9.6.5": + version "9.6.5" + resolved "https://registry.yarnpkg.com/@intlify/message-compiler/-/message-compiler-9.6.5.tgz#3a33882497417c63b23b012731d60a485c8e5558" + integrity sha512-WeJ499thIj0p7JaIO1V3JaJbqdqfBykS5R8fElFs5hNeotHtPAMBs4IiA+8/KGFkAbjJusgFefCq6ajP7F7+4Q== dependencies: - "@intlify/shared" "9.2.2" - source-map "0.6.1" + "@intlify/shared" "9.6.5" + source-map-js "^1.0.2" "@intlify/message-compiler@next": - version "9.3.0-beta.26" - resolved "https://registry.yarnpkg.com/@intlify/message-compiler/-/message-compiler-9.3.0-beta.26.tgz#398e1228e00f9ab9b243fce9a7c1408107693918" - integrity sha512-qsfU6Lca7mI80ts1vgy+pfNvGm2gHy0nERpT/K1GYgnECmsKwud0e8SG1PPxKPEHKa5Mdngzs4pS7X1wH0SCGA== + version "9.4.1" + resolved "https://registry.yarnpkg.com/@intlify/message-compiler/-/message-compiler-9.4.1.tgz#aa00629a455e23cece3464293834a02994b4fb04" + integrity sha512-aN2N+dUx320108QhH51Ycd2LEpZ+NKbzyQ2kjjhqMcxhHdxtOnkgdx+MDBhOy/CObwBmhC3Nygzc6hNlfKvPNw== dependencies: - "@intlify/shared" "9.3.0-beta.26" + "@intlify/shared" "9.4.1" source-map-js "^1.0.2" -"@intlify/shared@9.2.2": - version "9.2.2" - resolved "https://registry.yarnpkg.com/@intlify/shared/-/shared-9.2.2.tgz#5011be9ca2b4ab86f8660739286e2707f9abb4a5" - integrity sha512-wRwTpsslgZS5HNyM7uDQYZtxnbI12aGiBZURX3BTR9RFIKKRWpllTsgzHWvj3HKm3Y2Sh5LPC1r0PDCKEhVn9Q== +"@intlify/shared@9.4.1", "@intlify/shared@next": + version "9.4.1" + resolved "https://registry.yarnpkg.com/@intlify/shared/-/shared-9.4.1.tgz#bd0d221aaac476b6778a10ddcd0472f812c64e27" + integrity sha512-A51elBmZWf1FS80inf/32diO9DeXoqg9GR9aUDHFcfHoNDuT46Q+fpPOdj8jiJnSHSBh8E1E+6qWRhAZXdK3Ng== -"@intlify/shared@9.3.0-beta.26", "@intlify/shared@next": - version "9.3.0-beta.26" - resolved "https://registry.yarnpkg.com/@intlify/shared/-/shared-9.3.0-beta.26.tgz#4c45e272533e66c5b5b63edb9cf8dbc077da129f" - integrity sha512-RpCtfSYIg4tSskrazTr5+WCHyw6qpgwdIxC+x3nCnrPGxyk+en9FoSbadVfx/w7uDTdyhKslEw4d2+qhNc0s4Q== +"@intlify/shared@9.6.5": + version "9.6.5" + resolved "https://registry.yarnpkg.com/@intlify/shared/-/shared-9.6.5.tgz#a81f384d804e99ceac55bb061c344f156bd96590" + integrity sha512-gD7Ey47Xi4h/t6P+S04ymMSoA3wVRxGqjxuIMglwRO8POki9h164Epu2N8wk/GHXM/hR6ZGcsx2HArCCENjqSQ== "@intlify/unplugin-vue-i18n@^0.8.1": version "0.8.2" @@ -2120,13 +2294,10 @@ source-map "0.6.1" unplugin "^1.0.0" -"@intlify/vue-devtools@9.2.2": - version "9.2.2" - resolved "https://registry.yarnpkg.com/@intlify/vue-devtools/-/vue-devtools-9.2.2.tgz#b95701556daf7ebb3a2d45aa3ae9e6415aed8317" - integrity sha512-+dUyqyCHWHb/UcvY1MlIpO87munedm3Gn6E9WWYdWrMuYLcoIoOEVDWSS8xSwtlPU+kA+MEQTP6Q1iI/ocusJg== - dependencies: - "@intlify/core-base" "9.2.2" - "@intlify/shared" "9.2.2" +"@ioredis/commands@^1.1.1": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@ioredis/commands/-/commands-1.2.0.tgz#6d61b3097470af1fdbbe622795b8921d42018e11" + integrity sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg== "@ipld/dag-cbor@^7.0.0": version "7.0.3" @@ -2195,9 +2366,9 @@ "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.19" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz#f8a3249862f91be48d3127c3cfe992f79b4b8811" - integrity sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw== + version "0.3.20" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz#72e45707cf240fa6b081d0366f8265b0cd10197f" + integrity sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q== dependencies: "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" @@ -2221,9 +2392,9 @@ rlp "^2.2.5" "@lit-labs/ssr-dom-shim@^1.0.0", "@lit-labs/ssr-dom-shim@^1.1.0": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.1.1.tgz#64df34e2f12e68e78ac57e571d25ec07fa460ca9" - integrity sha512-kXOeFbfCm4fFf2A3WwVEeQj55tMZa8c8/f9AKHMobQMkzNUfUj+antR3fRPaZJawsa1aZiP/Da3ndpZrwEe4rQ== + version "1.1.2" + resolved "https://registry.yarnpkg.com/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.1.2.tgz#d693d972974a354034454ec1317eb6afd0b00312" + integrity sha512-jnOD+/+dSrfTWYfSXBXlo5l5f0q1UuJo3tkbMDCYA2lKUYq79jaxqtGEvnRoh049nt1vdo1+45RinipU6FGY2g== "@lit/reactive-element@^1.3.0", "@lit/reactive-element@^1.6.0": version "1.6.3" @@ -2232,6 +2403,20 @@ dependencies: "@lit-labs/ssr-dom-shim" "^1.0.0" +"@ljharb/resumer@~0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@ljharb/resumer/-/resumer-0.0.1.tgz#8a940a9192dd31f6a1df17564bbd26dc6ad3e68d" + 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.yarnpkg.com/@ljharb/through/-/through-2.3.11.tgz#783600ff12c06f21a76cc26e33abd0b1595092f9" + integrity sha512-ccfcIDlogiXNq5KcbAwbaO7lMh3Tm1i3khMPYpxlK8hH/W53zN81KM9coerRLOnTGu3nfXIniAmQbRI9OxbC0w== + dependencies: + call-bind "^1.0.2" + "@lukeed/ms@^2.0.1": version "2.0.1" resolved "https://registry.yarnpkg.com/@lukeed/ms/-/ms-2.0.1.tgz#3c2bbc258affd9cc0e0cc7828477383c73afa6ee" @@ -2263,73 +2448,73 @@ tweetnacl "^1.0.3" tweetnacl-util "^0.15.1" -"@motionone/animation@^10.15.1": - version "10.15.1" - resolved "https://registry.yarnpkg.com/@motionone/animation/-/animation-10.15.1.tgz#4a85596c31cbc5100ae8eb8b34c459fb0ccf6807" - integrity sha512-mZcJxLjHor+bhcPuIFErMDNyrdb2vJur8lSfMCsuCB4UyV8ILZLvK+t+pg56erv8ud9xQGK/1OGPt10agPrCyQ== +"@motionone/animation@^10.15.1", "@motionone/animation@^10.16.3": + version "10.16.3" + resolved "https://registry.yarnpkg.com/@motionone/animation/-/animation-10.16.3.tgz#f5b71e27fd8b88b61f983adb0ed6c8e3e89281f9" + integrity sha512-QUGWpLbMFLhyqKlngjZhjtxM8IqiJQjLK0DF+XOF6od9nhSvlaeEpOY/UMCRVcZn/9Tr2rZO22EkuCIjYdI74g== dependencies: - "@motionone/easing" "^10.15.1" - "@motionone/types" "^10.15.1" - "@motionone/utils" "^10.15.1" + "@motionone/easing" "^10.16.3" + "@motionone/types" "^10.16.3" + "@motionone/utils" "^10.16.3" tslib "^2.3.1" -"@motionone/dom@^10.16.2": - version "10.16.2" - resolved "https://registry.yarnpkg.com/@motionone/dom/-/dom-10.16.2.tgz#0c44df8ee3d1cfc50ee11d27050b27824355a61a" - integrity sha512-bnuHdNbge1FutZXv+k7xub9oPWcF0hsu8y1HTH/qg6av58YI0VufZ3ngfC7p2xhMJMnoh0LXFma2EGTgPeCkeg== +"@motionone/dom@^10.16.2", "@motionone/dom@^10.16.4": + version "10.16.4" + resolved "https://registry.yarnpkg.com/@motionone/dom/-/dom-10.16.4.tgz#9385716928cc2d5b3208a7dcaf504b69b47fd1ae" + integrity sha512-HPHlVo/030qpRj9R8fgY50KTN4Ko30moWRTA3L3imrsRBmob93cTYmodln49HYFbQm01lFF7X523OkKY0DX6UA== dependencies: - "@motionone/animation" "^10.15.1" - "@motionone/generators" "^10.15.1" - "@motionone/types" "^10.15.1" - "@motionone/utils" "^10.15.1" + "@motionone/animation" "^10.16.3" + "@motionone/generators" "^10.16.4" + "@motionone/types" "^10.16.3" + "@motionone/utils" "^10.16.3" hey-listen "^1.0.8" tslib "^2.3.1" -"@motionone/easing@^10.15.1": - version "10.15.1" - resolved "https://registry.yarnpkg.com/@motionone/easing/-/easing-10.15.1.tgz#95cf3adaef34da6deebb83940d8143ede3deb693" - integrity sha512-6hIHBSV+ZVehf9dcKZLT7p5PEKHGhDwky2k8RKkmOvUoYP3S+dXsKupyZpqx5apjd9f+php4vXk4LuS+ADsrWw== +"@motionone/easing@^10.16.3": + version "10.16.3" + resolved "https://registry.yarnpkg.com/@motionone/easing/-/easing-10.16.3.tgz#a62abe0ba2841861f167f286782e287eab8d7466" + integrity sha512-HWTMZbTmZojzwEuKT/xCdvoMPXjYSyQvuVM6jmM0yoGU6BWzsmYMeB4bn38UFf618fJCNtP9XeC/zxtKWfbr0w== dependencies: - "@motionone/utils" "^10.15.1" + "@motionone/utils" "^10.16.3" tslib "^2.3.1" -"@motionone/generators@^10.15.1": - version "10.15.1" - resolved "https://registry.yarnpkg.com/@motionone/generators/-/generators-10.15.1.tgz#dc6abb11139d1bafe758a41c134d4c753a9b871c" - integrity sha512-67HLsvHJbw6cIbLA/o+gsm7h+6D4Sn7AUrB/GPxvujse1cGZ38F5H7DzoH7PhX+sjvtDnt2IhFYF2Zp1QTMKWQ== +"@motionone/generators@^10.16.4": + version "10.16.4" + resolved "https://registry.yarnpkg.com/@motionone/generators/-/generators-10.16.4.tgz#4a38708244bce733bfcebd4a26d19f4bbabd36af" + integrity sha512-geFZ3w0Rm0ZXXpctWsSf3REGywmLLujEjxPYpBR0j+ymYwof0xbV6S5kGqqsDKgyWKVWpUInqQYvQfL6fRbXeg== dependencies: - "@motionone/types" "^10.15.1" - "@motionone/utils" "^10.15.1" + "@motionone/types" "^10.16.3" + "@motionone/utils" "^10.16.3" tslib "^2.3.1" "@motionone/svelte@^10.16.2": - version "10.16.2" - resolved "https://registry.yarnpkg.com/@motionone/svelte/-/svelte-10.16.2.tgz#0b37c3b12927814d31d24941d1ca0ff49981b444" - integrity sha512-38xsroKrfK+aHYhuQlE6eFcGy0EwrB43Q7RGjF73j/kRUTcLNu/LAaKiLLsN5lyqVzCgTBVt4TMT/ShWbTbc5Q== + version "10.16.4" + resolved "https://registry.yarnpkg.com/@motionone/svelte/-/svelte-10.16.4.tgz#5daf117cf5b2576fc6dd487c5e0500938a742470" + integrity sha512-zRVqk20lD1xqe+yEDZhMYgftsuHc25+9JSo+r0a0OWUJFocjSV9D/+UGhX4xgJsuwB9acPzXLr20w40VnY2PQA== dependencies: - "@motionone/dom" "^10.16.2" + "@motionone/dom" "^10.16.4" tslib "^2.3.1" -"@motionone/types@^10.15.1": - version "10.15.1" - resolved "https://registry.yarnpkg.com/@motionone/types/-/types-10.15.1.tgz#89441b54285012795cbba8612cbaa0fa420db3eb" - integrity sha512-iIUd/EgUsRZGrvW0jqdst8st7zKTzS9EsKkP+6c6n4MPZoQHwiHuVtTQLD6Kp0bsBLhNzKIBlHXponn/SDT4hA== +"@motionone/types@^10.15.1", "@motionone/types@^10.16.3": + version "10.16.3" + resolved "https://registry.yarnpkg.com/@motionone/types/-/types-10.16.3.tgz#9284ea8a52f6b32c51c54b617214f20e43ac6c59" + integrity sha512-W4jkEGFifDq73DlaZs3HUfamV2t1wM35zN/zX7Q79LfZ2sc6C0R1baUHZmqc/K5F3vSw3PavgQ6HyHLd/MXcWg== -"@motionone/utils@^10.15.1": - version "10.15.1" - resolved "https://registry.yarnpkg.com/@motionone/utils/-/utils-10.15.1.tgz#6b5f51bde75be88b5411e084310299050368a438" - integrity sha512-p0YncgU+iklvYr/Dq4NobTRdAPv9PveRDUXabPEeOjBLSO/1FNB2phNTZxOxpi1/GZwYpAoECEa0Wam+nsmhSw== +"@motionone/utils@^10.15.1", "@motionone/utils@^10.16.3": + version "10.16.3" + resolved "https://registry.yarnpkg.com/@motionone/utils/-/utils-10.16.3.tgz#ddf07ab6cf3000d89e3bcbdc9a8c3e1fd64f8520" + integrity sha512-WNWDksJIxQkaI9p9Z9z0+K27xdqISGNFy1SsWVGaiedTHq0iaT6iZujby8fT/ZnZxj1EOaxJtSfUPCFNU5CRoA== dependencies: - "@motionone/types" "^10.15.1" + "@motionone/types" "^10.16.3" hey-listen "^1.0.8" tslib "^2.3.1" "@motionone/vue@^10.16.2": - version "10.16.2" - resolved "https://registry.yarnpkg.com/@motionone/vue/-/vue-10.16.2.tgz#faf13afc27620a2df870c71c58a04ee8de8dea65" - integrity sha512-7/dEK/nWQXOkJ70bqb2KyNfSWbNvWqKKq1C8juj+0Mg/AorgD8O5wE3naddK0G+aXuNMqRuc4jlsYHHWHtIzVw== + version "10.16.4" + resolved "https://registry.yarnpkg.com/@motionone/vue/-/vue-10.16.4.tgz#07d09e3aa5115ca0bcc0076cb9e5322775277c09" + integrity sha512-z10PF9JV6SbjFq+/rYabM+8CVlMokgl8RFGvieSGNTmrkQanfHn+15XBrhG3BgUfvmTeSeyShfOHpG0i9zEdcg== dependencies: - "@motionone/dom" "^10.16.2" + "@motionone/dom" "^10.16.4" tslib "^2.3.1" "@netlify/binary-info@^1.0.0": @@ -2337,10 +2522,10 @@ resolved "https://registry.yarnpkg.com/@netlify/binary-info/-/binary-info-1.0.0.tgz#cd0d86fb783fb03e52067f0cd284865e57be86c8" integrity sha512-4wMPu9iN3/HL97QblBsBay3E1etIciR84izI3U+4iALY+JHCrI+a2jO0qbAZ/nxKoegypYEaiiqWXylm+/zfrw== -"@netlify/build-info@7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@netlify/build-info/-/build-info-7.7.4.tgz#36bcaf8418efd1a70704dd12d55dbf90677a9bc9" - integrity sha512-dJt4looPD2UuGprGB29Y/tXAHKKV05gWOIsY71gByv7fs2DQ3LqXYXy4qdGcrGAAeEKRHBwXOMfAn1TAq4hgMQ== +"@netlify/build-info@7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@netlify/build-info/-/build-info-7.10.1.tgz#c30c96282581dd99cdb9ee6e155e48846f997ce7" + integrity sha512-bBEDehGo47ERzAHvOb0AZ/P5zNeDOzqpQFEGqc2djoLjBOcgDkRhyMxy7VZMBiaJ//ujxyTVIBXxrqVKWCpmrQ== dependencies: "@bugsnag/js" "^7.20.0" dot-prop "^7.2.0" @@ -2352,22 +2537,22 @@ yaml "^2.1.3" yargs "^17.6.0" -"@netlify/build@29.20.8": - version "29.20.8" - resolved "https://registry.yarnpkg.com/@netlify/build/-/build-29.20.8.tgz#07bc65133c1804696e7fc4c54dd2f609907451d6" - integrity sha512-dPO62SIzn4KkaVDLC9UPzOs8vyBD36wz4DcjSNFhxJ0ASp51HneJaWFQi0vZon4nizCob7iBKVm4QpgqAkeTjA== +"@netlify/build@29.23.4": + version "29.23.4" + resolved "https://registry.yarnpkg.com/@netlify/build/-/build-29.23.4.tgz#c2db3a4bbed462c46e48d21d4649b32c90cb0076" + integrity sha512-3EGLnobIyB5B/HkHdLfbFFgzm0Qd2kN1xa3MdAoXksO2Wmysip6KFMD3/9fzoDNJEjw58IVCf8yT55cNgX/Prg== dependencies: "@bugsnag/js" "^7.0.0" - "@honeycombio/opentelemetry-node" "^0.4.0" + "@honeycombio/opentelemetry-node" "^0.5.0" "@netlify/cache-utils" "^5.1.5" - "@netlify/config" "^20.8.0" - "@netlify/edge-bundler" "8.19.0" + "@netlify/config" "^20.9.0" + "@netlify/edge-bundler" "9.3.0" "@netlify/framework-info" "^9.8.10" - "@netlify/functions-utils" "^5.2.24" + "@netlify/functions-utils" "^5.2.37" "@netlify/git-utils" "^5.1.1" "@netlify/plugins-list" "^6.71.0" "@netlify/run-utils" "^5.1.1" - "@netlify/zip-it-and-ship-it" "9.17.0" + "@netlify/zip-it-and-ship-it" "9.25.4" "@opentelemetry/api" "^1.4.1" "@sindresorhus/slugify" "^2.0.0" ansi-escapes "^6.0.0" @@ -2427,10 +2612,10 @@ path-exists "^5.0.0" readdirp "^3.4.0" -"@netlify/config@20.8.0", "@netlify/config@^20.8.0": - version "20.8.0" - resolved "https://registry.yarnpkg.com/@netlify/config/-/config-20.8.0.tgz#4ef3a20b20d3d5aea2978c8a767374ec5d9bbe74" - integrity sha512-jzklg2Kj9D/2h+QO2MNbbc7oz9Wo56Zp1ob/kaG9P7DJLZSgc0h6G2GQSybqKqvApLju+8iqPB2rMAp02QSjpA== +"@netlify/config@20.9.0": + version "20.9.0" + resolved "https://registry.yarnpkg.com/@netlify/config/-/config-20.9.0.tgz#b6664414da1f12ed56f7a4137f7887658bb644dd" + integrity sha512-+bKrRDhoUiZbAbdILPtlF5tmR1Ttt6plHQawQVByw9fHaQZ0Kxh6hA896sVFgkR1wGqu2v/5OFhH2t9eJO0nuw== dependencies: chalk "^5.0.0" cron-parser "^4.1.0" @@ -2457,19 +2642,82 @@ validate-npm-package-name "^4.0.0" yargs "^17.6.0" -"@netlify/edge-bundler@8.19.0": - version "8.19.0" - resolved "https://registry.yarnpkg.com/@netlify/edge-bundler/-/edge-bundler-8.19.0.tgz#b5c323d528cc65eb6d33cd83b74cfab71b8b8484" - integrity sha512-blIZHLXlEXcjpAhd2TJ+Rw7H+WhNXSBfmFfRHn2pyzNiAbQa71eU0eNUE2+Nw58DGfvUC0unerbTlN2gd3iVdA== +"@netlify/config@^20.9.0": + version "20.10.0" + resolved "https://registry.yarnpkg.com/@netlify/config/-/config-20.10.0.tgz#df51f277c7eaa984105f4e90c3ea676b935c5df3" + integrity sha512-7CNoL5IPSRBzDVzxuQgltZ71D/vZ/oYR29sfN8EXjAFOZPSLtnZgborcPa9V9BXLN4N5h0hFp2A26lnnCttEFg== + dependencies: + chalk "^5.0.0" + cron-parser "^4.1.0" + deepmerge "^4.2.2" + dot-prop "^7.0.0" + execa "^6.0.0" + fast-safe-stringify "^2.0.7" + figures "^5.0.0" + filter-obj "^5.0.0" + find-up "^6.0.0" + indent-string "^5.0.0" + is-plain-obj "^4.0.0" + js-yaml "^4.0.0" + map-obj "^5.0.0" + netlify "^13.1.11" + netlify-headers-parser "^7.1.2" + netlify-redirect-parser "^14.2.0" + node-fetch "^3.3.1" + omit.js "^2.0.2" + p-locate "^6.0.0" + path-type "^5.0.0" + toml "^3.0.0" + tomlify-j0.4 "^3.0.0" + validate-npm-package-name "^4.0.0" + yargs "^17.6.0" + +"@netlify/edge-bundler@9.3.0": + version "9.3.0" + resolved "https://registry.yarnpkg.com/@netlify/edge-bundler/-/edge-bundler-9.3.0.tgz#e3d8847480d69f255177ba373755752a5815ef26" + integrity sha512-qKY4DKxBKn8TFbil5d7i71ztuOdRBfSXzYW9vN3t7WP0R4MKcgUg6nqo4a9llso/TNGlPv9tDrKq+w4jhpfGhA== dependencies: "@import-maps/resolve" "^1.0.1" + "@vercel/nft" "^0.24.3" ajv "^8.11.2" ajv-errors "^3.0.0" better-ajv-errors "^1.2.0" common-path-prefix "^3.0.0" env-paths "^3.0.0" + esbuild "0.19.4" execa "^6.0.0" find-up "^6.3.0" + get-package-name "^2.2.0" + get-port "^6.1.2" + is-path-inside "^4.0.0" + jsonc-parser "^3.2.0" + node-fetch "^3.1.1" + node-stream-zip "^1.15.0" + p-retry "^5.1.1" + p-wait-for "^4.1.0" + path-key "^4.0.0" + regexp-tree "^0.1.24" + semver "^7.3.8" + tmp-promise "^3.0.3" + urlpattern-polyfill "8.0.2" + uuid "^9.0.0" + +"@netlify/edge-bundler@9.4.1": + version "9.4.1" + resolved "https://registry.yarnpkg.com/@netlify/edge-bundler/-/edge-bundler-9.4.1.tgz#edf7126d3f1bf6b7c962f4622ca264197c54c571" + integrity sha512-vcmKLIQL57NEcYBZtBptWWdK5JmWZc3r1ba+kEg939aXPEI5nT5D5qT5PyMiIQwWuFtR0t+DH3koOm8UOfsuwg== + dependencies: + "@import-maps/resolve" "^1.0.1" + "@vercel/nft" "^0.24.3" + ajv "^8.11.2" + ajv-errors "^3.0.0" + better-ajv-errors "^1.2.0" + common-path-prefix "^3.0.0" + env-paths "^3.0.0" + esbuild "0.19.4" + execa "^6.0.0" + find-up "^6.3.0" + get-package-name "^2.2.0" get-port "^6.1.2" is-path-inside "^4.0.0" jsonc-parser "^3.2.0" @@ -2500,12 +2748,12 @@ read-pkg-up "^9.0.0" semver "^7.3.8" -"@netlify/functions-utils@^5.2.24": - version "5.2.25" - resolved "https://registry.yarnpkg.com/@netlify/functions-utils/-/functions-utils-5.2.25.tgz#502d985e2bf91eb6d7d2cb21b18af3b04ea8acbb" - integrity sha512-Szumix87SclSaZm0MAstYOlaEWmJnFMYqnRg0IGsENKybIRS6nYHg1WQs4T1zYgrHqUiOhqkUWWFFkG/6AUsJw== +"@netlify/functions-utils@^5.2.37": + version "5.2.40" + resolved "https://registry.yarnpkg.com/@netlify/functions-utils/-/functions-utils-5.2.40.tgz#093d6acc512c5dd0b5814ab4402d916ff5a44fb6" + integrity sha512-5mx23k4WW9R2WvBDa9mVCz0n3CAUUVbyoa7zOOjVRj2wuZAqnP9gTQa/g4Uhg3GvDxp90kHlDe5Amfc2K4j3MQ== dependencies: - "@netlify/zip-it-and-ship-it" "9.17.1" + "@netlify/zip-it-and-ship-it" "9.26.1" cpy "^9.0.0" path-exists "^5.0.0" @@ -2603,15 +2851,15 @@ resolved "https://registry.yarnpkg.com/@netlify/node-cookies/-/node-cookies-0.1.0.tgz#dda912ba618527695cf519fafa221c5e6777c612" integrity sha512-OAs1xG+FfLX0LoRASpqzVntVV/RpYkgpI0VrUnw2u0Q1qiZUzcPffxRK8HF3gc4GjuhG5ahOEMJ9bswBiZPq0g== -"@netlify/open-api@^2.19.1": - version "2.21.0" - resolved "https://registry.yarnpkg.com/@netlify/open-api/-/open-api-2.21.0.tgz#6e1c0fbec16ff3930ccf42d46864d11ffa47df8f" - integrity sha512-btuPsjyX+dk/zM7e9UWM1s+EbVahwfsUoMuMV3RVttHgVR971m+CiDObTwZ0rtco8J+ibnPIsC16FA6iLRu6hw== +"@netlify/open-api@^2.19.1", "@netlify/open-api@^2.26.0": + version "2.26.0" + resolved "https://registry.yarnpkg.com/@netlify/open-api/-/open-api-2.26.0.tgz#cdc8033371079955501f4b9a5323f2dcd76741c2" + integrity sha512-B7q+ySzQm6rJhaGbY0Pzqnb1p3FsBqwiPLnLtA17JgTsqmXgQ7j6OQImW9fRJy/Al1ob9M6Oxng/FA2c7aIW1g== "@netlify/plugins-list@^6.71.0": - version "6.71.0" - resolved "https://registry.yarnpkg.com/@netlify/plugins-list/-/plugins-list-6.71.0.tgz#78972dd25c64e42bcab4b8a38ccef883e8c71e01" - integrity sha512-sKMRRAzDHG+UeFYkcxAvrAxcYKPJasksGfZ5jegEpBGsHi8F4Ilkadfm9gIvq2V1dl+6El+QupPlw2YTeVRdvA== + version "6.72.0" + resolved "https://registry.yarnpkg.com/@netlify/plugins-list/-/plugins-list-6.72.0.tgz#b77611f0ada5b57aff62219cd321f75ed5f6c424" + integrity sha512-GB3HxvUmOAkB6V3Tau7iQT7aH2NssmQHAgHWMrdD7pDfjcU6Vg0WcQfOWovjx2Bh6M0urOsJkBboX2egCuicEQ== "@netlify/run-utils@^5.1.1": version "5.1.1" @@ -2620,32 +2868,32 @@ dependencies: execa "^6.0.0" -"@netlify/serverless-functions-api@1.7.3", "@netlify/serverless-functions-api@^1.7.3": - version "1.7.3" - resolved "https://registry.yarnpkg.com/@netlify/serverless-functions-api/-/serverless-functions-api-1.7.3.tgz#74efc650fcbca7c25211bb49df826795cf53f072" - integrity sha512-n6/7cJlSWvvbBlUOEAbkGyEld80S6KbG/ldQI9OhLfe1lTatgKmrTNIgqVNpaWpUdTgP2OHWFjmFBzkxxBWs5w== +"@netlify/serverless-functions-api@^1.10.1", "@netlify/serverless-functions-api@^1.12.0": + version "1.12.0" + resolved "https://registry.yarnpkg.com/@netlify/serverless-functions-api/-/serverless-functions-api-1.12.0.tgz#b8ba310e6fdac9bf1f0e974856eb60f97d294e4d" + integrity sha512-LJt2gHzLQMgJLsLG9Chbu2Pxxi7Yzbj3Xcd9QlThvUlD7kf4nAr3lzzRJMZqo77rVNmfQX11W1uvGMSlduiKeA== dependencies: "@netlify/node-cookies" "^0.1.0" urlpattern-polyfill "8.0.2" -"@netlify/zip-it-and-ship-it@9.17.0": - version "9.17.0" - resolved "https://registry.yarnpkg.com/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-9.17.0.tgz#04d07c83e2d511b904712ce0b5ea32f8753ece91" - integrity sha512-7wnrWxtczXzBMYh9QXmvG9WkCJSyK+abQGdhwSoZcFPQ0u0HZzY/9rU8jLcRnTodEK20lZPil60FRU/Nta5spg== +"@netlify/zip-it-and-ship-it@9.25.4": + version "9.25.4" + resolved "https://registry.yarnpkg.com/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-9.25.4.tgz#712b743a83501a1e845348373926e910fa0a217e" + integrity sha512-y2xl6yLwwDCUoE/XTMKZFYO6uWeZbci4LWK+8v6TyQ3xWDl23pGJyFrkKSPLDn/jeJsKNsdJG4fBo4/S2p+YNA== dependencies: "@babel/parser" "^7.22.5" + "@babel/types" "7.22.19" "@netlify/binary-info" "^1.0.0" - "@netlify/serverless-functions-api" "^1.7.3" + "@netlify/serverless-functions-api" "^1.10.1" "@vercel/nft" "^0.23.0" - archiver "^5.3.0" + archiver "^6.0.0" common-path-prefix "^3.0.0" cp-file "^10.0.0" es-module-lexer "^1.0.0" - esbuild "0.19.2" + esbuild "0.19.4" execa "^6.0.0" filter-obj "^5.0.0" find-up "^6.0.0" - get-tsconfig "^4.6.2" glob "^8.0.3" is-builtin-module "^3.1.0" is-path-inside "^4.0.0" @@ -2666,24 +2914,24 @@ urlpattern-polyfill "8.0.2" yargs "^17.0.0" -"@netlify/zip-it-and-ship-it@9.17.1": - version "9.17.1" - resolved "https://registry.yarnpkg.com/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-9.17.1.tgz#0f4e0634e6817347b9a3d002ef8884a1c6bd0c7d" - integrity sha512-BPgI1j2Dpq45s/z8t8Ed4aBmQ7k3v7ToCmI/vITyMorP2Ee+l5aq4IHfqW2O40kb7sEjHZwDGestX/axhI/QhQ== +"@netlify/zip-it-and-ship-it@9.26.1": + version "9.26.1" + resolved "https://registry.yarnpkg.com/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-9.26.1.tgz#fbd4380c25a1bc62fb4e138310fa1eba89033de1" + integrity sha512-1hJcNIqXU7y5TgAACaRZp4vu3Bknl2pD6Aq3WOdY4T1zuB/SyKOn8Im6wwYElpc4n5LDGIOPyJlLDNo+DOwoWA== dependencies: "@babel/parser" "^7.22.5" + "@babel/types" "7.23.0" "@netlify/binary-info" "^1.0.0" - "@netlify/serverless-functions-api" "^1.7.3" + "@netlify/serverless-functions-api" "^1.12.0" "@vercel/nft" "^0.23.0" - archiver "^5.3.0" + archiver "^6.0.0" common-path-prefix "^3.0.0" cp-file "^10.0.0" es-module-lexer "^1.0.0" - esbuild "0.19.2" + esbuild "0.19.5" execa "^6.0.0" filter-obj "^5.0.0" find-up "^6.0.0" - get-tsconfig "^4.6.2" glob "^8.0.3" is-builtin-module "^3.1.0" is-path-inside "^4.0.0" @@ -2886,6 +3134,17 @@ mcl-wasm "^0.7.1" rustbn.js "~0.2.0" +"@nomicfoundation/hardhat-chai-matchers@^1.0.0": + version "1.0.6" + resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-chai-matchers/-/hardhat-chai-matchers-1.0.6.tgz#72a2e312e1504ee5dd73fe302932736432ba96bc" + integrity sha512-f5ZMNmabZeZegEfuxn/0kW+mm7+yV7VNDxLpMOMGXWFJ2l/Ct3QShujzDRF9cOkK9Ui/hbDeOWGZqyQALDXVCQ== + dependencies: + "@ethersproject/abi" "^5.1.2" + "@types/chai-as-promised" "^7.1.3" + chai-as-promised "^7.1.1" + deep-eql "^4.0.1" + ordinal "^1.0.3" + "@nomicfoundation/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" @@ -2952,7 +3211,7 @@ "@nomicfoundation/solidity-analyzer-win32-ia32-msvc" "0.1.1" "@nomicfoundation/solidity-analyzer-win32-x64-msvc" "0.1.1" -"@nomiclabs/hardhat-ethers@^2.0.2", "@nomiclabs/hardhat-ethers@^2.2.1": +"@nomiclabs/hardhat-ethers@^2.0.0", "@nomiclabs/hardhat-ethers@^2.0.2", "@nomiclabs/hardhat-ethers@^2.2.1": version "2.2.3" resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-ethers/-/hardhat-ethers-2.2.3.tgz#b41053e360c31a32c2640c9a45ee981a7e603fe0" integrity sha512-YhzPdzb612X591FOe68q+qXVXGG2ANZRvDo0RRUtimev85rCrAlv/TLMEZw5c+kq9AbzocLTVX/h2jVIFPL9Xg== @@ -3059,9 +3318,9 @@ universal-user-agent "^6.0.0" "@octokit/openapi-types@^18.0.0": - version "18.0.0" - resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-18.0.0.tgz#f43d765b3c7533fd6fb88f3f25df079c24fccf69" - integrity sha512-V8GImKs3TeQRxRtXFpG2wl19V7444NIOTDF24AWuIbmNaNYOQMWRbjcGDXV5B+0n887fgDcuMNOmlul+k+oJtw== + version "18.1.1" + resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-18.1.1.tgz#09bdfdabfd8e16d16324326da5148010d765f009" + integrity sha512-VRaeH8nCDtF5aXWnjPuEMIYf1itK/s3JYyJcWFJT8X9pSNnBtriDf7wlEWsGuhPLl4QIH4xM8fqTXDwJ3Mu6sw== "@octokit/plugin-paginate-rest@^6.1.2": version "6.1.2" @@ -3138,22 +3397,36 @@ resolved "https://registry.yarnpkg.com/@openfonts/inter_all/-/inter_all-1.0.2.tgz#87fc59c58926d2e5e63022a0960f12be82915d00" integrity sha512-hdB3gPFLztuDbEDLImVRTQyH4EHHrX9iEsw6wZW+VuwUoTwMJEhOV9dWliM6WZtJYF/cqYuiMK+Bqdd2XztnDg== -"@opentelemetry/api@^1.4.1": - version "1.4.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-1.4.1.tgz#ff22eb2e5d476fbc2450a196e40dd243cc20c28f" - integrity sha512-O2yRJce1GOc6PAy3QxFM4NzFiWzvScDC1/5ihYBL6BUEVdq0XMWN01sppE+H6bBXbaFYipjwFLEWLg5PaSOThA== +"@opentelemetry/api-logs@0.39.1": + version "0.39.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/api-logs/-/api-logs-0.39.1.tgz#3ea1e9dda11c35f993cb60dc5e52780b8175e702" + integrity sha512-9BJ8lMcOzEN0lu+Qji801y707oFO4xT3db6cosPvl+k7ItUHKN5ofWqtSbM9gbt1H4JJ/4/2TVrqI9Rq7hNv6Q== + dependencies: + "@opentelemetry/api" "^1.0.0" -"@opentelemetry/context-async-hooks@1.10.1": - version "1.10.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/context-async-hooks/-/context-async-hooks-1.10.1.tgz#aa4ba9b944f93ae0c29460229dc2d4588dbb484b" - integrity sha512-6CC9sWOZDkUkKrAR957fmxXXlaK3uiBu5xVnuNEQ7hI7VqkUC/r0mNYIql0ouRInLz5o0HwmDuga1eXgQU7KNQ== +"@opentelemetry/api-logs@0.41.2": + version "0.41.2" + resolved "https://registry.yarnpkg.com/@opentelemetry/api-logs/-/api-logs-0.41.2.tgz#600c9b3d79018e7421d2ff7189f41b6d2c987d6a" + integrity sha512-JEV2RAqijAFdWeT6HddYymfnkiRu2ASxoTBr4WsnGJhOjWZkEy6vp+Sx9ozr1NaIODOa2HUyckExIqQjn6qywQ== + dependencies: + "@opentelemetry/api" "^1.0.0" -"@opentelemetry/core@1.10.1": - version "1.10.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/core/-/core-1.10.1.tgz#057a621db13589bad5618b786bb4f0a643bd4323" - integrity sha512-uBZs9poKMWX7WWHsRfaGHqvrn77D9EU5LwU8Ge3YKD/Su5Gy+T1v476l49nl1UOzEMNo4cISao3nIqQVsABB8g== +"@opentelemetry/api@^1.0.0", "@opentelemetry/api@^1.4.1": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-1.7.0.tgz#b139c81999c23e3c8d3c0a7234480e945920fc40" + integrity sha512-AdY5wvN0P2vXBi3b29hxZgSFvdhdxPB9+f0B6s//P9Q8nibRWeA3cHm8UmLpio9ABigkVHJ5NMPk+Mz8VCCyrw== + +"@opentelemetry/context-async-hooks@1.13.0": + version "1.13.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/context-async-hooks/-/context-async-hooks-1.13.0.tgz#b697317c1670eaa9b1c23201d09dd29250dcc8fa" + integrity sha512-pS5fU4lrRjOIPZQqA2V1SUM9QUFXbO+8flubAiy6ntLjnAjJJUdRFOUOxK6v86ZHI2p2S8A0vD0BTu95FZYvjA== + +"@opentelemetry/core@1.13.0": + version "1.13.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/core/-/core-1.13.0.tgz#7cdcb4176d260d279b0aa31456c4ce2ba7f410aa" + integrity sha512-2dBX3Sj99H96uwJKvc2w9NOiNgbvAO6mOFJFramNkKfS9O4Um+VWgpnlAazoYjT6kUJ1MP70KQ5ngD4ed+4NUw== dependencies: - "@opentelemetry/semantic-conventions" "1.10.1" + "@opentelemetry/semantic-conventions" "1.13.0" "@opentelemetry/core@1.15.2": version "1.15.2" @@ -3162,166 +3435,248 @@ dependencies: "@opentelemetry/semantic-conventions" "1.15.2" -"@opentelemetry/exporter-jaeger@1.10.1": - version "1.10.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-jaeger/-/exporter-jaeger-1.10.1.tgz#c792ee1887f812a1d144402a09a33be166902b6a" - integrity sha512-bZIoSD6M7uxO19HtRJCAceAahX56LUmj5N/XQFHmoi3iFqA2JfR7bqsyHQCYbgINdiee155UejaqkNpgvjV7fw== +"@opentelemetry/core@1.18.1", "@opentelemetry/core@^1.13.0": + version "1.18.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/core/-/core-1.18.1.tgz#d2e45f6bd6be4f00d20d18d4f1b230ec33805ae9" + integrity sha512-kvnUqezHMhsQvdsnhnqTNfAJs3ox/isB0SVrM1dhVFw7SsB7TstuVa6fgWnN2GdPyilIFLUvvbTZoVRmx6eiRg== + dependencies: + "@opentelemetry/semantic-conventions" "1.18.1" + +"@opentelemetry/exporter-jaeger@1.13.0": + version "1.13.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-jaeger/-/exporter-jaeger-1.13.0.tgz#e96436438d3f8cc7b262ab4e517d55f96f413161" + integrity sha512-ke/STs/erRDqKmNv6Dv+5SetXsVD+Zm1/Wo8cLdAGrZn6kG6Fyp5EXVO/BJuzx6q+jHCdODm8jV4veXl4m71nQ== dependencies: - "@opentelemetry/core" "1.10.1" - "@opentelemetry/sdk-trace-base" "1.10.1" - "@opentelemetry/semantic-conventions" "1.10.1" + "@opentelemetry/core" "1.13.0" + "@opentelemetry/sdk-trace-base" "1.13.0" + "@opentelemetry/semantic-conventions" "1.13.0" jaeger-client "^3.15.0" -"@opentelemetry/exporter-metrics-otlp-grpc@^0.36.1": - version "0.36.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-metrics-otlp-grpc/-/exporter-metrics-otlp-grpc-0.36.1.tgz#5a904f1e68690decf4389da62aff3453845af734" - integrity sha512-yQPHny0Y3HIE1BSqbN82MoqqbbJeLINjL7Qf3kJwv1zt5YLUhYbn3FkqHQWS0YWpAvdjK0/OcN40SjEbVz2HRA== +"@opentelemetry/exporter-metrics-otlp-grpc@^0.41.0": + version "0.41.2" + resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-metrics-otlp-grpc/-/exporter-metrics-otlp-grpc-0.41.2.tgz#3272e67e63167bdaf26585f930a2b60cf3ae76cb" + integrity sha512-gQuCcd5QSMkfi1XIriWAoak/vaRvFzpvtzh2hjziIvbnA3VtoGD3bDb2dzEzOA1iSWO0/tHwnBsSmmUZsETyOA== + dependencies: + "@grpc/grpc-js" "^1.7.1" + "@opentelemetry/core" "1.15.2" + "@opentelemetry/exporter-metrics-otlp-http" "0.41.2" + "@opentelemetry/otlp-grpc-exporter-base" "0.41.2" + "@opentelemetry/otlp-transformer" "0.41.2" + "@opentelemetry/resources" "1.15.2" + "@opentelemetry/sdk-metrics" "1.15.2" + +"@opentelemetry/exporter-metrics-otlp-http@0.39.1": + version "0.39.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-metrics-otlp-http/-/exporter-metrics-otlp-http-0.39.1.tgz#be2a9954db69b3c11779bf30c51e2fa901721c78" + integrity sha512-Uj2i6t5v9aexV03xvVobwLV0Yxn7lQcCxBGN5KKxcs8BTZYSfjdwhrFjsOxvEQ2cXugL0aIzCuTKxrlXYTmFwA== + dependencies: + "@opentelemetry/core" "1.13.0" + "@opentelemetry/otlp-exporter-base" "0.39.1" + "@opentelemetry/otlp-transformer" "0.39.1" + "@opentelemetry/resources" "1.13.0" + "@opentelemetry/sdk-metrics" "1.13.0" + +"@opentelemetry/exporter-metrics-otlp-http@0.41.2": + version "0.41.2" + resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-metrics-otlp-http/-/exporter-metrics-otlp-http-0.41.2.tgz#b4e5483d00d913daec950a07784e459d1c60fb3d" + integrity sha512-+YeIcL4nuldWE89K8NBLImpXCvih04u1MBnn8EzvoywG2TKR5JC3CZEPepODIxlsfGSgP8W5khCEP1NHZzftYw== + dependencies: + "@opentelemetry/core" "1.15.2" + "@opentelemetry/otlp-exporter-base" "0.41.2" + "@opentelemetry/otlp-transformer" "0.41.2" + "@opentelemetry/resources" "1.15.2" + "@opentelemetry/sdk-metrics" "1.15.2" + +"@opentelemetry/exporter-metrics-otlp-proto@^0.39.1": + version "0.39.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-metrics-otlp-proto/-/exporter-metrics-otlp-proto-0.39.1.tgz#872a7f8ab6a7f57ef39225d073d89840f89b0bf4" + integrity sha512-S+FgIhmZiFMsUivtAlCyzf3L5ezPyCqvlzt4hSZmiKs0kqapau1HS4cSpGacs9Jy499TRSNtqfjj7GxZrNIevw== + dependencies: + "@opentelemetry/core" "1.13.0" + "@opentelemetry/exporter-metrics-otlp-http" "0.39.1" + "@opentelemetry/otlp-exporter-base" "0.39.1" + "@opentelemetry/otlp-proto-exporter-base" "0.39.1" + "@opentelemetry/otlp-transformer" "0.39.1" + "@opentelemetry/resources" "1.13.0" + "@opentelemetry/sdk-metrics" "1.13.0" + +"@opentelemetry/exporter-trace-otlp-grpc@0.39.1": + version "0.39.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-trace-otlp-grpc/-/exporter-trace-otlp-grpc-0.39.1.tgz#3949f909fb3f8cbb456480a35829bb2630331bd3" + integrity sha512-l5RhLKx6U+yuLhMrtgavTDthX50E1mZM3/SSySC7OPZiArFHV/b/9x9jxAzrOgIQUDxyj4N0V9aLKSA2t7Qzxg== dependencies: "@grpc/grpc-js" "^1.7.1" - "@opentelemetry/core" "1.10.1" - "@opentelemetry/exporter-metrics-otlp-http" "0.36.1" - "@opentelemetry/otlp-grpc-exporter-base" "0.36.1" - "@opentelemetry/otlp-transformer" "0.36.1" - "@opentelemetry/resources" "1.10.1" - "@opentelemetry/sdk-metrics" "1.10.1" - -"@opentelemetry/exporter-metrics-otlp-http@0.36.1": - version "0.36.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-metrics-otlp-http/-/exporter-metrics-otlp-http-0.36.1.tgz#a2eb3bdf00d365fb0877f7bc1f608e59d3288a52" - integrity sha512-JcpEBwtBpNhVvmCLH3zjTPDcOld2AeI5rNglv2JrB16QCxQ5pwsOgzw7mPe/UR4u/53Ij7LIjFTOCeyVto/6aA== - dependencies: - "@opentelemetry/core" "1.10.1" - "@opentelemetry/otlp-exporter-base" "0.36.1" - "@opentelemetry/otlp-transformer" "0.36.1" - "@opentelemetry/resources" "1.10.1" - "@opentelemetry/sdk-metrics" "1.10.1" - -"@opentelemetry/exporter-metrics-otlp-proto@^0.36.1": - version "0.36.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-metrics-otlp-proto/-/exporter-metrics-otlp-proto-0.36.1.tgz#b9594ff823fd22c21d60cb0acc6ac529b30f5a1d" - integrity sha512-dKJRKvIiyupuZJOVCzW9wNfsK6RxkELnzCSJHzFoIwhGRXSYpbWyYrfHj4ZJZWYZiQSJ7+I8BFUa4aSkBgnO0w== - dependencies: - "@opentelemetry/core" "1.10.1" - "@opentelemetry/exporter-metrics-otlp-http" "0.36.1" - "@opentelemetry/otlp-exporter-base" "0.36.1" - "@opentelemetry/otlp-proto-exporter-base" "0.36.1" - "@opentelemetry/otlp-transformer" "0.36.1" - "@opentelemetry/resources" "1.10.1" - "@opentelemetry/sdk-metrics" "1.10.1" - -"@opentelemetry/exporter-trace-otlp-grpc@0.36.1", "@opentelemetry/exporter-trace-otlp-grpc@^0.36.1": - version "0.36.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-trace-otlp-grpc/-/exporter-trace-otlp-grpc-0.36.1.tgz#7f15597ba0f56d7163a60e58b18842591fdefdae" - integrity sha512-U2HdWvQho2VkeSAcAhkZ2wjfUb/1SKQixo5x6LNBF17ES4QYuh5+BagYxfN5FP4dbLnjZpTtFk5lj+97lfNLEw== + "@opentelemetry/core" "1.13.0" + "@opentelemetry/otlp-grpc-exporter-base" "0.39.1" + "@opentelemetry/otlp-transformer" "0.39.1" + "@opentelemetry/resources" "1.13.0" + "@opentelemetry/sdk-trace-base" "1.13.0" + +"@opentelemetry/exporter-trace-otlp-grpc@^0.41.0": + version "0.41.2" + resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-trace-otlp-grpc/-/exporter-trace-otlp-grpc-0.41.2.tgz#445f850f4675e0afc3e326b2663576fa0b5fbee4" + integrity sha512-tRM/mq7PFj7mXCws5ICMVp/rmgU93JvZdoLE0uLj4tugNz231u2ZgeRYXulBjdeHM88ZQSsWTJMu2mvr/3JV1A== dependencies: "@grpc/grpc-js" "^1.7.1" - "@opentelemetry/core" "1.10.1" - "@opentelemetry/otlp-grpc-exporter-base" "0.36.1" - "@opentelemetry/otlp-transformer" "0.36.1" - "@opentelemetry/resources" "1.10.1" - "@opentelemetry/sdk-trace-base" "1.10.1" - -"@opentelemetry/exporter-trace-otlp-http@0.36.1": - version "0.36.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-trace-otlp-http/-/exporter-trace-otlp-http-0.36.1.tgz#2b54a8b55f89cef212264a30824add575890e6c3" - integrity sha512-q/jKlfuKiHqltDzgzgEvXkoEJ/EyVSIAZhfiaoyBeQ49UhHCPvNTH36/hSwbGSEhKeX98WxXZK4NB/S3sUs8ig== - dependencies: - "@opentelemetry/core" "1.10.1" - "@opentelemetry/otlp-exporter-base" "0.36.1" - "@opentelemetry/otlp-transformer" "0.36.1" - "@opentelemetry/resources" "1.10.1" - "@opentelemetry/sdk-trace-base" "1.10.1" - -"@opentelemetry/exporter-trace-otlp-proto@0.36.1", "@opentelemetry/exporter-trace-otlp-proto@^0.36.1": - version "0.36.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-trace-otlp-proto/-/exporter-trace-otlp-proto-0.36.1.tgz#14fe04539805186748ca2f119e36d8ff64cfd9c2" - integrity sha512-pNfrto7amygyyhmL4Kf96wuepROEecBYXSrtoXIVb1aUhUqjWLsA3/6DR3unB5EfSRA1Oq1Z9bqHfNuKqGfPNw== - dependencies: - "@opentelemetry/core" "1.10.1" - "@opentelemetry/otlp-exporter-base" "0.36.1" - "@opentelemetry/otlp-proto-exporter-base" "0.36.1" - "@opentelemetry/otlp-transformer" "0.36.1" - "@opentelemetry/resources" "1.10.1" - "@opentelemetry/sdk-trace-base" "1.10.1" - -"@opentelemetry/exporter-zipkin@1.10.1": - version "1.10.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-zipkin/-/exporter-zipkin-1.10.1.tgz#3486bf988e7e07fb39fbe4082ed5a37fc09e8ea6" - integrity sha512-8gF8MjcFf6IhQ7vm6W4tPYtu/vQswYVzpYvk3pUSaX9BMGrwgjeXg+LpuRtaxGoiGd08/g7JjZ4sWLUaELnzWw== + "@opentelemetry/core" "1.15.2" + "@opentelemetry/otlp-grpc-exporter-base" "0.41.2" + "@opentelemetry/otlp-transformer" "0.41.2" + "@opentelemetry/resources" "1.15.2" + "@opentelemetry/sdk-trace-base" "1.15.2" + +"@opentelemetry/exporter-trace-otlp-http@0.39.1": + version "0.39.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-trace-otlp-http/-/exporter-trace-otlp-http-0.39.1.tgz#9625b04451f91d308395333c188f4841a173a781" + integrity sha512-AEhnJfVmo1g+7NxszAuf3c6vddld2DGH2+IM4XrPxCklucCsIpuStuC5EVZbCXXXBMpAY+n3t04QMxIQqNrcSw== + dependencies: + "@opentelemetry/core" "1.13.0" + "@opentelemetry/otlp-exporter-base" "0.39.1" + "@opentelemetry/otlp-transformer" "0.39.1" + "@opentelemetry/resources" "1.13.0" + "@opentelemetry/sdk-trace-base" "1.13.0" + +"@opentelemetry/exporter-trace-otlp-proto@0.39.1": + version "0.39.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-trace-otlp-proto/-/exporter-trace-otlp-proto-0.39.1.tgz#0d8f8a57e2a4e61849e19fb325292d0c2c32f7bc" + integrity sha512-oJQC7a67iwExRYynKqn/O9Fl5gUjDa43ZQsZu2iKAADs/6YJ+u5MJ/wcq3CpJsn2KU/8j8HWAKOcDkkQXPuJ9A== + dependencies: + "@opentelemetry/core" "1.13.0" + "@opentelemetry/otlp-exporter-base" "0.39.1" + "@opentelemetry/otlp-proto-exporter-base" "0.39.1" + "@opentelemetry/otlp-transformer" "0.39.1" + "@opentelemetry/resources" "1.13.0" + "@opentelemetry/sdk-trace-base" "1.13.0" + +"@opentelemetry/exporter-trace-otlp-proto@^0.41.0": + version "0.41.2" + resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-trace-otlp-proto/-/exporter-trace-otlp-proto-0.41.2.tgz#8e8f823d5264e34dc7c8b400f9d03871c7bfcbc5" + integrity sha512-IGZga9IIckqYE3IpRE9FO9G5umabObIrChlXUHYpMJtDgx797dsb3qXCvLeuAwB+HoB8NsEZstlzmLnoa6/HmA== dependencies: - "@opentelemetry/core" "1.10.1" - "@opentelemetry/resources" "1.10.1" - "@opentelemetry/sdk-trace-base" "1.10.1" - "@opentelemetry/semantic-conventions" "1.10.1" + "@opentelemetry/core" "1.15.2" + "@opentelemetry/otlp-exporter-base" "0.41.2" + "@opentelemetry/otlp-proto-exporter-base" "0.41.2" + "@opentelemetry/otlp-transformer" "0.41.2" + "@opentelemetry/resources" "1.15.2" + "@opentelemetry/sdk-trace-base" "1.15.2" -"@opentelemetry/instrumentation@0.36.1": - version "0.36.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation/-/instrumentation-0.36.1.tgz#7492526eadacd032f066457d759fc4560b357f7e" - integrity sha512-gtYErugMEF5NXVacmuE+tHFBiyB82YIiO5l8iZX9/4R4TDV8uCWdrLW5QZMqgTzPhiyOG9AITFdqhwIZMw/5lA== +"@opentelemetry/exporter-zipkin@1.13.0": + version "1.13.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-zipkin/-/exporter-zipkin-1.13.0.tgz#156ea40629e293a8bf5d80d7862df43440de13ea" + integrity sha512-4IuUmYEhlHm8tAGtd6KKkktEO9Bt7dpdBdAPVAzhmXsPwGi0yExo7E5qfi9HtHQcdfP9SnrGRkeorVtrZkGlhg== dependencies: - require-in-the-middle "^6.0.0" + "@opentelemetry/core" "1.13.0" + "@opentelemetry/resources" "1.13.0" + "@opentelemetry/sdk-trace-base" "1.13.0" + "@opentelemetry/semantic-conventions" "1.13.0" + +"@opentelemetry/instrumentation@0.39.1": + version "0.39.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation/-/instrumentation-0.39.1.tgz#46d03b4c7ce9f8d08f575d756acc801fa1283615" + integrity sha512-s7/9tPmM0l5KCd07VQizC4AO2/5UJdkXq5gMSHPdCeiMKSeBEdyDyQX7A+Cq+RYZM452qzFmrJ4ut628J5bnSg== + dependencies: + require-in-the-middle "^7.1.0" semver "^7.3.2" shimmer "^1.2.1" -"@opentelemetry/otlp-exporter-base@0.36.1": - version "0.36.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.36.1.tgz#9825dce8f08e34636ee7a48e7fe43cfd2c137d2b" - integrity sha512-fpjPwLafJIjgxY5qx7Ly74AYmRCd9spC6/jCxvEgGheg1YT4+NkfVnrfllxLRgc9wQNhDj7Y0Knp8RcmXLLVfA== +"@opentelemetry/otlp-exporter-base@0.39.1": + version "0.39.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.39.1.tgz#650c9b23bbc6eb335c5f9b7f433aca87e9dc88a3" + integrity sha512-Pv5X8fbi6jD/RJBePyn7MnCSuE6MbPB6dl+7YYBWJ5RcMGYMwvLXjd4h2jWsPV2TSUg38H/RoSP0aXvQ06Y7iw== + dependencies: + "@opentelemetry/core" "1.13.0" + +"@opentelemetry/otlp-exporter-base@0.41.2": + version "0.41.2" + resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.41.2.tgz#5928dfedb2a70117f03809862cf2cbdf8b7f9bf3" + integrity sha512-pfwa6d+Dax3itZcGWiA0AoXeVaCuZbbqUTsCtOysd2re8C2PWXNxDONUfBWsn+KgxAdi+ljwTjJGiaVLDaIEvQ== dependencies: - "@opentelemetry/core" "1.10.1" + "@opentelemetry/core" "1.15.2" -"@opentelemetry/otlp-grpc-exporter-base@0.36.1": - version "0.36.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-grpc-exporter-base/-/otlp-grpc-exporter-base-0.36.1.tgz#34875e75326b260bc3aa8b0ea65e6b12b565b5c5" - integrity sha512-71TdQ3Z0D2Trq8rc2UMvky7tmIpg8kVPUhdYH3p0tNsTmbx6GDpEBOpjp2/zCFvQ0SZFVfHH2Oj2OZxZiz+FNQ== +"@opentelemetry/otlp-grpc-exporter-base@0.39.1": + version "0.39.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-grpc-exporter-base/-/otlp-grpc-exporter-base-0.39.1.tgz#944f2ab384c08c37641c02f63381380d9d0714f4" + integrity sha512-u3ErFRQqQFKjjIMuwLWxz/tLPYInfmiAmSy//fGSCzCh2ZdJgqQjMOAxBgqFtCF2xFL+OmMhyuC2ThMzceGRWA== dependencies: "@grpc/grpc-js" "^1.7.1" - "@grpc/proto-loader" "^0.7.3" - "@opentelemetry/core" "1.10.1" - "@opentelemetry/otlp-exporter-base" "0.36.1" + "@opentelemetry/core" "1.13.0" + "@opentelemetry/otlp-exporter-base" "0.39.1" + protobufjs "^7.2.2" -"@opentelemetry/otlp-proto-exporter-base@0.36.1": - version "0.36.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-proto-exporter-base/-/otlp-proto-exporter-base-0.36.1.tgz#3e5eb68942c20a6e67d5379f385ec07bdf36c142" - integrity sha512-9ErknJ5fS7r2NxEFeca93H+pGWnCjZCUWsz6Stcj5/z2rgsiZGHXLz3fQoUGQz+iXjiXKkks9wxTCRgWOW+Yiw== +"@opentelemetry/otlp-grpc-exporter-base@0.41.2": + version "0.41.2" + resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-grpc-exporter-base/-/otlp-grpc-exporter-base-0.41.2.tgz#b056915aa274947517ac86b0c78533db274404e8" + integrity sha512-OErK8dYjXG01XIMIpmOV2SzL9ctkZ0Nyhf2UumICOAKtgLvR5dG1JMlsNVp8Jn0RzpsKc6Urv7JpP69wzRXN+A== dependencies: - "@opentelemetry/core" "1.10.1" - "@opentelemetry/otlp-exporter-base" "0.36.1" + "@grpc/grpc-js" "^1.7.1" + "@opentelemetry/core" "1.15.2" + "@opentelemetry/otlp-exporter-base" "0.41.2" + protobufjs "^7.2.3" + +"@opentelemetry/otlp-proto-exporter-base@0.39.1": + version "0.39.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-proto-exporter-base/-/otlp-proto-exporter-base-0.39.1.tgz#04a46c7497724759a260d8ded5463a20ac5c6d39" + integrity sha512-VssdfGYu6LkSliQATdkvoP8lPSQuNLENRdHTUOV2veF4iqY/UpxBFFlkarY29W+MYjWXIBfYntgNjQvcn78A+w== + dependencies: + "@opentelemetry/core" "1.13.0" + "@opentelemetry/otlp-exporter-base" "0.39.1" protobufjs "^7.1.2" -"@opentelemetry/otlp-transformer@0.36.1": - version "0.36.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-transformer/-/otlp-transformer-0.36.1.tgz#7bd5a597577153547fe07a84b9814e6c65e31140" - integrity sha512-d2MomkVHBHwfsmNz6E60s/sm7gtpSjFwDzkFLm9brVq//VXzEhaEyfYSeTabdUs4BmrzhqTIogHWlcd6cOiL+w== +"@opentelemetry/otlp-proto-exporter-base@0.41.2": + version "0.41.2" + resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-proto-exporter-base/-/otlp-proto-exporter-base-0.41.2.tgz#10b1a4bb973bd6e0e741931d90f22387c5a3a151" + integrity sha512-BxmEMiP6tHiFroe5/dTt9BsxCci7BTLtF7A6d4DKHLiLweWWZxQ9l7hON7qt/IhpKrQcAFD1OzZ1Gq2ZkNzhCw== dependencies: - "@opentelemetry/core" "1.10.1" - "@opentelemetry/resources" "1.10.1" - "@opentelemetry/sdk-metrics" "1.10.1" - "@opentelemetry/sdk-trace-base" "1.10.1" + "@opentelemetry/core" "1.15.2" + "@opentelemetry/otlp-exporter-base" "0.41.2" + protobufjs "^7.2.3" + +"@opentelemetry/otlp-transformer@0.39.1": + version "0.39.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-transformer/-/otlp-transformer-0.39.1.tgz#6d83e33d2a031f9ae1dcaf29595eac25b681bebf" + integrity sha512-0hgVnXXz5efI382B/24NxD4b6Zxlh7nxCdJkxkdmQMbn0yRiwoq/ZT+QG8eUL6JNzsBAV1WJlF5aJNsL8skHvw== + dependencies: + "@opentelemetry/api-logs" "0.39.1" + "@opentelemetry/core" "1.13.0" + "@opentelemetry/resources" "1.13.0" + "@opentelemetry/sdk-logs" "0.39.1" + "@opentelemetry/sdk-metrics" "1.13.0" + "@opentelemetry/sdk-trace-base" "1.13.0" + +"@opentelemetry/otlp-transformer@0.41.2": + version "0.41.2" + resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-transformer/-/otlp-transformer-0.41.2.tgz#cd3a7185ef77fe9b7b4c2d2f9e001fa1d2fa6cf8" + integrity sha512-jJbPwB0tNu2v+Xi0c/v/R3YBLJKLonw1p+v3RVjT2VfzeUyzSp/tBeVdY7RZtL6dzZpA9XSmp8UEfWIFQo33yA== + dependencies: + "@opentelemetry/api-logs" "0.41.2" + "@opentelemetry/core" "1.15.2" + "@opentelemetry/resources" "1.15.2" + "@opentelemetry/sdk-logs" "0.41.2" + "@opentelemetry/sdk-metrics" "1.15.2" + "@opentelemetry/sdk-trace-base" "1.15.2" -"@opentelemetry/propagator-b3@1.10.1": - version "1.10.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/propagator-b3/-/propagator-b3-1.10.1.tgz#70ba9b96635ee295095837035be8c9c8a8c860c8" - integrity sha512-YrWqU93PH8RyCmqGhtDZgyk64D+cp8XIjQsLhEgOPcOsxvxSSGXnGt46rx9Z8+WdIbJgj13Q4nV/xuh36k+O+A== +"@opentelemetry/propagator-b3@1.13.0": + version "1.13.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/propagator-b3/-/propagator-b3-1.13.0.tgz#30a19a24e61ae8dbc26c2d7d7d3423d804d48f07" + integrity sha512-HOo91EI4UbuG8xQVLFziTzrcIn0MJQhy8m9jorh8aonb94jFVFi3CFNIiAnIGOabmnshJLOABxpYXsiPB8Xnzg== dependencies: - "@opentelemetry/core" "1.10.1" + "@opentelemetry/core" "1.13.0" -"@opentelemetry/propagator-jaeger@1.10.1": - version "1.10.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/propagator-jaeger/-/propagator-jaeger-1.10.1.tgz#15ac89b7ad9a80d15028d0f4fcc9631e7feedc0c" - integrity sha512-qvwFfDPoBw2YQW/OsGHdLdD/rqNRGBRLz5UZR/akO21C4qwIK+lQcXbSi5ve0p2eLHnFshhNFqDmgQclOYBcmg== +"@opentelemetry/propagator-jaeger@1.13.0": + version "1.13.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/propagator-jaeger/-/propagator-jaeger-1.13.0.tgz#94a79d5301409d49b149227ee5568fcf6b21f9fe" + integrity sha512-IV9TO+u1Jzm9mUDAD3gyXf89eyvgEJUY1t+GB5QmS4wjVeWrSMUtD0JjH3yG9SNqkrQOqOGJq7YUSSetW+Lf5Q== dependencies: - "@opentelemetry/core" "1.10.1" + "@opentelemetry/core" "1.13.0" -"@opentelemetry/resources@1.10.1": - version "1.10.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/resources/-/resources-1.10.1.tgz#a2537ea241e09a63d5d1afd566f89e2ef5889370" - integrity sha512-e+wwdyO44jZtsT1aqGiWMFOfN1XuP9Tv4+H0OYP3yQajBtGdsZjdSUn9UNjw46JsW0Mb+RaTxJwsb2uvfHar0g== +"@opentelemetry/resources@1.13.0": + version "1.13.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/resources/-/resources-1.13.0.tgz#436b33ea950004e66fce6575f2776a05faca7f8e" + integrity sha512-euqjOkiN6xhjE//0vQYGvbStxoD/WWQRhDiO0OTLlnLBO9Yw2Gd/VoSx2H+svsebjzYk5OxLuREBmcdw6rbUNg== dependencies: - "@opentelemetry/core" "1.10.1" - "@opentelemetry/semantic-conventions" "1.10.1" + "@opentelemetry/core" "1.13.0" + "@opentelemetry/semantic-conventions" "1.13.0" -"@opentelemetry/resources@1.15.2", "@opentelemetry/resources@^1.10.1": +"@opentelemetry/resources@1.15.2": version "1.15.2" resolved "https://registry.yarnpkg.com/@opentelemetry/resources/-/resources-1.15.2.tgz#0c9e26cb65652a1402834a3c030cce6028d6dd9d" integrity sha512-xmMRLenT9CXmm5HMbzpZ1hWhaUowQf8UB4jMjFlAxx1QzQcsD3KFNAVX/CAWzFPtllTyTplrA4JrQ7sCH3qmYw== @@ -3329,16 +3684,40 @@ "@opentelemetry/core" "1.15.2" "@opentelemetry/semantic-conventions" "1.15.2" -"@opentelemetry/sdk-metrics@1.10.1": - version "1.10.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-metrics/-/sdk-metrics-1.10.1.tgz#1389a8524ba59dc2e1d9cf627d504119c111fca1" - integrity sha512-ARAD4e6lZhLwstwW+1HG2Q3XuYFA/t8vn10KK/mA4em1pZYKFn64c45RJZJcntxWp4wOZRbp9iL1RXsg7zIjow== +"@opentelemetry/resources@1.18.1", "@opentelemetry/resources@^1.13.0": + version "1.18.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/resources/-/resources-1.18.1.tgz#e27bdc4715bccc8cd4a72d4aca3995ad0a496fe7" + integrity sha512-JjbcQLYMttXcIabflLRuaw5oof5gToYV9fuXbcsoOeQ0BlbwUn6DAZi++PNsSz2jjPeASfDls10iaO/8BRIPRA== + dependencies: + "@opentelemetry/core" "1.18.1" + "@opentelemetry/semantic-conventions" "1.18.1" + +"@opentelemetry/sdk-logs@0.39.1": + version "0.39.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-logs/-/sdk-logs-0.39.1.tgz#888af05458af5d097d6263ade118e8db78f76f38" + integrity sha512-/gmgKfZ1ZVFporKuwsewqIyvaUIGpv76JZ7lBpHQQPb37IMpaXO6pdqFI4ebHAWfNIm3akMyhmdtzivcgF3lgw== + dependencies: + "@opentelemetry/core" "1.13.0" + "@opentelemetry/resources" "1.13.0" + +"@opentelemetry/sdk-logs@0.41.2": + version "0.41.2" + resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-logs/-/sdk-logs-0.41.2.tgz#c3eeb6793bdfa52351d66e2e66637e433abed672" + integrity sha512-smqKIw0tTW15waj7BAPHFomii5c3aHnSE4LQYTszGoK5P9nZs8tEAIpu15UBxi3aG31ZfsLmm4EUQkjckdlFrw== + dependencies: + "@opentelemetry/core" "1.15.2" + "@opentelemetry/resources" "1.15.2" + +"@opentelemetry/sdk-metrics@1.13.0": + version "1.13.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-metrics/-/sdk-metrics-1.13.0.tgz#4e859107a7a4389bcda7b37d3952bc7dd34211d7" + integrity sha512-MOjZX6AnSOqLliCcZUrb+DQKjAWXBiGeICGbHAGe5w0BB18PJIeIo995lO5JSaFfHpmUMgJButTPfJJD27W3Vg== dependencies: - "@opentelemetry/core" "1.10.1" - "@opentelemetry/resources" "1.10.1" + "@opentelemetry/core" "1.13.0" + "@opentelemetry/resources" "1.13.0" lodash.merge "4.6.2" -"@opentelemetry/sdk-metrics@^1.10.1": +"@opentelemetry/sdk-metrics@1.15.2": version "1.15.2" resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-metrics/-/sdk-metrics-1.15.2.tgz#eadd0a049de9cd860e1e0d49eea01156469c4b60" integrity sha512-9aIlcX8GnhcsAHW/Wl8bzk4ZnWTpNlLtud+fxUfBtFATu6OZ6TrGrF4JkT9EVrnoxwtPIDtjHdEsSjOqisY/iA== @@ -3347,34 +3726,43 @@ "@opentelemetry/resources" "1.15.2" lodash.merge "^4.6.2" -"@opentelemetry/sdk-node@^0.36.1": - version "0.36.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-node/-/sdk-node-0.36.1.tgz#2c38a9f2bf9e7b95cf95c618123ac2f209d3a944" - integrity sha512-7cRIxls3Ccg6HmzSu30R5upi0yHEizab2rm2rATrAyFV3JJ/ISA7cojmwKwYG8p4rkPNNPLOwCxI3vlLJrBnKA== - dependencies: - "@opentelemetry/core" "1.10.1" - "@opentelemetry/exporter-jaeger" "1.10.1" - "@opentelemetry/exporter-trace-otlp-grpc" "0.36.1" - "@opentelemetry/exporter-trace-otlp-http" "0.36.1" - "@opentelemetry/exporter-trace-otlp-proto" "0.36.1" - "@opentelemetry/exporter-zipkin" "1.10.1" - "@opentelemetry/instrumentation" "0.36.1" - "@opentelemetry/resources" "1.10.1" - "@opentelemetry/sdk-metrics" "1.10.1" - "@opentelemetry/sdk-trace-base" "1.10.1" - "@opentelemetry/sdk-trace-node" "1.10.1" - "@opentelemetry/semantic-conventions" "1.10.1" - -"@opentelemetry/sdk-trace-base@1.10.1": - version "1.10.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.10.1.tgz#fce06a810f9052d3c1b935d134979f4254bc8ae2" - integrity sha512-jutSP5t22wrPKReJKzI5uKht4mJ4cQdF/mGFJkN+emFFsDXru9CuFv/NfUrD0jEqoaaiqjcZtPSyTzMgu9LXvw== +"@opentelemetry/sdk-metrics@^1.13.0": + version "1.18.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-metrics/-/sdk-metrics-1.18.1.tgz#1dd334744a1e5d2eec27e9e9765c73cd2f43aef3" + integrity sha512-TEFgeNFhdULBYiCoHbz31Y4PDsfjjxRp8Wmdp6ybLQZPqMNEb+dRq+XN8Xw3ivIgTaf9gYsomgV5ensX99RuEQ== dependencies: - "@opentelemetry/core" "1.10.1" - "@opentelemetry/resources" "1.10.1" - "@opentelemetry/semantic-conventions" "1.10.1" + "@opentelemetry/core" "1.18.1" + "@opentelemetry/resources" "1.18.1" + lodash.merge "^4.6.2" -"@opentelemetry/sdk-trace-base@^1.10.1": +"@opentelemetry/sdk-node@^0.39.1": + version "0.39.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-node/-/sdk-node-0.39.1.tgz#0e3c0ee36c500e715a4c61fa4dd1985408ad0bb8" + integrity sha512-qODReBGNSdfRS5gvCFj1SdiIi/3ZFTZb0H1KvWE/OrTkklyL5RhIs7vDwvEGHmha+YpUu0Y2+R2+itSBSu/jCA== + dependencies: + "@opentelemetry/core" "1.13.0" + "@opentelemetry/exporter-jaeger" "1.13.0" + "@opentelemetry/exporter-trace-otlp-grpc" "0.39.1" + "@opentelemetry/exporter-trace-otlp-http" "0.39.1" + "@opentelemetry/exporter-trace-otlp-proto" "0.39.1" + "@opentelemetry/exporter-zipkin" "1.13.0" + "@opentelemetry/instrumentation" "0.39.1" + "@opentelemetry/resources" "1.13.0" + "@opentelemetry/sdk-metrics" "1.13.0" + "@opentelemetry/sdk-trace-base" "1.13.0" + "@opentelemetry/sdk-trace-node" "1.13.0" + "@opentelemetry/semantic-conventions" "1.13.0" + +"@opentelemetry/sdk-trace-base@1.13.0": + version "1.13.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.13.0.tgz#096cc2759430d880c5d886e009df2605097403dc" + integrity sha512-moTiQtc0uPR1hQLt6gLDJH9IIkeBhgRb71OKjNHZPE1VF45fHtD6nBDi5J/DkTHTwYP5X3kBJLa3xN7ub6J4eg== + dependencies: + "@opentelemetry/core" "1.13.0" + "@opentelemetry/resources" "1.13.0" + "@opentelemetry/semantic-conventions" "1.13.0" + +"@opentelemetry/sdk-trace-base@1.15.2": version "1.15.2" resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.15.2.tgz#4821f94033c55a6c8bbd35ae387b715b6108517a" integrity sha512-BEaxGZbWtvnSPchV98qqqqa96AOcb41pjgvhfzDij10tkBhIu9m0Jd6tZ1tJB5ZHfHbTffqYVYE0AOGobec/EQ== @@ -3383,28 +3771,42 @@ "@opentelemetry/resources" "1.15.2" "@opentelemetry/semantic-conventions" "1.15.2" -"@opentelemetry/sdk-trace-node@1.10.1": - version "1.10.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-node/-/sdk-trace-node-1.10.1.tgz#f627871fa048bf3c3c8d7ffaa57dfff069b683cb" - integrity sha512-/y+s1j8rPTaKnPnbrsbYv3ygTb4hjx/1H32zqobFr85cvWX+Tt1RWmcZ51TaPAfq5uJobGFhhLh6ADI2RDvk5Q== - dependencies: - "@opentelemetry/context-async-hooks" "1.10.1" - "@opentelemetry/core" "1.10.1" - "@opentelemetry/propagator-b3" "1.10.1" - "@opentelemetry/propagator-jaeger" "1.10.1" - "@opentelemetry/sdk-trace-base" "1.10.1" +"@opentelemetry/sdk-trace-base@^1.13.0": + version "1.18.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.18.1.tgz#256605d90b202002d5672305c66dbcf377132379" + integrity sha512-tRHfDxN5dO+nop78EWJpzZwHsN1ewrZRVVwo03VJa3JQZxToRDH29/+MB24+yoa+IArerdr7INFJiX/iN4gjqg== + dependencies: + "@opentelemetry/core" "1.18.1" + "@opentelemetry/resources" "1.18.1" + "@opentelemetry/semantic-conventions" "1.18.1" + +"@opentelemetry/sdk-trace-node@1.13.0": + version "1.13.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-node/-/sdk-trace-node-1.13.0.tgz#baadf62218ca69e37486debfbcf15b2563f75979" + integrity sha512-FXA85lXKTsnbOflA/TBuBf2pmhD3c8uDjNjG0YqK+ap8UayfALmfJhf+aG1yBOUHevCY0JXJ4/xtbXExxpsMog== + dependencies: + "@opentelemetry/context-async-hooks" "1.13.0" + "@opentelemetry/core" "1.13.0" + "@opentelemetry/propagator-b3" "1.13.0" + "@opentelemetry/propagator-jaeger" "1.13.0" + "@opentelemetry/sdk-trace-base" "1.13.0" semver "^7.3.5" -"@opentelemetry/semantic-conventions@1.10.1": - version "1.10.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.10.1.tgz#b7a0f16d4131aee598e55814efea0ff11d99ef34" - integrity sha512-qiAueuCoN+1YEuHNXnsct9bkbroZBPd7QwQgd56YURG0LBRVHwE/lF6FOprfUvp1n1tu0O6+E3s6x+dmUndXFQ== +"@opentelemetry/semantic-conventions@1.13.0": + version "1.13.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.13.0.tgz#0290398b3eaebc6029c348988a78c3b688fe9219" + integrity sha512-LMGqfSZkaMQXqewO0o1wvWr/2fQdCh4a3Sqlxka/UsJCe0cfLulh6x2aqnKLnsrSGiCq5rSCwvINd152i0nCqw== "@opentelemetry/semantic-conventions@1.15.2": version "1.15.2" resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.15.2.tgz#3bafb5de3e20e841dff6cb3c66f4d6e9694c4241" integrity sha512-CjbOKwk2s+3xPIMcd5UNYQzsf+v94RczbdNix9/kQh38WiQkM90sUOi3if8eyHFgiBjBjhwXrA7W3ydiSQP9mw== +"@opentelemetry/semantic-conventions@1.18.1": + version "1.18.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.18.1.tgz#8e47caf57a84b1dcc1722b2025693348cdf443b4" + integrity sha512-+NLGHr6VZwcgE/2lw8zDIufOCGnzsA5CbQIMleXZTrgkBd0TanCX+MiDYJ1TOS4KL/Tqk0nFRxawnaYr6pkZkA== + "@openzeppelin/contracts@4.9.0": version "4.9.0" resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-4.9.0.tgz#683f33b6598970051bc5f0806fd8660da9e018dd" @@ -3468,6 +3870,15 @@ resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.3.0.tgz#6dbdb86d96e955ab0fe4a4b60734ec0025a689dd" integrity sha512-+kiRE1JIq8QdxzwoYY+wzBs9YbJ34guBweTK8nlzLKimn5EQ2b2FSC+tAOpq302BuIMjyuUGvBiUhEcLIGMQ5g== +"@parcel/watcher-wasm@2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-wasm/-/watcher-wasm-2.3.0.tgz#73b66c6fbd2a3326ae86a1ec77eab7139d0dd725" + integrity sha512-ejBAX8H0ZGsD8lSICDNyMbSEtPMWgDL0WFCt/0z7hyf5v8Imz4rAM8xY379mBsECkq/Wdqa5WEDLqtjZ+6NxfA== + dependencies: + is-glob "^4.0.3" + micromatch "^4.0.5" + napi-wasm "^1.1.0" + "@parcel/watcher-win32-arm64@2.3.0": version "2.3.0" resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.3.0.tgz#59da26a431da946e6c74fa6b0f30b120ea6650b6" @@ -3483,7 +3894,7 @@ resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.3.0.tgz#14e7246289861acc589fd608de39fe5d8b4bb0a7" integrity sha512-dLx+0XRdMnVI62kU3wbXvbIRhLck4aE28bIGKbRGS7BJNt54IIj9+c/Dkqb+7DJEbHUZAX1bwaoM8PqVlHJmCA== -"@parcel/watcher@^2.1.0": +"@parcel/watcher@^2.1.0", "@parcel/watcher@^2.3.0": version "2.3.0" resolved "https://registry.yarnpkg.com/@parcel/watcher/-/watcher-2.3.0.tgz#803517abbc3981a1a1221791d9f59dc0590d50f9" integrity sha512-pW7QaFiL11O0BphO+bq3MgqeX/INAk9jgBldVDYjlQPO4VddoZnF22TcF9onMhnLVHuNqBJeRf+Fj7eezi/+rQ== @@ -3507,13 +3918,13 @@ "@parcel/watcher-win32-x64" "2.3.0" "@peculiar/asn1-schema@^2.3.6": - version "2.3.6" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.3.6.tgz#3dd3c2ade7f702a9a94dfb395c192f5fa5d6b922" - integrity sha512-izNRxPoaeJeg/AyH8hER6s+H7p4itk+03QCa4sbxI3lNdseQYCuxzgsuNK8bTXChtLTjpJz6NmXKA73qLa3rCA== + version "2.3.8" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.3.8.tgz#04b38832a814e25731232dd5be883460a156da3b" + integrity sha512-ULB1XqHKx1WBU/tTFIA+uARuRoBVZ4pNdOA878RDrRbBfBGcSzi5HBkdScC6ZbHn8z7L8gmKCgPC1LHRrP46tA== dependencies: asn1js "^3.0.5" - pvtsutils "^1.3.2" - tslib "^2.4.0" + pvtsutils "^1.3.5" + tslib "^2.6.2" "@peculiar/json-schema@^1.1.12": version "1.1.12" @@ -3607,11 +4018,16 @@ resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== -"@repeaterjs/repeater@3.0.4", "@repeaterjs/repeater@^3.0.4": +"@repeaterjs/repeater@3.0.4": version "3.0.4" resolved "https://registry.yarnpkg.com/@repeaterjs/repeater/-/repeater-3.0.4.tgz#a04d63f4d1bf5540a41b01a921c9a7fddc3bd1ca" integrity sha512-AW8PKd6iX3vAZ0vA43nOUOnbq/X5ihgU+mSXXqunMkeQADGiqw/PY0JNeYtD5sr0PAy51YPgAPbDoeapv9r8WA== +"@repeaterjs/repeater@^3.0.4": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@repeaterjs/repeater/-/repeater-3.0.5.tgz#b77571685410217a548a9c753aa3cdfc215bfc78" + integrity sha512-l3YHBLAol6d/IKnB9LhpD0cEZWAoe3eFKUyTYWmFmCO2Q/WOckxLQAUyMZWwZV2M/m3+4vgRoaolFqaII82/TA== + "@rescript/std@9.0.0": version "9.0.0" resolved "https://registry.yarnpkg.com/@rescript/std/-/std-9.0.0.tgz#df53f3fa5911cb4e85bd66b92e9e58ddf3e4a7e1" @@ -3672,18 +4088,18 @@ picomatch "^2.2.2" "@rollup/pluginutils@^5.0.1", "@rollup/pluginutils@^5.0.2": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.0.4.tgz#74f808f9053d33bafec0cc98e7b835c9667d32ba" - integrity sha512-0KJnIoRI8A+a1dqOYLxH8vBf8bphDmty5QvIm2hqm7oFCFYKCAZWWd2hXgMibaPsNDhI0AtpYfQZJG47pt/k4g== + version "5.0.5" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.0.5.tgz#bbb4c175e19ebfeeb8c132c2eea0ecb89941a66c" + integrity sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q== dependencies: "@types/estree" "^1.0.0" estree-walker "^2.0.2" picomatch "^2.3.1" "@rushstack/eslint-patch@^1.2.0": - version "1.3.3" - resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.3.3.tgz#16ab6c727d8c2020a5b6e4a176a243ecd88d8d69" - integrity sha512-0xd7qez0AQ+MbHatZTlI1gu5vkG8r7MYRUJAHPAHJBmGLs16zpkrpAVLvjQKQOqaXPDUBwOiJzNc00znHSCVBw== + version "1.5.1" + resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.5.1.tgz#5f1b518ec5fa54437c0b7c4a821546c64fed6922" + integrity sha512-6i/8UoL0P5y4leBIGzvkZdS85RDMG9y1ihZzmTZQ5LdHUYmZ7pKFoj8X0236s3lusPs1Fa5HTQUpwI+UfTcmeA== "@samverschueren/stream-to-observable@^0.3.0": version "0.3.1" @@ -3693,9 +4109,9 @@ any-observable "^0.3.0" "@scure/base@~1.1.0": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.2.tgz#ff0cf51874aaf176490c9cb46e4df807a2e581d2" - integrity sha512-sSCrnIdaUZQHhBxZThMuk7Wm1TWzMD3uJNdGgx3JS23xSqevu0tAOsg8k66nL3R2NwQe65AI9GgqpPOgZys/eA== + version "1.1.3" + resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.3.tgz#8584115565228290a6c6c4961973e0903bb3df2f" + integrity sha512-/+SgoRjLq7Xlf0CWuLHq2LUZeL/w65kfzAPG5NH9pcmBhs+nunQTn4gvdwgMTIXnt9b2C/1SeL2XiysZEyIC9Q== "@scure/bip32@1.1.5": version "1.1.5" @@ -3830,9 +4246,9 @@ escape-string-regexp "^5.0.0" "@solidity-parser/parser@^0.16.0": - version "0.16.1" - resolved "https://registry.yarnpkg.com/@solidity-parser/parser/-/parser-0.16.1.tgz#f7c8a686974e1536da0105466c4db6727311253c" - 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" @@ -4036,9 +4452,9 @@ "@types/node" "*" "@types/bn.js@^5.1.0", "@types/bn.js@^5.1.1": - version "5.1.1" - resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.1.tgz#b51e1b55920a4ca26e9285ff79936bbdec910682" - integrity sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g== + 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" "*" @@ -4052,22 +4468,29 @@ "@types/node" "*" "@types/responselike" "^1.0.0" +"@types/chai-as-promised@^7.1.3": + version "7.1.8" + resolved "https://registry.yarnpkg.com/@types/chai-as-promised/-/chai-as-promised-7.1.8.tgz#f2b3d82d53c59626b5d6bbc087667ccb4b677fe9" + integrity sha512-ThlRVIJhr69FLlh6IctTXFkmhtP3NpMZ2QGq69StYLyKZFp/HOp1VdKZj7RvfNWYYcJ1xlbLGLLWj1UvP5u/Gw== + dependencies: + "@types/chai" "*" + "@types/chai-subset@^1.3.3": - version "1.3.3" - resolved "https://registry.yarnpkg.com/@types/chai-subset/-/chai-subset-1.3.3.tgz#97893814e92abd2c534de422cb377e0e0bdaac94" - integrity sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw== + version "1.3.5" + resolved "https://registry.yarnpkg.com/@types/chai-subset/-/chai-subset-1.3.5.tgz#3fc044451f26985f45625230a7f22284808b0a9a" + integrity sha512-c2mPnw+xHtXDoHmdtcCXGwyLMiauiAyxWMzhGpqHC4nqI/Y5G2XhTampslK2rb59kpcuHon03UH8W6iYUzw88A== dependencies: "@types/chai" "*" "@types/chai@*", "@types/chai@^4.2.11", "@types/chai@^4.3.4": - version "4.3.5" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.5.tgz#ae69bcbb1bebb68c4ac0b11e9d8ed04526b3562b" - integrity sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng== + version "4.3.10" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.10.tgz#2ad2959d1767edee5b0e4efb1a0cd2b500747317" + integrity sha512-of+ICnbqjmFCiixUnqRulbylyXQrPqIGf/B3Jax1wIF3DvSheysQxAWvqHhZiW3IQrycvokcLcFQlveGp+vyNg== "@types/cli-progress@^3.11.0": - version "3.11.0" - resolved "https://registry.yarnpkg.com/@types/cli-progress/-/cli-progress-3.11.0.tgz#ec79df99b26757c3d1c7170af8422e0fc95eef7e" - integrity sha512-XhXhBv1R/q2ahF3BM7qT5HLzJNlIL0wbcGyZVjqOTqAybAnsLisd7gy1UCyIqpL+5Iv6XhlSyzjLCnI2sIdbCg== + version "3.11.5" + resolved "https://registry.yarnpkg.com/@types/cli-progress/-/cli-progress-3.11.5.tgz#9518c745e78557efda057e3f96a5990c717268c3" + integrity sha512-D4PbNRbviKyppS5ivBGyFO29POlySLmA2HyUFE4p5QGazAMM3CwkKWcvTl8gvElSuxRh6FPKL8XmidX873ou4g== dependencies: "@types/node" "*" @@ -4079,16 +4502,16 @@ "@types/node" "*" "@types/connect@^3.4.33": - version "3.4.35" - resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" - integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== + version "3.4.38" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858" + integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== dependencies: "@types/node" "*" "@types/estree@^1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194" - integrity sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA== + version "1.0.5" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" + integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== "@types/form-data@0.0.33": version "0.0.33" @@ -4097,56 +4520,56 @@ dependencies: "@types/node" "*" -"@types/http-cache-semantics@*", "@types/http-cache-semantics@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812" - integrity sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ== +"@types/http-cache-semantics@*", "@types/http-cache-semantics@^4.0.2": + 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/http-proxy@^1.17.8": - version "1.17.11" - resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.11.tgz#0ca21949a5588d55ac2b659b69035c84bd5da293" - integrity sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA== + version "1.17.14" + resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.14.tgz#57f8ccaa1c1c3780644f8a94f9c6b5000b5e2eec" + integrity sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w== dependencies: "@types/node" "*" "@types/humanize-duration@^3.27.1": - version "3.27.1" - resolved "https://registry.yarnpkg.com/@types/humanize-duration/-/humanize-duration-3.27.1.tgz#f14740d1f585a0a8e3f46359b62fda8b0eaa31e7" - integrity sha512-K3e+NZlpCKd6Bd/EIdqjFJRFHbrq5TzPPLwREk5Iv/YoIjQrs6ljdAUCo+Lb2xFlGNOjGSE0dqsVD19cZL137w== + version "3.27.3" + resolved "https://registry.yarnpkg.com/@types/humanize-duration/-/humanize-duration-3.27.3.tgz#fa49ada1cc65222d5f1295c7756b6877f5a96bcf" + integrity sha512-wiiiFYjnrYDJE/ujU7wS/NShqp12IKrejozjDtcejP0zYi+cjyjVcfZHwcFUDKVJ7tHGsmgeW2ED92ABIIjfpg== "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44" - integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== + version "2.0.6" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7" + integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== "@types/istanbul-lib-report@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" - integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz#53047614ae72e19fc0401d872de3ae2b4ce350bf" + integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA== dependencies: "@types/istanbul-lib-coverage" "*" "@types/istanbul-reports@^3.0.0": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" - integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz#0f03e3d2f670fbdac586e34b433783070cc16f54" + integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ== dependencies: "@types/istanbul-lib-report" "*" "@types/js-yaml@^4.0.0": - version "4.0.5" - resolved "https://registry.yarnpkg.com/@types/js-yaml/-/js-yaml-4.0.5.tgz#738dd390a6ecc5442f35e7f03fa1431353f7e138" - integrity sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA== + version "4.0.9" + resolved "https://registry.yarnpkg.com/@types/js-yaml/-/js-yaml-4.0.9.tgz#cd82382c4f902fed9691a2ed79ec68c5898af4c2" + integrity sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg== "@types/json-schema@^7.0.9": - version "7.0.12" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb" - integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA== + 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/json-stable-stringify@^1.0.32": - version "1.0.34" - resolved "https://registry.yarnpkg.com/@types/json-stable-stringify/-/json-stable-stringify-1.0.34.tgz#c0fb25e4d957e0ee2e497c1f553d7f8bb668fd75" - integrity sha512-s2cfwagOQAS8o06TcwKfr9Wx11dNGbH2E9vJz1cqV+a/LOyhWNLUNd6JSRYNzvB4d29UuJX2M0Dj9vE1T8fRXw== + version "1.0.36" + resolved "https://registry.yarnpkg.com/@types/json-stable-stringify/-/json-stable-stringify-1.0.36.tgz#fe6c6001a69ff8160a772da08779448a333c7ddd" + integrity sha512-b7bq23s4fgBB76n34m2b3RBf6M369B0Z9uRR8aHTMd8kZISRkmDEpPD8hhpYvDFzr3bJCPES96cm3Q6qRNDbQw== "@types/keyv@^3.1.4": version "3.1.4" @@ -4166,9 +4589,9 @@ integrity sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw== "@types/luxon@^3.1.0": - version "3.3.1" - resolved "https://registry.yarnpkg.com/@types/luxon/-/luxon-3.3.1.tgz#08727da7d81ee6a6c702b9dc6c8f86be010eb4dc" - integrity sha512-XOS5nBcgEeP2PpcqJHjCWhUCAzGfXIU8ILOSLpx2FhxqMW9KdxgCGXNOEKGVBfveKtIpztHzKK5vSRVLyW/NqA== + version "3.3.4" + resolved "https://registry.yarnpkg.com/@types/luxon/-/luxon-3.3.4.tgz#cda5c0709a0c4c01ba059c40e62d76610479049a" + integrity sha512-H9OXxv4EzJwE75aTPKpiGXJq+y4LFxjpsdgKwSmr503P5DkWc3AG7VAFYrFNVvqemT5DfgZJV9itYhqBHSGujA== "@types/minimatch@^3.0.4": version "3.0.5" @@ -4176,9 +4599,9 @@ integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== "@types/minimist@^1.2.0": - version "1.2.2" - resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" - integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== + version "1.2.5" + resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.5.tgz#ec10755e871497bcd83efe927e43ec46e8c0747e" + integrity sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag== "@types/mkdirp@^0.5.2": version "0.5.2" @@ -4193,17 +4616,19 @@ integrity sha512-ZvO2tAcjmMi8V/5Z3JsyofMe3hasRcaw88cto5etSVMwVQfeivGAlEYmaQgceUSVYFofVjT+ioHsATjdWcFt1w== "@types/node-fetch@^2.5.5": - version "2.6.4" - resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.4.tgz#1bc3a26de814f6bf466b25aeb1473fa1afe6a660" - integrity sha512-1ZX9fcN4Rvkvgv4E6PAY5WXUFWFcRWxZa3EW83UjycOB9ljJCedb2CupIP4RZMEwF/M3eTcCihbBRgwtGbg5Rg== + version "2.6.9" + resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.9.tgz#15f529d247f1ede1824f7e7acdaa192d5f28071e" + integrity sha512-bQVlnMLFJ2d35DkPNjEPmd9ueO/rh5EiaZt2bhqiSarPjZIuIV6bPQVqcrEyvNo+AfTrRGVazle1tl597w3gfA== dependencies: "@types/node" "*" - form-data "^3.0.0" + form-data "^4.0.0" "@types/node@*", "@types/node@>=12.12.47", "@types/node@>=13.7.0": - version "20.5.7" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.5.7.tgz#4b8ecac87fbefbc92f431d09c30e176fc0a7c377" - integrity sha512-dP7f3LdZIysZnmvP3ANJYTSwg+wLLl8p7RqniVlV7j+oXSXAbt9h0WIBFmJy5inWZoX9wZN6eXx+YXd9Rh3RBA== + version "20.9.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.9.0.tgz#bfcdc230583aeb891cf51e73cfdaacdd8deae298" + integrity sha512-nekiGu2NDb1BcVofVcEKMIwzlx4NjHlcjhoxxKBNLtz15Y1z7MYf549DFvkHSId02Ax6kGwWntIBPC3l/JZcmw== + dependencies: + undici-types "~5.26.4" "@types/node@^10.0.3": version "10.17.60" @@ -4226,19 +4651,19 @@ integrity sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw== "@types/normalize-package-data@^2.4.0", "@types/normalize-package-data@^2.4.1": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" - integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== + version "2.4.4" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz#56e2cc26c397c038fab0e3a917a12d5c5909e901" + integrity sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA== "@types/parse-json@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" - integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== + version "4.0.2" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.2.tgz#5950e50960793055845e956c427fc2b0d70c5239" + integrity sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw== "@types/pbkdf2@^3.0.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@types/pbkdf2/-/pbkdf2-3.1.0.tgz#039a0e9b67da0cdc4ee5dab865caa6b267bb66b1" - 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" "*" @@ -4253,16 +4678,16 @@ integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA== "@types/qrcode@^1.5.0": - version "1.5.1" - resolved "https://registry.yarnpkg.com/@types/qrcode/-/qrcode-1.5.1.tgz#027c2dbfbc8505e1fe2f4033daba920dbd182b44" - integrity sha512-HpSN675K0PmxIDRpjMI3Mc2GiKo3dNu+X/F5SoItiaDS1lVfgC6Wac1c5lQDfKWbTJUSHWiHKzpJpBZG7k9gaA== + version "1.5.5" + resolved "https://registry.yarnpkg.com/@types/qrcode/-/qrcode-1.5.5.tgz#993ff7c6b584277eee7aac0a20861eab682f9dac" + integrity sha512-CdfBi/e3Qk+3Z/fXYShipBT13OJ2fDO2Q2w5CIP5anLTLIndQG9z6P1cnm+8zCWSpm5dnxMFd/uREtb0EXuQzg== dependencies: "@types/node" "*" "@types/qs@^6.2.31": - version "6.9.7" - resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" - integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== + version "6.9.10" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.10.tgz#0af26845b5067e1c9a622658a51f60a3934d51e8" + integrity sha512-3Gnx08Ns1sEoCrWssEgTSJs/rsT2vhGP+Ja9cnnk9k4ALxinORlQneLXFeFKOTJMOeZUFD1s7w+w2AphTpvzZw== "@types/readable-stream@^2.3.13": version "2.3.15" @@ -4280,9 +4705,9 @@ "@types/node" "*" "@types/responselike@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" - 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" "*" @@ -4292,32 +4717,37 @@ integrity sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g== "@types/secp256k1@^4.0.1": - version "4.0.3" - resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.3.tgz#1b8e55d8e00f08ee7220b4d59a6abe89c37a901c" - integrity sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w== + 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/semver@^7.3.12": - version "7.5.1" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.1.tgz#0480eeb7221eb9bc398ad7432c9d7e14b1a5a367" - integrity sha512-cJRQXpObxfNKkFAZbJl2yjWtJCqELQIdShsogr1d2MilP8dKD9TE/nEKHkJgUNHdGKCQaf9HbIynuV2csLGVLg== + version "7.5.5" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.5.tgz#deed5ab7019756c9c90ea86139106b0346223f35" + integrity sha512-+d+WYC1BxJ6yVOgUgzK8gWvp5qF8ssV5r4nsDcZWKRWcDQLQ619tvWAxJQYGgBrO1MnLJC7a5GtiYsAoQ47dJg== "@types/triple-beam@^1.3.2": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@types/triple-beam/-/triple-beam-1.3.2.tgz#38ecb64f01aa0d02b7c8f4222d7c38af6316fef8" - integrity sha512-txGIh+0eDFzKGC25zORnswy+br1Ha7hj5cMVwKIU7+s0U2AxxJru/jZSMU6OC9MJWP6+pc/hc6ZjyZShpsyY2g== + version "1.3.5" + resolved "https://registry.yarnpkg.com/@types/triple-beam/-/triple-beam-1.3.5.tgz#74fef9ffbaa198eb8b588be029f38b00299caa2c" + integrity sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw== "@types/trusted-types@^2.0.2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.3.tgz#a136f83b0758698df454e328759dbd3d44555311" - integrity sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g== + version "2.0.6" + resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.6.tgz#d12451beaeb9c3838f12024580dc500b7e88b0ad" + integrity sha512-HYtNooPvUY9WAVRBr4u+4Qa9fYD1ze2IUlAD3HoA6oehn1taGwBx3Oa52U4mTslTS+GAExKpaFu39Y5xUEwfjg== "@types/web-bluetooth@^0.0.16": version "0.0.16" resolved "https://registry.yarnpkg.com/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz#1d12873a8e49567371f2a75fe3e7f7edca6662d8" integrity sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ== +"@types/web-bluetooth@^0.0.20": + version "0.0.20" + resolved "https://registry.yarnpkg.com/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz#f066abfcd1cbe66267cdbbf0de010d8a41b41597" + integrity sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow== + "@types/ws@^7.4.4": version "7.4.7" resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.4.7.tgz#f7c390a36f7a0679aa69de2d501319f4f8d9b702" @@ -4326,28 +4756,28 @@ "@types/node" "*" "@types/ws@^8.0.0": - version "8.5.5" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.5.tgz#af587964aa06682702ee6dcbc7be41a80e4b28eb" - integrity sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg== + version "8.5.9" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.9.tgz#384c489f99c83225a53f01ebc3eddf3b8e202a8c" + integrity sha512-jbdrY0a8lxfdTp/+r7Z4CkycbOFN8WX+IOchLJr3juT/xzbJ8URyTVSJ/hvNdadTgM1mnedb47n+Y31GsFnQlg== dependencies: "@types/node" "*" "@types/yargs-parser@*": - version "21.0.0" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" - integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== + version "21.0.3" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15" + integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== "@types/yargs@^16.0.0": - version "16.0.5" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.5.tgz#12cc86393985735a283e387936398c2f9e5f88e3" - integrity sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ== + version "16.0.8" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.8.tgz#0d57a5a491d85ae75d372a32e657b1779b86c65d" + integrity sha512-1GwLEkmFafeb/HbE6pC7tFlgYSQ4Iqh2qlWCq8xN+Qfaiaxr2PcLfuhfRFRYqI6XJyeFoLYyKnhFbNsst9FMtQ== dependencies: "@types/yargs-parser" "*" "@types/yauzl@^2.9.1": - version "2.10.0" - resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.10.0.tgz#b3248295276cf8c6f153ebe6a9aba0c988cb2599" - integrity sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw== + version "2.10.3" + resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.10.3.tgz#e9b2808b4f109504a03cda958259876f61017999" + integrity sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q== dependencies: "@types/node" "*" @@ -4440,6 +4870,11 @@ resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44" integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q== +"@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== + "@vercel/nft@^0.23.0": version "0.23.1" resolved "https://registry.yarnpkg.com/@vercel/nft/-/nft-0.23.1.tgz#f17c5f9d3f3a0178ea25eb7397a14618c00529bf" @@ -4457,78 +4892,96 @@ node-gyp-build "^4.2.2" resolve-from "^5.0.0" +"@vercel/nft@^0.24.3": + version "0.24.3" + resolved "https://registry.yarnpkg.com/@vercel/nft/-/nft-0.24.3.tgz#7a6c5b17a4ac153bd07d9d0511ccef20d1cefa66" + integrity sha512-IyBdIxmFAeGZnEfMgt4QrGK7XX4lWazlQj34HEi9dw04/WeDBJ7r1yaOIO5tTf9pbfvwUFodj9b0H+NDGGoOMg== + dependencies: + "@mapbox/node-pre-gyp" "^1.0.5" + "@rollup/pluginutils" "^4.0.0" + acorn "^8.6.0" + async-sema "^3.1.1" + bindings "^1.4.0" + estree-walker "2.0.2" + glob "^7.1.3" + graceful-fs "^4.2.9" + micromatch "^4.0.2" + node-gyp-build "^4.2.2" + resolve-from "^5.0.0" + "@vitejs/plugin-vue@3.2.0": version "3.2.0" resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-3.2.0.tgz#a1484089dd85d6528f435743f84cdd0d215bbb54" integrity sha512-E0tnaL4fr+qkdCNxJ+Xd0yM31UwMkQje76fsDVBBUCoGOUPexu2VDUYHL8P4CwV+zMvWw6nlRw19OnRKmYAJpw== -"@volar/language-core@1.10.1", "@volar/language-core@~1.10.0": - version "1.10.1" - resolved "https://registry.yarnpkg.com/@volar/language-core/-/language-core-1.10.1.tgz#76789c5b0c214eeff8add29cbff0333d89b6fc4a" - integrity sha512-JnsM1mIPdfGPxmoOcK1c7HYAsL6YOv0TCJ4aW3AXPZN/Jb4R77epDyMZIVudSGjWMbvv/JfUa+rQ+dGKTmgwBA== +"@volar/language-core@1.10.10", "@volar/language-core@~1.10.5": + version "1.10.10" + resolved "https://registry.yarnpkg.com/@volar/language-core/-/language-core-1.10.10.tgz#9c240a36dd4007b9c4f00739f6cecb81da54a49e" + integrity sha512-nsV1o3AZ5n5jaEAObrS3MWLBWaGwUj/vAsc15FVNIv+DbpizQRISg9wzygsHBr56ELRH8r4K75vkYNMtsSNNWw== dependencies: - "@volar/source-map" "1.10.1" + "@volar/source-map" "1.10.10" -"@volar/source-map@1.10.1", "@volar/source-map@~1.10.0": - version "1.10.1" - resolved "https://registry.yarnpkg.com/@volar/source-map/-/source-map-1.10.1.tgz#b806845782cc615f2beba94624ff34a700f302f5" - integrity sha512-3/S6KQbqa7pGC8CxPrg69qHLpOvkiPHGJtWPkI/1AXCsktkJ6gIk/5z4hyuMp8Anvs6eS/Kvp/GZa3ut3votKA== +"@volar/source-map@1.10.10", "@volar/source-map@~1.10.5": + version "1.10.10" + resolved "https://registry.yarnpkg.com/@volar/source-map/-/source-map-1.10.10.tgz#ec807fe60b8afe29e19bf6d1c90d2e76502df541" + integrity sha512-GVKjLnifV4voJ9F0vhP56p4+F3WGf+gXlRtjFZsv6v3WxBTWU3ZVeaRaEHJmWrcv5LXmoYYpk/SC25BKemPRkg== dependencies: muggle-string "^0.3.1" -"@volar/typescript@~1.10.0": - version "1.10.1" - resolved "https://registry.yarnpkg.com/@volar/typescript/-/typescript-1.10.1.tgz#b20341c1cc5785b4de0669ea645e1619c97a4764" - integrity sha512-+iiO9yUSRHIYjlteT+QcdRq8b44qH19/eiUZtjNtuh6D9ailYM7DVR0zO2sEgJlvCaunw/CF9Ov2KooQBpR4VQ== +"@volar/typescript@~1.10.5": + version "1.10.10" + resolved "https://registry.yarnpkg.com/@volar/typescript/-/typescript-1.10.10.tgz#1f88202c63988ddfcee154a93050312041b83329" + integrity sha512-4a2r5bdUub2m+mYVnLu2wt59fuoYWe7nf0uXtGHU8QQ5LDNfzAR0wK7NgDiQ9rcl2WT3fxT2AA9AylAwFtj50A== dependencies: - "@volar/language-core" "1.10.1" + "@volar/language-core" "1.10.10" + path-browserify "^1.0.1" -"@vue/compiler-core@3.3.4": - version "3.3.4" - resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.3.4.tgz#7fbf591c1c19e1acd28ffd284526e98b4f581128" - integrity sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g== +"@vue/compiler-core@3.3.8": + version "3.3.8" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.3.8.tgz#301bb60d0245265a88ed5b30e200fbf223acb313" + integrity sha512-hN/NNBUECw8SusQvDSqqcVv6gWq8L6iAktUR0UF3vGu2OhzRqcOiAno0FmBJWwxhYEXRlQJT5XnoKsVq1WZx4g== dependencies: - "@babel/parser" "^7.21.3" - "@vue/shared" "3.3.4" + "@babel/parser" "^7.23.0" + "@vue/shared" "3.3.8" estree-walker "^2.0.2" source-map-js "^1.0.2" -"@vue/compiler-dom@3.3.4", "@vue/compiler-dom@^3.3.0": - version "3.3.4" - resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz#f56e09b5f4d7dc350f981784de9713d823341151" - integrity sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w== - dependencies: - "@vue/compiler-core" "3.3.4" - "@vue/shared" "3.3.4" - -"@vue/compiler-sfc@3.3.4", "@vue/compiler-sfc@^3.2.45": - version "3.3.4" - resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz#b19d942c71938893535b46226d602720593001df" - integrity sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ== - dependencies: - "@babel/parser" "^7.20.15" - "@vue/compiler-core" "3.3.4" - "@vue/compiler-dom" "3.3.4" - "@vue/compiler-ssr" "3.3.4" - "@vue/reactivity-transform" "3.3.4" - "@vue/shared" "3.3.4" +"@vue/compiler-dom@3.3.8", "@vue/compiler-dom@^3.3.0": + version "3.3.8" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.3.8.tgz#09d832514b9b8d9415a3816b065d69dbefcc7e9b" + integrity sha512-+PPtv+p/nWDd0AvJu3w8HS0RIm/C6VGBIRe24b9hSyNWOAPEUosFZ5diwawwP8ip5sJ8n0Pe87TNNNHnvjs0FQ== + dependencies: + "@vue/compiler-core" "3.3.8" + "@vue/shared" "3.3.8" + +"@vue/compiler-sfc@3.3.8", "@vue/compiler-sfc@^3.2.45": + version "3.3.8" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.3.8.tgz#40b18e48aa00260950964d1d72157668521be0e1" + integrity sha512-WMzbUrlTjfYF8joyT84HfwwXo+8WPALuPxhy+BZ6R4Aafls+jDBnSz8PDz60uFhuqFbl3HxRfxvDzrUf3THwpA== + dependencies: + "@babel/parser" "^7.23.0" + "@vue/compiler-core" "3.3.8" + "@vue/compiler-dom" "3.3.8" + "@vue/compiler-ssr" "3.3.8" + "@vue/reactivity-transform" "3.3.8" + "@vue/shared" "3.3.8" estree-walker "^2.0.2" - magic-string "^0.30.0" - postcss "^8.1.10" + magic-string "^0.30.5" + postcss "^8.4.31" source-map-js "^1.0.2" -"@vue/compiler-ssr@3.3.4": - version "3.3.4" - resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz#9d1379abffa4f2b0cd844174ceec4a9721138777" - integrity sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ== +"@vue/compiler-ssr@3.3.8": + version "3.3.8" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.3.8.tgz#136eed54411e4694815d961048a237191063fbce" + integrity sha512-hXCqQL/15kMVDBuoBYpUnSYT8doDNwsjvm3jTefnXr+ytn294ySnT8NlsFHmTgKNjwpuFy7XVV8yTeLtNl/P6w== dependencies: - "@vue/compiler-dom" "3.3.4" - "@vue/shared" "3.3.4" + "@vue/compiler-dom" "3.3.8" + "@vue/shared" "3.3.8" -"@vue/devtools-api@^6.2.1", "@vue/devtools-api@^6.5.0": - version "6.5.0" - resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.5.0.tgz#98b99425edee70b4c992692628fa1ea2c1e57d07" - integrity sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q== +"@vue/devtools-api@^6.5.0": + version "6.5.1" + resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.5.1.tgz#7f71f31e40973eeee65b9a64382b13593fdbd697" + integrity sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA== "@vue/eslint-config-prettier@^7.0.0": version "7.1.0" @@ -4547,81 +5000,73 @@ "@typescript-eslint/parser" "^5.59.1" vue-eslint-parser "^9.1.1" -"@vue/language-core@1.8.8": - version "1.8.8" - resolved "https://registry.yarnpkg.com/@vue/language-core/-/language-core-1.8.8.tgz#5a8aa8363f4dfacdfcd7808a9926744d7c310ae6" - integrity sha512-i4KMTuPazf48yMdYoebTkgSOJdFraE4pQf0B+FTOFkbB+6hAfjrSou/UmYWRsWyZV6r4Rc6DDZdI39CJwL0rWw== +"@vue/language-core@1.8.22": + version "1.8.22" + resolved "https://registry.yarnpkg.com/@vue/language-core/-/language-core-1.8.22.tgz#1ef62645fb9b1f830c6c84a5586e49e74727b1e3" + integrity sha512-bsMoJzCrXZqGsxawtUea1cLjUT9dZnDsy5TuZ+l1fxRMzUGQUG9+Ypq4w//CqpWmrx7nIAJpw2JVF/t258miRw== dependencies: - "@volar/language-core" "~1.10.0" - "@volar/source-map" "~1.10.0" + "@volar/language-core" "~1.10.5" + "@volar/source-map" "~1.10.5" "@vue/compiler-dom" "^3.3.0" - "@vue/reactivity" "^3.3.0" "@vue/shared" "^3.3.0" - minimatch "^9.0.0" + computeds "^0.0.1" + minimatch "^9.0.3" muggle-string "^0.3.1" vue-template-compiler "^2.7.14" -"@vue/reactivity-transform@3.3.4": - version "3.3.4" - resolved "https://registry.yarnpkg.com/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz#52908476e34d6a65c6c21cd2722d41ed8ae51929" - integrity sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw== +"@vue/reactivity-transform@3.3.8": + version "3.3.8" + resolved "https://registry.yarnpkg.com/@vue/reactivity-transform/-/reactivity-transform-3.3.8.tgz#6d07649013b0be5c670f0ab6cc7ddd3150ad03f2" + integrity sha512-49CvBzmZNtcHua0XJ7GdGifM8GOXoUMOX4dD40Y5DxI3R8OUhMlvf2nvgUAcPxaXiV5MQQ1Nwy09ADpnLQUqRw== dependencies: - "@babel/parser" "^7.20.15" - "@vue/compiler-core" "3.3.4" - "@vue/shared" "3.3.4" + "@babel/parser" "^7.23.0" + "@vue/compiler-core" "3.3.8" + "@vue/shared" "3.3.8" estree-walker "^2.0.2" - magic-string "^0.30.0" + magic-string "^0.30.5" -"@vue/reactivity@3.3.4", "@vue/reactivity@^3.3.0": - version "3.3.4" - resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.3.4.tgz#a27a29c6cd17faba5a0e99fbb86ee951653e2253" - integrity sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ== +"@vue/reactivity@3.3.8": + version "3.3.8" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.3.8.tgz#cce8a03a3fd3539c3eeda53e277ba365d160dd4d" + integrity sha512-ctLWitmFBu6mtddPyOKpHg8+5ahouoTCRtmAHZAXmolDtuZXfjL2T3OJ6DL6ezBPQB1SmMnpzjiWjCiMYmpIuw== dependencies: - "@vue/shared" "3.3.4" + "@vue/shared" "3.3.8" -"@vue/runtime-core@3.3.4": - version "3.3.4" - resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.3.4.tgz#4bb33872bbb583721b340f3088888394195967d1" - integrity sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA== +"@vue/runtime-core@3.3.8": + version "3.3.8" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.3.8.tgz#fba5a632cbf2b5d29e171489570149cb6975dcdb" + integrity sha512-qurzOlb6q26KWQ/8IShHkMDOuJkQnQcTIp1sdP4I9MbCf9FJeGVRXJFr2mF+6bXh/3Zjr9TDgURXrsCr9bfjUw== dependencies: - "@vue/reactivity" "3.3.4" - "@vue/shared" "3.3.4" + "@vue/reactivity" "3.3.8" + "@vue/shared" "3.3.8" -"@vue/runtime-dom@3.3.4": - version "3.3.4" - resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz#992f2579d0ed6ce961f47bbe9bfe4b6791251566" - integrity sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ== +"@vue/runtime-dom@3.3.8": + version "3.3.8" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.3.8.tgz#e2d7aa795cf50914dda9a951887765a594b38af4" + integrity sha512-Noy5yM5UIf9UeFoowBVgghyGGPIDPy1Qlqt0yVsUdAVbqI8eeMSsTqBtauaEoT2UFXUk5S64aWVNJN4MJ2vRdA== dependencies: - "@vue/runtime-core" "3.3.4" - "@vue/shared" "3.3.4" - csstype "^3.1.1" + "@vue/runtime-core" "3.3.8" + "@vue/shared" "3.3.8" + csstype "^3.1.2" -"@vue/server-renderer@3.3.4": - version "3.3.4" - resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.3.4.tgz#ea46594b795d1536f29bc592dd0f6655f7ea4c4c" - integrity sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ== +"@vue/server-renderer@3.3.8": + version "3.3.8" + resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.3.8.tgz#9b1779010e75783edeed8fcfb97d9c95fc3ac5d2" + integrity sha512-zVCUw7RFskvPuNlPn/8xISbrf0zTWsTSdYTsUTN1ERGGZGVnRxM2QZ3x1OR32+vwkkCm0IW6HmJ49IsPm7ilLg== dependencies: - "@vue/compiler-ssr" "3.3.4" - "@vue/shared" "3.3.4" + "@vue/compiler-ssr" "3.3.8" + "@vue/shared" "3.3.8" -"@vue/shared@3.3.4", "@vue/shared@^3.3.0": - version "3.3.4" - resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.3.4.tgz#06e83c5027f464eef861c329be81454bc8b70780" - integrity sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ== +"@vue/shared@3.3.8", "@vue/shared@^3.3.0": + version "3.3.8" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.3.8.tgz#f044942142e1d3a395f24132e6203a784838542d" + integrity sha512-8PGwybFwM4x8pcfgqEQFy70NaQxASvOC5DJwLQfpArw1UDfUXrJkdxD3BhVTMS+0Lef/TU7YO0Jvr0jJY8T+mw== "@vue/tsconfig@^0.1.3": version "0.1.3" resolved "https://registry.yarnpkg.com/@vue/tsconfig/-/tsconfig-0.1.3.tgz#4a61dbd29783d01ddab504276dcf0c2b6988654f" integrity sha512-kQVsh8yyWPvHpb8gIc9l/HIDiiVUy1amynLNpCy8p+FoCiZXCo6fQos5/097MmnNZc9AtseDsCrfkhqCrJ8Olg== -"@vue/typescript@1.8.8": - version "1.8.8" - resolved "https://registry.yarnpkg.com/@vue/typescript/-/typescript-1.8.8.tgz#8efb375d448862134492a044f4e96afada547500" - integrity sha512-jUnmMB6egu5wl342eaUH236v8tdcEPXXkPgj+eI/F6JwW/lb+yAU6U07ZbQ3MVabZRlupIlPESB7ajgAGixhow== - dependencies: - "@volar/typescript" "~1.10.0" - "@vue/language-core" "1.8.8" - "@vuelidate/core@^2.0.0": version "2.0.3" resolved "https://registry.yarnpkg.com/@vuelidate/core/-/core-2.0.3.tgz#40468c5ed15b72bde880a026b0699c2f0f1ecede" @@ -4636,7 +5081,17 @@ dependencies: vue-demi "^0.13.11" -"@vueuse/core@9.13.0", "@vueuse/core@^9.13.0", "@vueuse/core@^9.6.0": +"@vueuse/core@10.6.1", "@vueuse/core@^10.5.0": + version "10.6.1" + resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-10.6.1.tgz#5b16d8238054c6983b6cb7cd77a78035f098dd89" + integrity sha512-Pc26IJbqgC9VG1u6VY/xrXXfxD33hnvxBnKrLlA2LJlyHII+BSrRoTPJgGYq7qZOu61itITFUnm6QbacwZ4H8Q== + dependencies: + "@types/web-bluetooth" "^0.0.20" + "@vueuse/metadata" "10.6.1" + "@vueuse/shared" "10.6.1" + vue-demi ">=0.14.6" + +"@vueuse/core@^9.6.0": version "9.13.0" resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-9.13.0.tgz#2f69e66d1905c1e4eebc249a01759cf88ea00cf4" integrity sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw== @@ -4646,20 +5101,32 @@ "@vueuse/shared" "9.13.0" vue-demi "*" -"@vueuse/integrations@^9.13.0": - version "9.13.0" - resolved "https://registry.yarnpkg.com/@vueuse/integrations/-/integrations-9.13.0.tgz#a086459ab19b5bf98546d4f455c102dcf38a5cef" - integrity sha512-I1kX/tsfcvWWLZD7HZaP0LsSfchK13YxReLfharXhk72SFXp87doLbRaTfIF5w8m/gr/vPtcNyQPAXW7Ubpuww== +"@vueuse/integrations@^10.5.0": + version "10.6.1" + resolved "https://registry.yarnpkg.com/@vueuse/integrations/-/integrations-10.6.1.tgz#8358ced20d1a976422693ae3711ad29b70948504" + integrity sha512-mPDupuofMJ4DPmtX/FfP1MajmWRzYDv8WSaTCo8LQ5kFznjWgmUQ16ApjYqgMquqffNY6+IRMdMgosLDRZOSZA== dependencies: - "@vueuse/core" "9.13.0" - "@vueuse/shared" "9.13.0" - vue-demi "*" + "@vueuse/core" "10.6.1" + "@vueuse/shared" "10.6.1" + vue-demi ">=0.14.6" + +"@vueuse/metadata@10.6.1": + version "10.6.1" + resolved "https://registry.yarnpkg.com/@vueuse/metadata/-/metadata-10.6.1.tgz#100faa0ced3c0ab4c014fb8e66e781e85e4eb88d" + integrity sha512-qhdwPI65Bgcj23e5lpGfQsxcy0bMjCAsUGoXkJ7DsoeDUdasbZ2DBa4dinFCOER3lF4gwUv+UD2AlA11zdzMFw== "@vueuse/metadata@9.13.0": version "9.13.0" resolved "https://registry.yarnpkg.com/@vueuse/metadata/-/metadata-9.13.0.tgz#bc25a6cdad1b1a93c36ce30191124da6520539ff" integrity sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ== +"@vueuse/shared@10.6.1": + version "10.6.1" + resolved "https://registry.yarnpkg.com/@vueuse/shared/-/shared-10.6.1.tgz#1d9fc1e3f9083e45b59a693fc372bc50ad62a9e4" + integrity sha512-TECVDTIedFlL0NUfHWncf3zF9Gc4VfdxfQc8JFwoVZQmxpONhLxFrlm0eHQeidHj4rdTPL3KXJa0TZCk1wnc5Q== + dependencies: + vue-demi ">=0.14.6" + "@vueuse/shared@9.13.0": version "9.13.0" resolved "https://registry.yarnpkg.com/@vueuse/shared/-/shared-9.13.0.tgz#089ff4cc4e2e7a4015e57a8f32e4b39d096353b9" @@ -4667,10 +5134,10 @@ dependencies: vue-demi "*" -"@walletconnect/core@2.10.0": - version "2.10.0" - resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-2.10.0.tgz#b659de4dfb374becd938964abd4f2150d410e617" - integrity sha512-Z8pdorfIMueuiBXLdnf7yloiO9JIiobuxN3j0OTal+MYc4q5/2O7d+jdD1DAXbLi1taJx3x60UXT/FPVkjIqIQ== +"@walletconnect/core@2.10.4": + version "2.10.4" + resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-2.10.4.tgz#da9396b56f63806c165389cbf98d2373d36854df" + integrity sha512-MGdw5a4dIlQFPxVHEw2neIpHPAw3gtrsJYyUqm6rI+1c1SfmZyOPCaYTr6zPU2cnoWQUjv2ePMLeO/JKy3Yh5g== dependencies: "@walletconnect/heartbeat" "1.2.1" "@walletconnect/jsonrpc-provider" "1.0.13" @@ -4683,8 +5150,8 @@ "@walletconnect/relay-auth" "^1.0.4" "@walletconnect/safe-json" "^1.0.2" "@walletconnect/time" "^1.0.2" - "@walletconnect/types" "2.10.0" - "@walletconnect/utils" "2.10.0" + "@walletconnect/types" "2.10.4" + "@walletconnect/utils" "2.10.4" events "^3.3.0" lodash.isequal "4.5.0" uint8arrays "^3.1.0" @@ -4697,18 +5164,18 @@ tslib "1.14.1" "@walletconnect/ethereum-provider@^2.9.0": - version "2.10.0" - resolved "https://registry.yarnpkg.com/@walletconnect/ethereum-provider/-/ethereum-provider-2.10.0.tgz#eebde38674222a48be35bb4aa3f6a74247ba059b" - integrity sha512-NyTm7RcrtAiSaYQPh6G4sOtr1kg/pL5Z3EDE6rBTV3Se5pMsYvtuwMiSol7MidsQpf4ux9HFhthTO3imcoWImw== + version "2.10.4" + resolved "https://registry.yarnpkg.com/@walletconnect/ethereum-provider/-/ethereum-provider-2.10.4.tgz#6123c4418ab8ff2a787ea6b70d40493dace992d6" + integrity sha512-t8Utp3GOk4p1X//tRgLDdTh/+nmb5SwvmrMpfHzcDvYjetqtTWfZcXt2xj7DOsnvwaxi8MPf+0FqlTiZnrnNWQ== dependencies: "@walletconnect/jsonrpc-http-connection" "^1.0.7" "@walletconnect/jsonrpc-provider" "^1.0.13" "@walletconnect/jsonrpc-types" "^1.0.3" "@walletconnect/jsonrpc-utils" "^1.0.8" - "@walletconnect/sign-client" "2.10.0" - "@walletconnect/types" "2.10.0" - "@walletconnect/universal-provider" "2.10.0" - "@walletconnect/utils" "2.10.0" + "@walletconnect/sign-client" "2.10.4" + "@walletconnect/types" "2.10.4" + "@walletconnect/universal-provider" "2.10.4" + "@walletconnect/utils" "2.10.4" events "^3.3.0" "@walletconnect/events@^1.0.1": @@ -4776,12 +5243,13 @@ ws "^7.5.1" "@walletconnect/keyvaluestorage@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@walletconnect/keyvaluestorage/-/keyvaluestorage-1.0.2.tgz#92f5ca0f54c1a88a093778842ce0c874d86369c8" - integrity sha512-U/nNG+VLWoPFdwwKx0oliT4ziKQCEoQ27L5Hhw8YOFGA2Po9A9pULUYNWhDgHkrb0gYDNt//X7wABcEWWBd3FQ== + version "1.1.0" + resolved "https://registry.yarnpkg.com/@walletconnect/keyvaluestorage/-/keyvaluestorage-1.1.0.tgz#782ad09af71e5241147fd7479f8814bd8ab8bb38" + integrity sha512-CjDBs1WmLGstYRoxWx9oAskTKj1deu7gvPycxZo2jYMa85hAYe762AITKWW1i2OJ8y9+5WJTGDAy3inVl8pjtw== dependencies: - safe-json-utils "^1.1.1" - tslib "1.14.1" + "@walletconnect/safe-json" "^1.0.1" + idb-keyval "^6.2.1" + unstorage "^1.9.0" "@walletconnect/logger@^2.0.1": version "2.0.1" @@ -4791,30 +5259,30 @@ pino "7.11.0" tslib "1.14.1" -"@walletconnect/modal-core@2.6.1": - version "2.6.1" - resolved "https://registry.yarnpkg.com/@walletconnect/modal-core/-/modal-core-2.6.1.tgz#bc76055d0b644a2d4b98024324825c108a700905" - integrity sha512-f2hYlJ5pwzGvjyaZ6BoGR5uiMgXzWXt6w6ktt1N8lmY6PiYp8whZgqx2hTxVWwVlsGnaIfh6UHp1hGnANx0eTQ== +"@walletconnect/modal-core@2.6.2": + version "2.6.2" + resolved "https://registry.yarnpkg.com/@walletconnect/modal-core/-/modal-core-2.6.2.tgz#d73e45d96668764e0c8668ea07a45bb8b81119e9" + integrity sha512-cv8ibvdOJQv2B+nyxP9IIFdxvQznMz8OOr/oR/AaUZym4hjXNL/l1a2UlSQBXrVjo3xxbouMxLb3kBsHoYP2CA== dependencies: - valtio "1.11.0" + valtio "1.11.2" -"@walletconnect/modal-ui@2.6.1": - version "2.6.1" - resolved "https://registry.yarnpkg.com/@walletconnect/modal-ui/-/modal-ui-2.6.1.tgz#200c54c8dfe3c71321abb2724e18bb357dfd6371" - integrity sha512-RFUOwDAMijSK8B7W3+KoLKaa1l+KEUG0LCrtHqaB0H0cLnhEGdLR+kdTdygw+W8+yYZbkM5tXBm7MlFbcuyitA== +"@walletconnect/modal-ui@2.6.2": + version "2.6.2" + resolved "https://registry.yarnpkg.com/@walletconnect/modal-ui/-/modal-ui-2.6.2.tgz#fa57c087c57b7f76aaae93deab0f84bb68b59cf9" + integrity sha512-rbdstM1HPGvr7jprQkyPggX7rP4XiCG85ZA+zWBEX0dVQg8PpAgRUqpeub4xQKDgY7pY/xLRXSiCVdWGqvG2HA== dependencies: - "@walletconnect/modal-core" "2.6.1" - lit "2.7.6" + "@walletconnect/modal-core" "2.6.2" + lit "2.8.0" motion "10.16.2" qrcode "1.5.3" "@walletconnect/modal@^2.6.0": - version "2.6.1" - resolved "https://registry.yarnpkg.com/@walletconnect/modal/-/modal-2.6.1.tgz#066fdbfcff83b58c8a9da66ab4af0eb93e3626de" - integrity sha512-G84tSzdPKAFk1zimgV7JzIUFT5olZUVtI3GcOk77OeLYjlMfnDT23RVRHm5EyCrjkptnvpD0wQScXePOFd2Xcw== + version "2.6.2" + resolved "https://registry.yarnpkg.com/@walletconnect/modal/-/modal-2.6.2.tgz#4b534a836f5039eeb3268b80be7217a94dd12651" + integrity sha512-eFopgKi8AjKf/0U4SemvcYw9zlLpx9njVN8sf6DAkowC2Md0gPU/UNEbH1Wwj407pEKnEds98pKWib1NN1ACoA== dependencies: - "@walletconnect/modal-core" "2.6.1" - "@walletconnect/modal-ui" "2.6.1" + "@walletconnect/modal-core" "2.6.2" + "@walletconnect/modal-ui" "2.6.2" "@walletconnect/relay-api@^1.0.9": version "1.0.9" @@ -4843,19 +5311,19 @@ dependencies: tslib "1.14.1" -"@walletconnect/sign-client@2.10.0": - version "2.10.0" - resolved "https://registry.yarnpkg.com/@walletconnect/sign-client/-/sign-client-2.10.0.tgz#0fee8f12821e37783099f0c7bd64e6efdfbd9d86" - integrity sha512-hbDljDS53kR/It3oXD91UkcOsT6diNnW5+Zzksm0YEfwww5dop/YfNlcdnc8+jKUhWOL/YDPNQCjzsCSNlVzbw== +"@walletconnect/sign-client@2.10.4": + version "2.10.4" + resolved "https://registry.yarnpkg.com/@walletconnect/sign-client/-/sign-client-2.10.4.tgz#4e3b14ebe900472874f4cae5f53c74a6077c85da" + integrity sha512-C5VHkK59/DQNrJS91UXLn5OSr0drXHkKjajhl2a9hb3h6kxuSdlWbyC0yRPKT1sD0fQho8+EWZHBiV063yBePw== dependencies: - "@walletconnect/core" "2.10.0" + "@walletconnect/core" "2.10.4" "@walletconnect/events" "^1.0.1" "@walletconnect/heartbeat" "1.2.1" "@walletconnect/jsonrpc-utils" "1.0.8" "@walletconnect/logger" "^2.0.1" "@walletconnect/time" "^1.0.2" - "@walletconnect/types" "2.10.0" - "@walletconnect/utils" "2.10.0" + "@walletconnect/types" "2.10.4" + "@walletconnect/utils" "2.10.4" events "^3.3.0" "@walletconnect/time@^1.0.2": @@ -4865,10 +5333,10 @@ dependencies: tslib "1.14.1" -"@walletconnect/types@2.10.0": - version "2.10.0" - resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-2.10.0.tgz#5d63235b49e03d609521402a4b49627dbc4ed514" - integrity sha512-kSTA/WZnbKdEbvbXSW16Ty6dOSzOZCHnGg6JH7q1MuraalD2HuNg00lVVu7QAZ/Rj1Gn9DAkrgP5Wd5a8Xq//Q== +"@walletconnect/types@2.10.4": + version "2.10.4" + resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-2.10.4.tgz#23f6e4bd785671812dc6ea96848a6bd7ea78f038" + integrity sha512-eQpOElyiwJp3tepuOS3TS9dXTl9jVVlrC3iVA8bytnbLagkAUxmiv/s7PyDFx+ndXwQVh8PFBkWg1oxGwgCSBA== dependencies: "@walletconnect/events" "^1.0.1" "@walletconnect/heartbeat" "1.2.1" @@ -4877,25 +5345,25 @@ "@walletconnect/logger" "^2.0.1" events "^3.3.0" -"@walletconnect/universal-provider@2.10.0": - version "2.10.0" - resolved "https://registry.yarnpkg.com/@walletconnect/universal-provider/-/universal-provider-2.10.0.tgz#565d6478dcb5cc66955e5f03d6a00f51c9bcac14" - integrity sha512-jtVWf+AeTCqBcB3lCmWkv3bvSmdRCkQdo67GNoT5y6/pvVHMxfjgrJNBOUsWQMxpREpWDpZ993X0JRjsYVsMcA== +"@walletconnect/universal-provider@2.10.4": + version "2.10.4" + resolved "https://registry.yarnpkg.com/@walletconnect/universal-provider/-/universal-provider-2.10.4.tgz#601604d11320531594dab928ef2af88b19dda74c" + integrity sha512-f9uhRQX9iExoMz1V4JT13OpqvpoJYhE9GLvuwNWposhDS35vVKfQfmPxQCcsdw7IpMr+UdpA8K2ShPh8g9wT4g== dependencies: "@walletconnect/jsonrpc-http-connection" "^1.0.7" "@walletconnect/jsonrpc-provider" "1.0.13" "@walletconnect/jsonrpc-types" "^1.0.2" "@walletconnect/jsonrpc-utils" "^1.0.7" "@walletconnect/logger" "^2.0.1" - "@walletconnect/sign-client" "2.10.0" - "@walletconnect/types" "2.10.0" - "@walletconnect/utils" "2.10.0" + "@walletconnect/sign-client" "2.10.4" + "@walletconnect/types" "2.10.4" + "@walletconnect/utils" "2.10.4" events "^3.3.0" -"@walletconnect/utils@2.10.0": - version "2.10.0" - resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-2.10.0.tgz#6918d12180d797b8bd4a19fb2ff128e394e181d6" - integrity sha512-9GRyEz/7CJW+G04RvrjPET5k7hOEsB9b3fF9cWDk/iDCxSWpbkU/hv/urRB36C+gvQMAZgIZYX3dHfzJWkY/2g== +"@walletconnect/utils@2.10.4": + version "2.10.4" + resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-2.10.4.tgz#5f17938e7ea481541ec2dbae0df5cd494c72523f" + integrity sha512-XbrKgnQ0hC9DC9wjFb468MEYMoJxnCVmOj2gi01DA4FSr8fJi7wwNRUnlnZzLWrUWrHuaPReYe4PgBAgIv363g== dependencies: "@stablelib/chacha20poly1305" "1.0.1" "@stablelib/hkdf" "1.0.1" @@ -4905,7 +5373,7 @@ "@walletconnect/relay-api" "^1.0.9" "@walletconnect/safe-json" "^1.0.2" "@walletconnect/time" "^1.0.2" - "@walletconnect/types" "2.10.0" + "@walletconnect/types" "2.10.4" "@walletconnect/window-getters" "^1.0.1" "@walletconnect/window-metadata" "^1.0.1" detect-browser "5.3.0" @@ -5169,9 +5637,9 @@ acorn-jsx@^5.2.0, acorn-jsx@^5.3.2: integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== acorn-walk@^8.0.2, acorn-walk@^8.1.1, acorn-walk@^8.2.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" - integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== + version "8.3.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.0.tgz#2097665af50fd0cf7a2dfccd2b9368964e66540f" + integrity sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA== acorn@^7.1.1, acorn@^7.4.1: version "7.4.1" @@ -5179,9 +5647,9 @@ acorn@^7.1.1, acorn@^7.4.1: integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== acorn@^8.1.0, acorn@^8.10.0, acorn@^8.4.1, acorn@^8.6.0, acorn@^8.8.1, acorn@^8.9.0: - version "8.10.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" - integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== + version "8.11.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.2.tgz#ca0d78b51895be5390a5903c5b3bdcdaf78ae40b" + integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w== adm-zip@^0.4.16: version "0.4.16" @@ -5394,9 +5862,9 @@ ansicolors@~0.3.2: integrity sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg== antlr4@^4.11.0: - version "4.13.0" - resolved "https://registry.yarnpkg.com/antlr4/-/antlr4-4.13.0.tgz#25c0b17f0d9216de114303d38bafd6f181d5447f" - integrity sha512-zooUbt+UscjnWyOrsuY/tVFL4rwrAGwOivpQmvmUDE22hy/lUA467Rc1rcixyRwcRUIXFYBwv7+dClDSHdmmew== + version "4.13.1" + 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" @@ -5426,7 +5894,7 @@ any-signal@^3.0.0: resolved "https://registry.yarnpkg.com/any-signal/-/any-signal-3.0.1.tgz#49cae34368187a3472e31de28fb5cb1430caa9a6" integrity sha512-xgZgJtKEa9YmDqXodIgl7Fl1C8yNXr8w6gXjqK3LW4GcEiYT+6AQfJSE/8SPsEpLLmcvbv8YU+qet94UewHxqg== -anymatch@~3.1.1, anymatch@~3.1.2: +anymatch@^3.1.3, anymatch@~3.1.1, anymatch@~3.1.2: version "3.1.3" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== @@ -5452,34 +5920,35 @@ app-module-path@^2.2.0: resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== -archiver-utils@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-2.1.0.tgz#e8a460e94b693c3e3da182a098ca6285ba9249e2" - integrity sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw== +arch@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/arch/-/arch-2.2.0.tgz#1bc47818f305764f23ab3306b0bfc086c5a29d11" + integrity sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ== + +archiver-utils@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-4.0.1.tgz#66ad15256e69589a77f706c90c6dbcc1b2775d2a" + integrity sha512-Q4Q99idbvzmgCTEAAhi32BkOyq8iVI5EwdO0PmBDSGIzzjYNdcFn7Q7k3OzbLy4kLUPXfJtG6fO2RjftXbobBg== dependencies: - glob "^7.1.4" + glob "^8.0.0" graceful-fs "^4.2.0" lazystream "^1.0.0" - lodash.defaults "^4.2.0" - lodash.difference "^4.5.0" - lodash.flatten "^4.4.0" - lodash.isplainobject "^4.0.6" - lodash.union "^4.6.0" + lodash "^4.17.15" normalize-path "^3.0.0" - readable-stream "^2.0.0" + readable-stream "^3.6.0" -archiver@^5.3.0: - version "5.3.2" - resolved "https://registry.yarnpkg.com/archiver/-/archiver-5.3.2.tgz#99991d5957e53bd0303a392979276ac4ddccf3b0" - integrity sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw== +archiver@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/archiver/-/archiver-6.0.1.tgz#d56968d4c09df309435adb5a1bbfc370dae48133" + integrity sha512-CXGy4poOLBKptiZH//VlWdFuUC1RESbdZjGjILwBuZ73P7WkAUN0htfSfBq/7k6FRFlpu7bg4JOkj1vU9G6jcQ== dependencies: - archiver-utils "^2.1.0" + archiver-utils "^4.0.1" async "^3.2.4" buffer-crc32 "^0.2.1" readable-stream "^3.6.0" readdir-glob "^1.1.2" - tar-stream "^2.2.0" - zip-stream "^4.1.0" + tar-stream "^3.0.0" + zip-stream "^5.0.1" archy@^1.0.0: version "1.0.0" @@ -5573,25 +6042,26 @@ array-unique@^0.3.2: resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" integrity sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ== -array.prototype.reduce@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/array.prototype.reduce/-/array.prototype.reduce-1.0.5.tgz#6b20b0daa9d9734dd6bc7ea66b5bbce395471eac" - integrity sha512-kDdugMl7id9COE8R7MHF5jWk7Dqt/fs4Pv+JXoICnYwqpjjjbUurz6w5fT5IG6brLdJhv6/VoHB0H7oyIBXd+Q== +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" + integrity sha512-UW+Mz8LG/sPSU8jRDCjVr6J/ZKAGpHfwrZ6kWTG5qCxIEiXdVshqGnu5vEZA8S1y6X4aCSbQZ0/EEsfvEvBiSg== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + 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.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.1.tgz#9b5ea3868a6eebc30273da577eb888381c0044bb" - integrity sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw== +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" 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" @@ -5681,14 +6151,15 @@ assert-plus@1.0.0, assert-plus@^1.0.0: integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== assert@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/assert/-/assert-2.0.0.tgz#95fc1c616d48713510680f2eaf2d10dd22e02d32" - integrity sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A== + version "2.1.0" + resolved "https://registry.yarnpkg.com/assert/-/assert-2.1.0.tgz#6d92a238d05dc02e7427c881fb8be81c8448b2dd" + integrity sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw== dependencies: - es6-object-assign "^1.1.0" - is-nan "^1.2.1" - object-is "^1.0.1" - util "^0.12.0" + call-bind "^1.0.2" + is-nan "^1.3.2" + object-is "^1.1.5" + object.assign "^4.1.4" + util "^0.12.5" assertion-error@^1.1.0: version "1.1.0" @@ -5757,9 +6228,9 @@ async@^2.0.1, async@^2.1.2, async@^2.4.0, async@^2.5.0, async@^2.6.1, async@^2.6 lodash "^4.17.14" async@^3.2.3, async@^3.2.4: - version "3.2.4" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" - integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== + version "3.2.5" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.5.tgz#ebd52a8fdaf7a2289a24df399f8d8485c8a46b66" + integrity sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg== asynckit@^0.4.0: version "0.4.0" @@ -5787,13 +6258,13 @@ auto-bind@~4.0.0: integrity sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ== autoprefixer@^10.4.13: - version "10.4.15" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.15.tgz#a1230f4aeb3636b89120b34a1f513e2f6834d530" - integrity sha512-KCuPB8ZCIqFdA4HwKXsvz7j6gvSDNhDP7WnUjBleRkKjPdvCmHFuQ77ocavI8FT6NdvlBnE2UFr2H4Mycn8Vew== + version "10.4.16" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.16.tgz#fad1411024d8670880bdece3970aa72e3572feb8" + integrity sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ== dependencies: browserslist "^4.21.10" - caniuse-lite "^1.0.30001520" - fraction.js "^4.2.0" + caniuse-lite "^1.0.30001538" + fraction.js "^4.3.6" normalize-range "^0.1.2" picocolors "^1.0.0" postcss-value-parser "^4.2.0" @@ -5830,9 +6301,9 @@ axios@^0.21.1, axios@^0.21.2, axios@^0.21.4: follow-redirects "^1.14.0" axios@^1.1.3: - version "1.5.0" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.5.0.tgz#f02e4af823e2e46a9768cfc74691fdd0517ea267" - integrity sha512-D4DdjDo5CY50Qms0qGQTTw6Q44jl7zRwY7bthds06pUGfChBCTcQs+N743eFWGEd6pRTMd6A+I87aWyFV5wiZQ== + version "1.6.2" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.2.tgz#de67d42c755b571d3e698df1b6504cde9b0ee9f2" + integrity sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A== dependencies: follow-redirects "^1.15.0" form-data "^4.0.0" @@ -6483,13 +6954,14 @@ better-opn@3.0.2: open "^8.0.4" bfj@^7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/bfj/-/bfj-7.0.2.tgz#1988ce76f3add9ac2913fd8ba47aad9e651bfbb2" - integrity sha512-+e/UqUzwmzJamNF50tBV6tZPTORow7gQ96iFow+8b562OdMpEK0BcJEq2OSPEDmAbSMBQ7PKZ87ubFkgxpYWgw== + version "7.1.0" + resolved "https://registry.yarnpkg.com/bfj/-/bfj-7.1.0.tgz#c5177d522103f9040e1b12980fe8c38cf41d3f8b" + integrity sha512-I6MMLkn+anzNdCUp9hMRyui1HaNEUCco50lxbvNS4+EyXg8lN3nJ48PjPWtbH8UVS9CuMoaKE9U2V3l29DaRQw== dependencies: - bluebird "^3.5.5" - check-types "^11.1.1" + bluebird "^3.7.2" + check-types "^11.2.3" hoopy "^0.1.4" + jsonpath "^1.1.1" tryer "^1.0.1" big-integer@^1.6.42, big-integer@^1.6.48: @@ -6562,7 +7034,7 @@ bl@^1.0.0: readable-stream "^2.3.5" safe-buffer "^5.1.1" -bl@^4.0.0, bl@^4.0.3, bl@^4.1.0: +bl@^4.0.0, bl@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== @@ -6626,7 +7098,7 @@ blob-to-it@^1.0.1: dependencies: browser-readablestream-to-it "^1.0.3" -bluebird@^3.5.0, bluebird@^3.5.2, bluebird@^3.5.5: +bluebird@^3.5.0, bluebird@^3.5.2, bluebird@^3.7.2: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== @@ -6646,7 +7118,7 @@ bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.10.0, bn.js@^4.11.0, bn.js@^4.11.6, bn.js@^ resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== -bn.js@^5.0.0, bn.js@^5.1.1, bn.js@^5.1.2, bn.js@^5.2.0, bn.js@^5.2.1: +bn.js@^5.0.0, bn.js@^5.1.2, bn.js@^5.2.0, bn.js@^5.2.1: version "5.2.1" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== @@ -6820,7 +7292,7 @@ browserify-des@^1.0.0: inherits "^2.0.1" safe-buffer "^5.1.2" -browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: +browserify-rsa@^4.0.0, browserify-rsa@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== @@ -6829,19 +7301,19 @@ browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: randombytes "^2.0.1" browserify-sign@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" - integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== + version "4.2.2" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.2.tgz#e78d4b69816d6e3dd1c747e64e9947f9ad79bc7e" + integrity sha512-1rudGyeYY42Dk6texmv7c4VcQ0EsvVbLwZkA+AQB7SxvXxmcD93jcHie8bzecJ+ChDlmAm2Qyu0+Ccg5uhZXCg== dependencies: - bn.js "^5.1.1" - browserify-rsa "^4.0.1" + bn.js "^5.2.1" + browserify-rsa "^4.1.0" create-hash "^1.2.0" create-hmac "^1.1.7" - elliptic "^6.5.3" + elliptic "^6.5.4" inherits "^2.0.4" - parse-asn1 "^5.1.5" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" + parse-asn1 "^5.1.6" + readable-stream "^3.6.2" + safe-buffer "^5.2.1" browserify-zlib@^0.2.0: version "0.2.0" @@ -6859,14 +7331,14 @@ browserslist@^3.2.6: electron-to-chromium "^1.3.47" browserslist@^4.21.10, browserslist@^4.21.9: - version "4.21.10" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.10.tgz#dbbac576628c13d3b2231332cb2ec5a46e015bb0" - integrity sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ== + version "4.22.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.1.tgz#ba91958d1a59b87dab6fed8dfbcb3da5e2e9c619" + integrity sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ== dependencies: - caniuse-lite "^1.0.30001517" - electron-to-chromium "^1.4.477" + caniuse-lite "^1.0.30001541" + electron-to-chromium "^1.4.535" node-releases "^2.0.13" - update-browserslist-db "^1.0.11" + update-browserslist-db "^1.0.13" bs58@^4.0.0: version "4.0.1" @@ -6904,7 +7376,7 @@ buffer-alloc@^1.2.0: buffer-alloc-unsafe "^1.1.0" buffer-fill "^1.0.0" -buffer-crc32@^0.2.1, buffer-crc32@^0.2.13, buffer-crc32@~0.2.3: +buffer-crc32@^0.2.1, buffer-crc32@~0.2.3: version "0.2.13" resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== @@ -6959,16 +7431,16 @@ buffer@^5.0.5, buffer@^5.2.1, buffer@^5.4.2, buffer@^5.4.3, buffer@^5.5.0, buffe ieee754 "^1.1.13" 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== + 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" bufrw@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/bufrw/-/bufrw-1.3.0.tgz#28d6cfdaf34300376836310f5c31d57eeb40c8fa" - integrity sha512-jzQnSbdJqhIltU9O5KUiTtljP9ccw2u5ix59McQy4pV2xGhVLhRZIndY8GIrgh5HjXa6+QJ9AQhOd2QWQizJFQ== + version "1.4.0" + resolved "https://registry.yarnpkg.com/bufrw/-/bufrw-1.4.0.tgz#58a294ca0bd9ebc880be83001d749706fc996499" + integrity sha512-sWm8iPbqvL9+5SiYxXH73UOkyEbGQg7kyHQmReF89WJHQJw2eV4P/yZ0E+b71cczJ4pPobVhXxgQcmfSTgGHxQ== dependencies: ansi-color "^0.2.1" error "^7.0.0" @@ -7060,11 +7532,11 @@ cacheable-lookup@^7.0.0: integrity sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w== cacheable-request@^10.2.8: - version "10.2.13" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-10.2.13.tgz#b7012bb4a2acdb18cb54d2dff751d766b3500842" - integrity sha512-3SD4rrMu1msNGEtNSt8Od6enwdo//U9s4ykmXfA2TD58kcLkCobtCDiby7kNyj7a/Q7lz/mAesAFI54rTdnvBA== + version "10.2.14" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-10.2.14.tgz#eb915b665fda41b79652782df3f553449c406b9d" + integrity sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ== dependencies: - "@types/http-cache-semantics" "^4.0.1" + "@types/http-cache-semantics" "^4.0.2" get-stream "^6.0.1" http-cache-semantics "^4.1.1" keyv "^4.5.3" @@ -7111,13 +7583,14 @@ cachedown@1.0.0: 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.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - 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, call-bind@~1.0.2: + 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" callsite@^1.0.0: version "1.0.0" @@ -7171,10 +7644,10 @@ camelcase@^7.0.1: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-7.0.1.tgz#f02e50af9fd7782bc8b88a3558c32fd3a388f048" integrity sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw== -caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30001517, caniuse-lite@^1.0.30001520: - version "1.0.30001524" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001524.tgz#1e14bce4f43c41a7deaeb5ebfe86664fe8dadb80" - integrity sha512-Jj917pJtYg9HSJBF95HVX3Cdr89JUyLT4IZ8SvM5aDRni95swKgYi3TgYLH5hnGfPE/U1dg6IfZ50UsIlLkwSA== +caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30001538, caniuse-lite@^1.0.30001541: + version "1.0.30001562" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001562.tgz#9d16c5fd7e9c592c4cd5e304bc0f75b0008b2759" + integrity sha512-kfte3Hym//51EdX4239i+Rmp20EsLIYGdPkERegTgU19hQWCRhsRFGKHTliUlsry53tv17K7n077Kqa0WJU4ng== capital-case@^1.0.4: version "1.0.4" @@ -7220,18 +7693,25 @@ cborg@^1.5.4, cborg@^1.6.0: resolved "https://registry.yarnpkg.com/cborg/-/cborg-1.10.2.tgz#83cd581b55b3574c816f82696307c7512db759a1" integrity sha512-b3tFPA9pUr2zCUiCfRd2+wok2/LBSNUMKOuRRok+WlvvAgEt/PlbgPTsZUcwCOs53IJvLgTp0eotwtosE6njug== +chai-as-promised@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/chai-as-promised/-/chai-as-promised-7.1.1.tgz#08645d825deb8696ee61725dbf590c012eb00ca0" + integrity sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA== + dependencies: + check-error "^1.0.2" + chai@^4.2.0, chai@^4.3.7: - version "4.3.8" - resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.8.tgz#40c59718ad6928da6629c70496fe990b2bb5b17c" - integrity sha512-vX4YvVVtxlfSZ2VecZgFUTU5qPCYsobVI2O9FmwEXBhDigYGQA6jRXCycIs1yJnnWbZ6/+a2zNIF5DfVCcJBFQ== + version "4.3.10" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.10.tgz#d784cec635e3b7e2ffb66446a63b4e33bd390384" + integrity sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g== 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@3.0.0, chalk@^3.0.0: version "3.0.0" @@ -7334,15 +7814,17 @@ chardet@^0.7.0: resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== -check-error@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" - integrity sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA== +check-error@^1.0.2, 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: + get-func-name "^2.0.2" -check-types@^11.1.1: - version "11.2.2" - resolved "https://registry.yarnpkg.com/check-types/-/check-types-11.2.2.tgz#7afc0b6a860d686885062f2dba888ba5710335b4" - integrity sha512-HBiYvXvn9Z70Z88XKjz3AEKd4HJhBXsa3j7xFnITAzoS8+q6eIGi8qDB8FKPBAjtuxjI/zFpwuiCb8oDtKOYrA== +check-types@^11.2.3: + version "11.2.3" + resolved "https://registry.yarnpkg.com/check-types/-/check-types-11.2.3.tgz#1ffdf68faae4e941fce252840b1787b8edc93b71" + integrity sha512-+67P1GkJRaxQD6PKK0Et9DhwQB+vGg3PM5+aavopCpZT1lj9jeqfvpgTLAWErNj8qApkkmXlu/Ug74kmhagkXg== checkpoint-store@^1.1.0: version "1.1.0" @@ -7391,7 +7873,7 @@ chownr@^2.0.0: resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== -ci-info@3.8.0, ci-info@^3.2.0: +ci-info@3.8.0: version "3.8.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.8.0.tgz#81408265a5380c929f0bc665d62256628ce9ef91" integrity sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw== @@ -7401,6 +7883,11 @@ ci-info@^2.0.0: resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== +ci-info@^3.2.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" + integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== + cids@^0.7.1, cids@~0.7.0: version "0.7.5" resolved "https://registry.yarnpkg.com/cids/-/cids-0.7.5.tgz#60a08138a99bfb69b6be4ceb63bfef7a396b28b2" @@ -7482,9 +7969,10 @@ circomlib@^2.0.0, circomlib@^2.0.5: resolved "https://registry.yarnpkg.com/circomlib/-/circomlib-2.0.5.tgz#183c703e53ed7d011811842dbeeeb9819f4cc1d6" integrity sha512-O7NQ8OS+J4eshBuoy36z/TwQU0YHw8W3zxZcs4hVwpEll3e4hDm3mgkIPqItN8FDeLEKZFK3YeT/+k8TiLF3/A== -"circomlib@git://github.com/weijiekoh/circomlib.git#24ed08eee0bb613b8c0135d66c1013bd9f78d50a": +"circomlib@git+https://github.com/weijiekoh/circomlib.git#24ed08eee0bb613b8c0135d66c1013bd9f78d50a": version "0.5.2" - resolved "git://github.com/weijiekoh/circomlib.git#24ed08eee0bb613b8c0135d66c1013bd9f78d50a" + uid "24ed08eee0bb613b8c0135d66c1013bd9f78d50a" + resolved "git+https://github.com/weijiekoh/circomlib.git#24ed08eee0bb613b8c0135d66c1013bd9f78d50a" dependencies: blake-hash "^1.1.0" blake2b "^2.1.3" @@ -7492,13 +7980,13 @@ circomlib@^2.0.0, circomlib@^2.0.5: ffjavascript "0.1.0" web3-utils "^1.3.0" -"circomlib@https://github.com/weijiekoh/circomlib#ac85e82c1914d47789e2032fb11ceb2cfdd38a2b": +"circomlib@git+https://github.com/weijiekoh/circomlib.git#ac85e82c1914d47789e2032fb11ceb2cfdd38a2b": version "1.0.0" - resolved "https://github.com/weijiekoh/circomlib#ac85e82c1914d47789e2032fb11ceb2cfdd38a2b" + resolved "git+https://github.com/weijiekoh/circomlib.git#ac85e82c1914d47789e2032fb11ceb2cfdd38a2b" -"circomlib@https://github.com/weijiekoh/circomlib.git#24ed08eee0bb613b8c0135d66c1013bd9f78d50a": +"circomlib@git://github.com/weijiekoh/circomlib.git#24ed08eee0bb613b8c0135d66c1013bd9f78d50a": version "0.5.2" - resolved "https://github.com/weijiekoh/circomlib.git#24ed08eee0bb613b8c0135d66c1013bd9f78d50a" + resolved "git://github.com/weijiekoh/circomlib.git#24ed08eee0bb613b8c0135d66c1013bd9f78d50a" dependencies: blake-hash "^1.1.0" blake2b "^2.1.3" @@ -7527,6 +8015,13 @@ circomlibjs@^0.1.7: ethers "^5.5.1" ffjavascript "^0.2.45" +citty@^0.1.3, citty@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/citty/-/citty-0.1.4.tgz#91091be06ae4951dffa42fd443de7fe72245f2e0" + integrity sha512-Q3bK1huLxzQrvj7hImJ7Z1vKYJRPQCDnd0EjXfHMidcjecGOMuLrmuQmtWmFkuKLcMThlGh1yCKG8IEc6VeNXQ== + dependencies: + consola "^3.2.3" + class-is@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/class-is/-/class-is-1.1.0.tgz#9d3c0fba0440d211d843cec3dedfa48055005825" @@ -7615,9 +8110,9 @@ cli-progress@^3.11.2, cli-progress@^3.12.0: string-width "^4.2.3" cli-spinners@^2.2.0, cli-spinners@^2.5.0, cli-spinners@^2.6.1: - version "2.9.0" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.0.tgz#5881d0ad96381e117bbe07ad91f2008fe6ffd8db" - integrity sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g== + version "2.9.1" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.1.tgz#9c0b9dad69a6d47cbb4333c14319b060ed395a35" + integrity sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ== cli-table3@^0.6.0: version "0.6.3" @@ -7664,6 +8159,15 @@ cli-width@^3.0.0: resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== +clipboardy@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/clipboardy/-/clipboardy-3.0.0.tgz#f3876247404d334c9ed01b6f269c11d09a5e3092" + integrity sha512-Su+uU5sr1jkUy1sGRpLKjKrvEOVXgSgiSInwa/qeID6aJ07yh+5NWc3h2QfjHjBnfX4LhtFcuAWKUsJ3r+fjbg== + dependencies: + arch "^2.2.0" + execa "^5.1.1" + is-wsl "^2.2.0" + cliui@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" @@ -7726,6 +8230,11 @@ clone@^1.0.2: resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== +cluster-key-slot@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz#88ddaa46906e303b5de30d3153b7d9fe0a0c19ac" + integrity sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA== + 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" @@ -7912,16 +8421,21 @@ component-emitter@^1.2.1: resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== -compress-commons@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-4.1.1.tgz#df2a09a7ed17447642bad10a85cc9a19e5c42a7d" - integrity sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ== +compress-commons@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-5.0.1.tgz#e46723ebbab41b50309b27a0e0f6f3baed2d6590" + integrity sha512-MPh//1cERdLtqwO3pOFLeXtpuai0Y2WCd5AhtKxznqM7WtaMYaOEMSgn45d9D10sIHSfIKE603HlOp8OPGrvag== dependencies: - buffer-crc32 "^0.2.13" - crc32-stream "^4.0.2" + crc-32 "^1.2.0" + crc32-stream "^5.0.0" normalize-path "^3.0.0" readable-stream "^3.6.0" +computeds@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/computeds/-/computeds-0.0.1.tgz#215b08a4ba3e08a11ff6eee5d6d8d7166a97ce2e" + integrity sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q== + concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" @@ -7970,6 +8484,11 @@ configstore@6.0.0, configstore@^6.0.0: write-file-atomic "^3.0.3" xdg-basedir "^5.0.1" +consola@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/consola/-/consola-3.2.3.tgz#0741857aa88cfa0d6fd53f1cff0375136e98502f" + integrity sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ== + console-browserify@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" @@ -8015,11 +8534,21 @@ content-type@1.0.5, content-type@~1.0.4, content-type@~1.0.5: resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== -convert-source-map@^1.5.1, convert-source-map@^1.7.0: +convert-source-map@^1.5.1: version "1.9.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== + +cookie-es@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/cookie-es/-/cookie-es-1.0.0.tgz#4759684af168dfc54365b2c2dda0a8d7ee1e4865" + integrity sha512-mWYvfOLrfEc996hlKcdABeIiPHUPC6DM2QYZdGGOvhOTbA3tjm2eBwqlJpoFdjC89NI4Qt6h0Pu06Mp+1Pj5OQ== + cookie-signature@1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" @@ -8061,9 +8590,9 @@ copy-template-dir@1.4.0: run-parallel "^1.1.4" core-js-pure@^3.0.1: - version "3.32.1" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.32.1.tgz#5775b88f9062885f67b6d7edce59984e89d276f3" - integrity sha512-f52QZwkFVDPf7UEQZGHKx6NYxsxmVGJe5DIvbzOdRMJlmT6yv0KDjR8rmy3ngr/t5wU54c7Sp/qIJH0ppbhVpQ== + version "3.33.2" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.33.2.tgz#644830db2507ef84d068a70980ccd99c275f5fa6" + integrity sha512-a8zeCdyVk7uF2elKIGz67AjcXOxjRbwOLz8SbklEso1V+2DoW4OkAMZN9S9GBgvZIaqQi/OemFX4OiSoQEmg1Q== core-js@^2.4.0, core-js@^2.5.0: version "2.6.12" @@ -8121,13 +8650,13 @@ cosmiconfig@^7.0.0, cosmiconfig@^7.0.1: yaml "^1.10.0" cosmiconfig@^8.0.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.2.0.tgz#f7d17c56a590856cd1e7cee98734dca272b0d8fd" - integrity sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ== + version "8.3.6" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz#060a2b871d66dba6c8538ea1118ba1ac16f5fae3" + integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA== dependencies: - import-fresh "^3.2.1" + import-fresh "^3.3.0" js-yaml "^4.1.0" - parse-json "^5.0.0" + parse-json "^5.2.0" path-type "^4.0.0" cp-file@^10.0.0: @@ -8168,10 +8697,10 @@ crc-32@^1.2.0: resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.2.tgz#3cad35a934b8bf71f25ca524b6da51fb7eace2ff" integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== -crc32-stream@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-4.0.2.tgz#c922ad22b38395abe9d3870f02fa8134ed709007" - integrity sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w== +crc32-stream@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-5.0.0.tgz#a97d3a802c8687f101c27cc17ca5253327354720" + integrity sha512-B0EPa1UK+qnpBZpG+7FgPCu0J2ETLpXq09o9BkLkEAhdB6Z61Qo4pJ3JYu0c+Qi+/SAL7QThqnzS06pmSSyZaw== dependencies: crc-32 "^1.2.0" readable-stream "^3.4.0" @@ -8286,9 +8815,9 @@ crypto-browserify@3.12.0, crypto-browserify@^3.11.0: randomfill "^1.0.3" crypto-js@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.1.1.tgz#9e485bcf03521041bd85844786b83fb7619736cf" - integrity sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw== + version "4.2.0" + resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.2.0.tgz#4d931639ecdfd12ff80e8186dba6af2c2e856631" + integrity sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q== crypto-random-string@^4.0.0: version "4.0.0" @@ -8319,7 +8848,7 @@ cssstyle@^2.3.0: dependencies: cssom "~0.3.6" -csstype@^3.1.1: +csstype@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== @@ -8511,7 +9040,7 @@ decompress-response@^6.0.0: dependencies: mimic-response "^3.1.0" -deep-eql@^4.1.2: +deep-eql@^4.0.1, deep-eql@^4.1.3: version "4.1.3" resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.3.tgz#7c7775513092f7df98d8df9996dd085eb668cc6d" integrity sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw== @@ -8519,23 +9048,23 @@ deep-eql@^4.1.2: type-detect "^4.0.0" deep-equal@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" - integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== + version "1.1.2" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.2.tgz#78a561b7830eef3134c7f6f3a3d6af272a678761" + integrity sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg== dependencies: - is-arguments "^1.0.4" - is-date-object "^1.0.1" - is-regex "^1.0.4" - object-is "^1.0.1" + 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.2.0" + regexp.prototype.flags "^1.5.1" deep-extend@^0.6.0: version "0.6.0" 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, deep-is@~0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== @@ -8585,16 +9114,26 @@ 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.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-lazy-prop@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5" - integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA== + version "1.2.1" + 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" has-property-descriptors "^1.0.0" object-keys "^1.1.1" @@ -8625,6 +9164,11 @@ defined@~1.0.1: resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.1.tgz#c0b9db27bfaffd95d6f61399419b893df0f91ebf" integrity sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q== +defu@^6.1.2: + version "6.1.3" + resolved "https://registry.yarnpkg.com/defu/-/defu-6.1.3.tgz#6d7f56bc61668e844f9f593ace66fd67ef1205fd" + integrity sha512-Vy2wmG3NTkmHNg/kzpuvHhkqeIx3ODWqasgCRbKtbXEN0G+HpEEv9BtJLp7ZG1CZloFaC41Ah3ZFbq7aqCqMeQ== + delay@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/delay/-/delay-5.0.0.tgz#137045ef1b96e5071060dd5be60bf9334436bd1d" @@ -8645,6 +9189,11 @@ delimit-stream@0.1.0: resolved "https://registry.yarnpkg.com/delimit-stream/-/delimit-stream-0.1.0.tgz#9b8319477c0e5f8aeb3ce357ae305fc25ea1cd2b" integrity sha512-a02fiQ7poS5CnjiJBAsjGLPp5EwVoGHNeu9sziBd9huppRfsAFIpv5zNLv0V1gbop53ilngAf5Kf331AwcoRBQ== +denque@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/denque/-/denque-2.1.0.tgz#e93e1a6569fb5e66f16a3c2a2964617d349d6ab1" + integrity sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw== + depd@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" @@ -8673,6 +9222,11 @@ des.js@^1.0.0: inherits "^2.0.1" minimalistic-assert "^1.0.0" +destr@^2.0.1, destr@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/destr/-/destr-2.0.2.tgz#8d3c0ee4ec0a76df54bc8b819bca215592a8c218" + integrity sha512-65AlobnZMiCET00KaFFjUefxDX0khFA/E4myqZ7a6Sq1yZtR8+FVIvilVX66vF2uobSumxooYZChiRPCKNqhmg== + destroy@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" @@ -8859,9 +9413,9 @@ dom-walk@^0.1.0: integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== domain-browser@^4.22.0: - version "4.22.0" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-4.22.0.tgz#6ddd34220ec281f9a65d3386d267ddd35c491f9f" - integrity sha512-IGBwjF7tNk3cwypFNH/7bfzBcgSCbaMOD3GsaY1AU/JRrnHnYgEM0+9kQt52iZxjNsjBtJYtao146V+f8jFZNw== + version "4.23.0" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-4.23.0.tgz#427ebb91efcb070f05cffdfb8a4e9a6c25f8c94b" + integrity sha512-ArzcM/II1wCCujdCNyQjXrAFwS4mrLh4C7DZWlaI8mdh7h3BfKdNd3bKXITfl2PT9FtfQqaGvhi1vPRQPimjGA== domexception@^4.0.0: version "4.0.0" @@ -8923,9 +9477,9 @@ dotignore@~0.1.2: minimatch "^3.0.4" dset@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/dset/-/dset-3.1.2.tgz#89c436ca6450398396dc6538ea00abc0c54cd45a" - integrity sha512-g/M9sqy3oHe477Ar4voQxWtaPIFw1jTdKZuomOjhCcBx9nHUNn0pu6NopuFFrTh/TRZIKEj+76vLWFu9BNKk+Q== + version "3.1.3" + resolved "https://registry.yarnpkg.com/dset/-/dset-3.1.3.tgz#c194147f159841148e8e34ca41f638556d9542d2" + integrity sha512-20TuZZHCEZ2O71q9/+8BwKwZ0QtD9D8ObhrihJPr+vLLYlSuAU3/zL4cSlgbfeoGHTjCSJBa7NGcrF9/Bx/WJQ== duplexer3@^0.1.4: version "0.1.5" @@ -8986,10 +9540,10 @@ electron-fetch@^1.7.2: dependencies: encoding "^0.1.13" -electron-to-chromium@^1.3.47, electron-to-chromium@^1.4.477: - version "1.4.505" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.505.tgz#00571ade5975b58413f0f56a665b065bfc29cdfc" - integrity sha512-0A50eL5BCCKdxig2SsCXhpuztnB9PfUgRMojj5tMvt8O54lbwz3t6wNgnpiTRosw5QjlJB7ixhVyeg8daLQwSQ== +electron-to-chromium@^1.3.47, electron-to-chromium@^1.4.535: + version "1.4.583" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.583.tgz#7b0ac4f36388da4b5485788adb92cd7dd0abffc4" + integrity sha512-93y1gcONABZ7uqYe/JWDVQP/Pj/sQSunF0HVAPdlg/pfBnOyBMLlQUxWvkqcljJg1+W6cjvPuYD+r1Th9Tn8mA== elegant-spinner@^1.0.1: version "1.0.1" @@ -9170,26 +9724,26 @@ error@^7.0.0: dependencies: string-template "~0.2.1" -es-abstract@^1.20.4, es-abstract@^1.21.2, es-abstract@^1.22.1: - version "1.22.1" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.1.tgz#8b4e5fc5cefd7f1660f0f8e1a52900dfbc9d9ccc" - integrity sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw== +es-abstract@^1.22.1: + 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.1" + 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.5" - get-intrinsic "^1.2.1" + function.prototype.name "^1.1.6" + 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" @@ -9197,23 +9751,23 @@ es-abstract@^1.20.4, es-abstract@^1.21.2, es-abstract@^1.22.1: is-regex "^1.1.4" is-shared-array-buffer "^1.0.2" is-string "^1.0.7" - is-typed-array "^1.1.10" + 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.0" - safe-array-concat "^1.0.0" + regexp.prototype.flags "^1.5.1" + safe-array-concat "^1.0.1" safe-regex-test "^1.0.0" - string.prototype.trim "^1.2.7" - string.prototype.trimend "^1.0.6" - string.prototype.trimstart "^1.0.6" + 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.10" + which-typed-array "^1.1.13" es-array-method-boxes-properly@^1.0.0: version "1.0.0" @@ -9221,18 +9775,18 @@ es-array-method-boxes-properly@^1.0.0: integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== es-module-lexer@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.3.0.tgz#6be9c9e0b4543a60cd166ff6f8b4e9dae0b0c16f" - integrity sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA== + version "1.4.1" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.4.1.tgz#41ea21b43908fe6a287ffcbe4300f790555331f5" + integrity sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w== 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" - 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-to-primitive@^1.2.1: version "1.2.1" @@ -9261,11 +9815,6 @@ es6-iterator@^2.0.3: es5-ext "^0.10.35" es6-symbol "^3.1.1" -es6-object-assign@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/es6-object-assign/-/es6-object-assign-1.1.0.tgz#c2c3582656247c39ea107cb1e6652b6f9f24523c" - integrity sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw== - es6-promise@^4.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" @@ -9291,33 +9840,61 @@ es6-symbol@^3.1.1, es6-symbol@^3.1.3: d "^1.0.1" ext "^1.1.2" -esbuild@0.19.2: - version "0.19.2" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.2.tgz#b1541828a89dfb6f840d38538767c6130dca2aac" - integrity sha512-G6hPax8UbFakEj3hWO0Vs52LQ8k3lnBhxZWomUJDxfz3rZTLqF5k/FCzuNdLx2RbpBiQQF9H9onlDDH1lZsnjg== +esbuild@0.19.4: + version "0.19.4" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.4.tgz#cdf5c4c684956d550bc3c6d0c01dac7fef6c75b1" + integrity sha512-x7jL0tbRRpv4QUyuDMjONtWFciygUxWaUM1kMX2zWxI0X2YWOt7MSA0g4UdeSiHM8fcYVzpQhKYOycZwxTdZkA== + optionalDependencies: + "@esbuild/android-arm" "0.19.4" + "@esbuild/android-arm64" "0.19.4" + "@esbuild/android-x64" "0.19.4" + "@esbuild/darwin-arm64" "0.19.4" + "@esbuild/darwin-x64" "0.19.4" + "@esbuild/freebsd-arm64" "0.19.4" + "@esbuild/freebsd-x64" "0.19.4" + "@esbuild/linux-arm" "0.19.4" + "@esbuild/linux-arm64" "0.19.4" + "@esbuild/linux-ia32" "0.19.4" + "@esbuild/linux-loong64" "0.19.4" + "@esbuild/linux-mips64el" "0.19.4" + "@esbuild/linux-ppc64" "0.19.4" + "@esbuild/linux-riscv64" "0.19.4" + "@esbuild/linux-s390x" "0.19.4" + "@esbuild/linux-x64" "0.19.4" + "@esbuild/netbsd-x64" "0.19.4" + "@esbuild/openbsd-x64" "0.19.4" + "@esbuild/sunos-x64" "0.19.4" + "@esbuild/win32-arm64" "0.19.4" + "@esbuild/win32-ia32" "0.19.4" + "@esbuild/win32-x64" "0.19.4" + +esbuild@0.19.5: + version "0.19.5" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.5.tgz#53a0e19dfbf61ba6c827d51a80813cf071239a8c" + integrity sha512-bUxalY7b1g8vNhQKdB24QDmHeY4V4tw/s6Ak5z+jJX9laP5MoQseTOMemAr0gxssjNcH0MCViG8ONI2kksvfFQ== optionalDependencies: - "@esbuild/android-arm" "0.19.2" - "@esbuild/android-arm64" "0.19.2" - "@esbuild/android-x64" "0.19.2" - "@esbuild/darwin-arm64" "0.19.2" - "@esbuild/darwin-x64" "0.19.2" - "@esbuild/freebsd-arm64" "0.19.2" - "@esbuild/freebsd-x64" "0.19.2" - "@esbuild/linux-arm" "0.19.2" - "@esbuild/linux-arm64" "0.19.2" - "@esbuild/linux-ia32" "0.19.2" - "@esbuild/linux-loong64" "0.19.2" - "@esbuild/linux-mips64el" "0.19.2" - "@esbuild/linux-ppc64" "0.19.2" - "@esbuild/linux-riscv64" "0.19.2" - "@esbuild/linux-s390x" "0.19.2" - "@esbuild/linux-x64" "0.19.2" - "@esbuild/netbsd-x64" "0.19.2" - "@esbuild/openbsd-x64" "0.19.2" - "@esbuild/sunos-x64" "0.19.2" - "@esbuild/win32-arm64" "0.19.2" - "@esbuild/win32-ia32" "0.19.2" - "@esbuild/win32-x64" "0.19.2" + "@esbuild/android-arm" "0.19.5" + "@esbuild/android-arm64" "0.19.5" + "@esbuild/android-x64" "0.19.5" + "@esbuild/darwin-arm64" "0.19.5" + "@esbuild/darwin-x64" "0.19.5" + "@esbuild/freebsd-arm64" "0.19.5" + "@esbuild/freebsd-x64" "0.19.5" + "@esbuild/linux-arm" "0.19.5" + "@esbuild/linux-arm64" "0.19.5" + "@esbuild/linux-ia32" "0.19.5" + "@esbuild/linux-loong64" "0.19.5" + "@esbuild/linux-mips64el" "0.19.5" + "@esbuild/linux-ppc64" "0.19.5" + "@esbuild/linux-riscv64" "0.19.5" + "@esbuild/linux-s390x" "0.19.5" + "@esbuild/linux-x64" "0.19.5" + "@esbuild/netbsd-x64" "0.19.5" + "@esbuild/openbsd-x64" "0.19.5" + "@esbuild/sunos-x64" "0.19.5" + "@esbuild/win32-arm64" "0.19.5" + "@esbuild/win32-ia32" "0.19.5" + "@esbuild/win32-x64" "0.19.5" esbuild@^0.18.10: version "0.18.20" @@ -9377,6 +9954,18 @@ escape-string-regexp@^1.0.2, escape-string-regexp@^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.1: + version "1.14.3" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" + integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== + dependencies: + esprima "^4.0.1" + estraverse "^4.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + escodegen@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.1.0.tgz#ba93bbb7a43986d29d6041f99f5262da773e2e17" @@ -9406,9 +9995,9 @@ eslint-plugin-prettier@^4.0.0: prettier-linter-helpers "^1.0.0" eslint-plugin-vue@^9.8.0: - version "9.17.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.17.0.tgz#4501547373f246547083482838b4c8f4b28e5932" - integrity sha512-r7Bp79pxQk9I5XDP0k2dpUC7Ots3OSWgvGZNu3BxmKK6Zg7NgVtcOB6OCna5Kb9oQwJPl5hq183WD0SY5tZtIQ== + version "9.18.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.18.1.tgz#73cf29df7450ce5913296465f8d1dc545344920c" + integrity sha512-7hZFlrEgg9NIzuVik2I9xSnJA5RsmOfueYgsUGUokEDLJ1LHtxO0Pl4duje1BriZ/jDWb+44tcIlC3yi0tdlZg== dependencies: "@eslint-community/eslint-utils" "^4.4.0" natural-compare "^1.4.0" @@ -9451,7 +10040,7 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4 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@8.48.0, eslint@^8.28.0, eslint@^8.31.0: +eslint@8.48.0: version "8.48.0" resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.48.0.tgz#bf9998ba520063907ba7bfe4c480dc8be03c2155" integrity sha512-sb6DLeIuRXxeM1YljSe1KEx9/YYeZFQWcV8Rq9HfigmdDEugjLEVEa1ozDjL6YDjBpQHPJxJzze+alxi4T3OLg== @@ -9494,6 +10083,50 @@ eslint@8.48.0, eslint@^8.28.0, eslint@^8.31.0: strip-ansi "^6.0.1" text-table "^0.2.0" +eslint@^8.28.0, eslint@^8.31.0: + version "8.53.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.53.0.tgz#14f2c8244298fcae1f46945459577413ba2697ce" + integrity sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.6.1" + "@eslint/eslintrc" "^2.1.3" + "@eslint/js" "8.53.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" + 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" + espree@^6.0.0: version "6.2.1" resolved "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a" @@ -9512,6 +10145,11 @@ espree@^9.3.1, espree@^9.6.0, espree@^9.6.1: acorn-jsx "^5.3.2" eslint-visitor-keys "^3.4.1" +esprima@1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-1.2.2.tgz#76a0fd66fcfe154fd292667dc264019750b1657b" + integrity sha512-+JpPZam9w5DuJ3Q67SqsMGtiHKENSMRVoxvArfJZK01/BfLEObtZ6orJa/MtoGNR/rfMgp5837T41PAmTwAv/A== + esprima@^4.0.0, esprima@^4.0.1, esprima@~4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" @@ -9531,7 +10169,7 @@ esrecurse@^4.3.0: dependencies: estraverse "^5.2.0" -estraverse@^4.1.1: +estraverse@^4.1.1, estraverse@^4.2.0: version "4.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== @@ -9899,7 +10537,7 @@ 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@^7.0.2, ethereumjs-util@^7.1.0, ethereumjs-util@^7.1.1, ethereumjs-util@^7.1.2, ethereumjs-util@^7.1.5: +ethereumjs-util@^7.0.2, ethereumjs-util@^7.1.0, ethereumjs-util@^7.1.5: version "7.1.5" resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz#9ecf04861e4fbbeed7465ece5f23317ad1129181" integrity sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg== @@ -9963,7 +10601,7 @@ ethereumjs-wallet@0.6.5: utf8 "^3.0.0" uuid "^3.3.2" -ethers@^5.0.0, ethers@^5.0.1, ethers@^5.0.2, ethers@^5.0.3, ethers@^5.0.32, ethers@^5.5.1, ethers@^5.5.2, ethers@^5.7.1, ethers@^5.7.2: +ethers@^5.0.1, ethers@^5.0.2, ethers@^5.0.3, ethers@^5.0.32, ethers@^5.4.7, ethers@^5.5.1, ethers@^5.5.2, ethers@^5.7.1, ethers@^5.7.2: version "5.7.2" resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.2.tgz#3a7deeabbb8c030d4126b24f84e525466145872e" integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg== @@ -10255,9 +10893,9 @@ fake-merkle-patricia-tree@^1.0.1: checkpoint-store "^1.1.0" fast-content-type-parse@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fast-content-type-parse/-/fast-content-type-parse-1.0.0.tgz#cddce00df7d7efb3727d375a598e4904bfcb751c" - integrity sha512-Xbc4XcysUXcsP5aHUU7Nq3OwvHq97C+WnbkeIefpeYLX+ryzFJlU6OStFJhs6Ol0LkUGpcK+wL0JwfM+FCU5IA== + version "1.1.0" + resolved "https://registry.yarnpkg.com/fast-content-type-parse/-/fast-content-type-parse-1.1.0.tgz#4087162bf5af3294d4726ff29b334f72e3a1092c" + integrity sha512-fBHHqSTFLVnR61C+gltJuE5GkVQMV0S2nqUO8TJ+5Z3qAKG8vAx4FKai1s5jq/inV1+sREynIWSuQ6HgoSXpDQ== fast-decode-uri-component@^1.0.1: version "1.0.1" @@ -10285,9 +10923,9 @@ fast-fifo@^1.0.0, fast-fifo@^1.1.0, fast-fifo@^1.2.0: integrity sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ== fast-glob@^3.2.12, fast-glob@^3.2.5, fast-glob@^3.2.9, fast-glob@^3.3.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.1.tgz#784b4e897340f3dbbef17413b3f11acf03c874c4" - 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" @@ -10301,18 +10939,19 @@ fast-json-stable-stringify@^2.0.0: integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== fast-json-stringify@^5.7.0: - version "5.8.0" - resolved "https://registry.yarnpkg.com/fast-json-stringify/-/fast-json-stringify-5.8.0.tgz#b229ed01ac5f92f3b82001a916c31324652f46d7" - integrity sha512-VVwK8CFMSALIvt14U8AvrSzQAwN/0vaVRiFFUVlpnXSnDGrSkOAO5MtzyN8oQNjLd5AqTW5OZRgyjoNuAuR3jQ== + version "5.9.1" + resolved "https://registry.yarnpkg.com/fast-json-stringify/-/fast-json-stringify-5.9.1.tgz#c304b9dd4e5c84a62510246b7ba9f99ac4656ea5" + integrity sha512-NMrf+uU9UJnTzfxaumMDXK1NWqtPCfGoM9DYIE+ESlaTQqjlANFBy0VAbsm6FB88Mx0nceyi18zTo5kIEUlzxg== dependencies: "@fastify/deepmerge" "^1.0.0" ajv "^8.10.0" ajv-formats "^2.1.1" fast-deep-equal "^3.1.3" fast-uri "^2.1.0" + json-schema-ref-resolver "^1.0.1" rfdc "^1.2.0" -fast-levenshtein@^2.0.6: +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" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== @@ -10340,9 +10979,9 @@ fast-text-encoding@^1.0.0: integrity sha512-VhXlQgj9ioXCqGstD37E/HBeqEGV/qOD/kmbVG8h5xKBYvM1L3lR1Zn4555cQ8GkYbJa8aJSipLPndE1k6zK2w== fast-uri@^2.0.0, fast-uri@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-2.2.0.tgz#519a0f849bef714aad10e9753d69d8f758f7445a" - integrity sha512-cIusKBIt/R/oI6z/1nyfe2FvGKVTohVRfvkOhvx0nCEW+xf5NoCXjAHcWp93uOUBchzYcsvPlrapAdX1uW+YGg== + version "2.3.0" + resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-2.3.0.tgz#bdae493942483d299e7285dcb4627767d42e2793" + integrity sha512-eel5UKGn369gGEWOqBShmFJWfq/xSJvsgDzgLYC845GneayWvXBf0lJCBn5qTABfewy1ZDPoaR5OZCP+kssfuw== fast-url-parser@^1.1.3: version "1.1.3" @@ -10443,9 +11082,9 @@ fd-slicer@~1.1.0: pend "~1.2.0" fdir@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.1.0.tgz#e5813b659e14671994e21287dae0f61fec8f9a62" - integrity sha512-274qhz5PxNnA/fybOu6apTCUnM0GnO3QazB6VH+oag/7DQskdYq8lm07ZSm90kEQuWYH5GvjAxGruuHrEr0bcg== + version "6.1.1" + resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.1.1.tgz#316b58145a05223b75c8b371e80bb3bad8f1441e" + integrity sha512-QfKBVg453Dyn3mr0Q0O+Tkr1r79lOTAKSi9f/Ot4+qVEwxWhav2Z+SudrG9vQjM2aYRMQQZ2/Q1zdA8ACM1pDg== fecha@^4.2.0: version "4.2.3" @@ -10549,7 +11188,7 @@ ffjavascript@0.2.56: wasmcurves "0.2.0" web-worker "^1.2.0" -ffjavascript@0.2.60, ffjavascript@^0.2.30, ffjavascript@^0.2.38, ffjavascript@^0.2.39, ffjavascript@^0.2.45, ffjavascript@^0.2.48, ffjavascript@^0.2.57: +ffjavascript@0.2.60: version "0.2.60" resolved "https://registry.yarnpkg.com/ffjavascript/-/ffjavascript-0.2.60.tgz#4d8ae613d6bf4e98b3cc29ba10c626f5853854cf" integrity sha512-T/9bnEL5xAZRDbQoEMf+pM9nrhK+C3JyZNmqiWub26EQorW7Jt+jR54gpqDhceA4Nj0YctPQwYnl8xa52/A26A== @@ -10558,6 +11197,15 @@ ffjavascript@0.2.60, ffjavascript@^0.2.30, ffjavascript@^0.2.38, ffjavascript@^0 wasmcurves "0.2.2" web-worker "^1.2.0" +ffjavascript@^0.2.30, ffjavascript@^0.2.38, ffjavascript@^0.2.39, ffjavascript@^0.2.45, ffjavascript@^0.2.48, ffjavascript@^0.2.57, ffjavascript@^0.2.62: + version "0.2.62" + resolved "https://registry.yarnpkg.com/ffjavascript/-/ffjavascript-0.2.62.tgz#f508dfe662a70181598ec5eb8ce5127eb342f624" + integrity sha512-uJ7MTrdzhX/3f+hxn0XhdXbJCqYZJSBB6y2/ui4t21vKYVjyTMlU80pPXu40ir6qpqbrdzUeKdlOdJ0aFG9UNA== + dependencies: + wasmbuilder "0.0.16" + wasmcurves "0.2.2" + web-worker "^1.2.0" + ffwasm@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/ffwasm/-/ffwasm-0.0.7.tgz#23bb9a3537ecc87c0f24fcfb3a9ddd0e86855fff" @@ -10612,9 +11260,9 @@ file-entry-cache@^6.0.1: flat-cache "^3.0.4" file-type@^18.5.0: - version "18.5.0" - resolved "https://registry.yarnpkg.com/file-type/-/file-type-18.5.0.tgz#604a001ba0d32577d4c3fa420ee104d656b914d2" - integrity sha512-yvpl5U868+V6PqXHMmsESpg6unQ5GfnPssl4dxdJudBrr9qy7Fddt7EVX1VLlddFfe8Gj9N7goCZH22FXuSQXQ== + version "18.7.0" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-18.7.0.tgz#cddb16f184d6b94106cfc4bb56978726b25cb2a2" + integrity sha512-ihHtXRzXEziMrQ56VSgU7wkxh55iNchFkosu7Y9/S+tXHdKyrGjVK0ujbqNnsxzea+78MaLhN6PGmfYSAv1ACw== dependencies: readable-web-to-node-stream "^3.0.2" strtok3 "^7.0.0" @@ -10692,9 +11340,9 @@ finalhandler@1.2.0: unpipe "~1.0.0" find-my-way@^7.6.0: - version "7.6.2" - resolved "https://registry.yarnpkg.com/find-my-way/-/find-my-way-7.6.2.tgz#4dd40200d3536aeef5c7342b10028e04cf79146c" - integrity sha512-0OjHn1b1nCX3eVbm9ByeEHiscPYiHLfhei1wOUU9qffQkk98wE0Lo8VrVYfSGMgnSnDh86DxedduAnBf4nwUEw== + version "7.7.0" + resolved "https://registry.yarnpkg.com/find-my-way/-/find-my-way-7.7.0.tgz#d7b51ca6046782bcddd5a8435e99ad057e5a8876" + integrity sha512-+SrHpvQ52Q6W9f3wJoJBbAQULJuNEEQwBvlvYwACDhBTLOTMiQ0HYWh4+vC3OivGP2ENcTI1oKlFA2OepJNjhQ== dependencies: fast-deep-equal "^3.1.3" fast-querystring "^1.0.0" @@ -10770,11 +11418,11 @@ find-yarn-workspace-root@^2.0.0: micromatch "^4.0.2" flat-cache@^3.0.4: - version "3.1.0" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.1.0.tgz#0e54ab4a1a60fe87e2946b6b00657f1c99e1af3f" - 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" @@ -10783,10 +11431,10 @@ flat@^5.0.2: resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== -flatted@^3.2.7: - version "3.2.7" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" - integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== +flatted@^3.2.9: + version "3.2.9" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf" + integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== floating-vue@^2.0.0-beta.20: version "2.0.0-beta.24" @@ -10819,10 +11467,10 @@ fnv-plus@^1.3.1: resolved "https://registry.yarnpkg.com/fnv-plus/-/fnv-plus-1.3.1.tgz#c34cb4572565434acb08ba257e4044ce2b006d67" integrity sha512-Gz1EvfOneuFfk4yG458dJ3TLJ7gV19q3OM/vVvvHf7eT02Hm1DleB4edsia6ahbKgAYxO9gvyQ1ioWZR+a00Yw== -focus-trap@^7.4.0: - version "7.5.2" - resolved "https://registry.yarnpkg.com/focus-trap/-/focus-trap-7.5.2.tgz#e5ee678d10a18651f2591ffb66c949fb098d57cf" - integrity sha512-p6vGNNWLDGwJCiEjkSK6oERj/hEyI9ITsSwIUICBoKLlWiTWXJRfQibCwcoi50rTZdbi87qDtUlMCmQwsGSgPw== +focus-trap@^7.5.4: + version "7.5.4" + resolved "https://registry.yarnpkg.com/focus-trap/-/focus-trap-7.5.4.tgz#6c4e342fe1dae6add9c2aa332a6e7a0bbd495ba2" + integrity sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w== dependencies: tabbable "^6.2.0" @@ -10834,9 +11482,9 @@ folder-walker@3.2.0: from2 "^2.1.0" follow-redirects@^1.0.0, follow-redirects@^1.12.1, follow-redirects@^1.14.0, follow-redirects@^1.15.0: - version "1.15.2" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" - integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== + version "1.15.3" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.3.tgz#fe2f3ef2690afce7e82ed0b44db08165b207123a" + integrity sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q== for-each@^0.3.3, for-each@~0.3.3: version "0.3.3" @@ -10923,10 +11571,10 @@ fp-ts@^1.0.0: resolved "https://registry.yarnpkg.com/fp-ts/-/fp-ts-1.19.5.tgz#3da865e585dfa1fdfd51785417357ac50afc520a" integrity sha512-wDNqTimnzs8QqpldiId9OavWK2NptormjXnRJTQecNjzwfyp6P/8s/zG8e4h3ja3oqkKaY72UlTjQYt/1yXf9A== -fraction.js@^4.2.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.0.tgz#ba77df59c194928c218764accbdc688a09cf961a" - integrity sha512-btalnXjFelOv2cy86KzHWhUuMb622/AD8ce/MCH9C36xe7QRXjJZA+19fP+G5LT0fdRcbOHErMI3SPM11ZaVDg== +fraction.js@^4.3.6: + version "4.3.7" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7" + integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== fragment-cache@^0.2.1: version "0.2.1" @@ -11040,12 +11688,12 @@ fsevents@~2.3.1, fsevents@~2.3.2: 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.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - 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.5: +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" integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== @@ -11164,20 +11812,20 @@ get-caller-file@^2.0.1, get-caller-file@^2.0.5: 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.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" - 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.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82" - 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-iterator@^1.0.2: version "1.0.2" @@ -11189,11 +11837,21 @@ get-own-enumerable-property-symbols@^3.0.0: resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== +get-package-name@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/get-package-name/-/get-package-name-2.2.0.tgz#34d8438b5aa8b887a7c54cdf09854471cc8836de" + integrity sha512-LmCKVxioe63Fy6KDAQ/mmCSOSSRUE/x4zdrMD+7dU8quF3bGpzvP8mOmq4Dgce3nzU9AgkVDotucNOOg7c27BQ== + get-package-type@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== +get-port-please@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/get-port-please/-/get-port-please-3.1.1.tgz#2556623cddb4801d823c0a6a15eec038abb483be" + integrity sha512-3UBAyM3u4ZBVYDsxOQfJDxEa6XTbpBDrOjp4mf7ExFRt5BKs/QywQQiJsh2B+hxcZLSapWqCRvElUe8DnKcFHA== + get-port@5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/get-port/-/get-port-5.1.1.tgz#0469ed07563479de6efb986baf053dcd7d4e3193" @@ -11236,13 +11894,6 @@ get-symbol-description@^1.0.0: call-bind "^1.0.2" get-intrinsic "^1.1.1" -get-tsconfig@^4.6.2: - version "4.7.0" - resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.7.0.tgz#06ce112a1463e93196aa90320c35df5039147e34" - integrity sha512-pmjiZ7xtB8URYm74PlGJozDNyhvsVLUcpBa8DZBG3bWHwaHa9bPiRpiSfovw+fjhwONSCWKRyk+JQHEGZmMrzw== - dependencies: - resolve-pkg-maps "^1.0.0" - get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" @@ -11324,7 +11975,7 @@ glob@9.3.4: minipass "^4.2.4" path-scurry "^1.6.1" -glob@^7.0.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.5, glob@~7.2.3: +glob@^7.0.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.5, glob@~7.2.3: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -11336,7 +11987,7 @@ glob@^7.0.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.5, gl once "^1.3.0" path-is-absolute "^1.0.0" -glob@^8.0.1, glob@^8.0.3: +glob@^8.0.0, glob@^8.0.1, 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== @@ -11376,9 +12027,9 @@ globals@^11.1.0: integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== globals@^13.19.0: - version "13.21.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.21.0.tgz#163aae12f34ef502f5153cfbdd3600f36c63c571" - integrity sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg== + version "13.23.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.23.0.tgz#ef31673c926a0976e1f61dab4dca57e0c0a8af02" + integrity sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA== dependencies: type-fest "^0.20.2" @@ -11641,9 +12292,9 @@ graphql@15.5.0: integrity sha512-OmaM7y0kaK31NKG31q4YbD2beNYa6jBBKtMFT6gLYJljHLJr42IqJ8KX08u3Li/0ifzTU5HjmoOOrwa5BRLeDA== graphql@^16.6.0: - version "16.8.0" - resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.8.0.tgz#374478b7f27b2dc6153c8f42c1b80157f79d79d4" - integrity sha512-0oKGaR+y3qcS5mCu1vb7KG+a89vjn06C7Ihq/dDl3jA+A8B3TKomvi3CiEcVLJQGalbu8F52LxkOym7U5sSfbg== + version "16.8.1" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.8.1.tgz#1930a965bef1170603702acdb68aedd3f3cf6f07" + integrity sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw== growl@1.10.5: version "1.10.5" @@ -11659,6 +12310,20 @@ gtoken@^5.0.4: google-p12-pem "^3.1.3" jws "^4.0.0" +h3@^1.8.1, h3@^1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/h3/-/h3-1.8.2.tgz#69ea8ca0285c1bb268cd08b9a7017e02939f88b7" + integrity sha512-1Ca0orJJlCaiFY68BvzQtP2lKLk46kcLAxVM8JgYbtm2cUg6IY7pjpYgWMwUvDO9QI30N5JAukOKoT8KD3Q0PQ== + dependencies: + cookie-es "^1.0.0" + defu "^6.1.2" + destr "^2.0.1" + iron-webcrypto "^0.10.1" + radix3 "^1.1.0" + ufo "^1.3.0" + uncrypto "^0.1.3" + unenv "^1.7.4" + hamt-sharding@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/hamt-sharding/-/hamt-sharding-1.0.0.tgz#8c7cccb068cd871d721c21e6f09219e5e66383d1" @@ -11689,7 +12354,7 @@ hardhat-artifactor@^0.2.0: resolved "https://registry.yarnpkg.com/hardhat-artifactor/-/hardhat-artifactor-0.2.0.tgz#940c82500653a2623ed89f7dd24dc3bd76de6bb9" integrity sha512-034c0Ye3PjnPbBz6Adz7bNZ7T4LdPTSkjnzsBxToJKiqU4f4CwowFOqwSS0RqO2t9A7w/aWR49pLwbNzpVuDgQ== -hardhat-contract-sizer@^2.0.3, hardhat-contract-sizer@^2.6.1: +hardhat-contract-sizer@^2.10.0, hardhat-contract-sizer@^2.6.1: version "2.10.0" resolved "https://registry.yarnpkg.com/hardhat-contract-sizer/-/hardhat-contract-sizer-2.10.0.tgz#72646f43bfe50e9a5702c9720c9bc3e77d93a2c9" integrity sha512-QiinUgBD5MqJZJh1hl1jc9dNnpJg7eE/w4/4GEnrcmZJJTDbVFNe3+/3Ep24XqISSkYxRz36czcPHKHd/a0dwA== @@ -11698,10 +12363,10 @@ hardhat-contract-sizer@^2.0.3, hardhat-contract-sizer@^2.6.1: cli-table3 "^0.6.0" strip-ansi "^6.0.0" -hardhat@^2.0.11, hardhat@^2.12.2, hardhat@^2.12.5: - version "2.17.2" - resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.17.2.tgz#250a8c8e76029e9bfbfb9b9abee68d5b350b5d4a" - integrity sha512-oUv40jBeHw0dKpbyQ+iH9cmNMziweLoTW3MnkNxJ2Gc0KGLrQR/1n4vV4xY60zn2LdmRgnwPqy3CgtY0mfwIIA== +hardhat@^2.12.5, hardhat@^2.12.6: + version "2.19.0" + resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.19.0.tgz#1e08658863550ba351788ea128e544ff80584a31" + integrity sha512-kMpwovOEfrFRQXEopCP+JTcKVwSYVj8rnXE0LynxDqnh06yvyKCQknmXL6IVYTHQL6Csysc/yNbCHQbjSeJGpA== dependencies: "@ethersproject/abi" "^5.1.2" "@metamask/eth-sig-util" "^4.0.0" @@ -11780,11 +12445,11 @@ has-own-prop@^2.0.0: integrity sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ== 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" - integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== + 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" @@ -11844,12 +12509,10 @@ has-yarn@^3.0.0: resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-3.0.0.tgz#c3c21e559730d1d3b57e28af1f30d06fac38147d" integrity sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA== -has@^1.0.3, has@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" +has@~1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.4.tgz#2eb2860e000011dae4f1406a86fe80e530fb2ec6" + integrity sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ== hasbin@1.2.3: version "1.2.3" @@ -11883,6 +12546,13 @@ hasha@5.2.2: is-stream "^2.0.0" type-fest "^0.8.0" +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: + function-bind "^1.1.2" + hat@0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/hat/-/hat-0.0.3.tgz#bb014a9e64b3788aed8005917413d4ff3d502d8a" @@ -12055,6 +12725,11 @@ http-response-object@^3.0.1: dependencies: "@types/node" "^10.0.3" +http-shutdown@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/http-shutdown/-/http-shutdown-1.2.2.tgz#41bc78fc767637c4c95179bc492f312c0ae64c5f" + integrity sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw== + http-signature@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" @@ -12073,9 +12748,9 @@ http2-wrapper@^1.0.0-beta.5.2: resolve-alpn "^1.0.0" http2-wrapper@^2.1.10: - version "2.2.0" - resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-2.2.0.tgz#b80ad199d216b7d3680195077bd7b9060fa9d7f3" - 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" @@ -12117,9 +12792,9 @@ human-signals@^3.0.1: integrity sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ== humanize-duration@^3.27.3: - version "3.29.0" - resolved "https://registry.yarnpkg.com/humanize-duration/-/humanize-duration-3.29.0.tgz#beffaf7938388cd0f38c494f8970d6faebecf3c0" - integrity sha512-G5wZGwYTLaQAmYqhfK91aw3xt6wNbJW1RnWDh4qP1PvF4T/jnkjx2RVhG5kzB2PGsYGTn+oSDBQp+dMdILLxcg== + version "3.31.0" + resolved "https://registry.yarnpkg.com/humanize-duration/-/humanize-duration-3.31.0.tgz#a0384d22555024cd17e6e9f8561540d37756bf4c" + integrity sha512-fRrehgBG26NNZysRlTq1S+HPtDpp3u+Jzdc/d5A4cEzOD86YLAkDaJyJg8krSdCi7CJ+s7ht3fwRj8Dl+Btd0w== husky@^6.0.0: version "6.0.0" @@ -12145,6 +12820,11 @@ iconv-lite@0.6.3, iconv-lite@^0.6.2: dependencies: safer-buffer ">= 2.1.2 < 3.0.0" +idb-keyval@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/idb-keyval/-/idb-keyval-6.2.1.tgz#94516d625346d16f56f3b33855da11bfded2db33" + integrity sha512-8Sb3veuYCyrZL+VBt9LJfZjLUPWVvqn8tG28VqYNFCo43KHcKuq+b4EiXGeuaLAQWL2YmyDgMp2aSpH9JHsEQg== + 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" @@ -12187,7 +12867,7 @@ immutable@~3.7.6: resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.7.6.tgz#13b4d3cb12befa15482a26fe1b2ebae640071e4b" integrity sha512-AizQPcaofEtO11RZhPPHBOJRdo/20MKQF9mBLnVkBoyHi1/zXK8fzVdnEpSV9gxqtnh6Qomfp3F0xT5qP/vThw== -import-fresh@^3.1.0, import-fresh@^3.2.1: +import-fresh@^3.1.0, 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" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== @@ -12342,12 +13022,12 @@ interface-store@^2.0.2: integrity sha512-rScRlhDcz6k199EkHqT8NpM87ebN89ICOzILoBHgaG36/WX50N32BnU/kpZgCGPLhARRAWUUX5/cyaIjt7Kipg== internal-slot@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" - 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: @@ -12374,6 +13054,21 @@ io-ts@1.10.4: dependencies: fp-ts "^1.0.0" +ioredis@^5.3.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-5.3.2.tgz#9139f596f62fc9c72d873353ac5395bcf05709f7" + integrity sha512-1DKMMzlIHM02eBBVOFQ1+AolGjs6+xEcM4PDL7NqOS6szq7H9jSaEkIUH6/a5Hl241LzW6JLSiAbNvTQjUupUA== + dependencies: + "@ioredis/commands" "^1.1.1" + cluster-key-slot "^1.1.0" + debug "^4.3.4" + denque "^2.1.0" + lodash.defaults "^4.2.0" + lodash.isarguments "^3.1.0" + redis-errors "^1.2.0" + redis-parser "^3.0.0" + standard-as-callback "^2.1.0" + ip-regex@^4.0.0: version "4.3.0" resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-4.3.0.tgz#687275ab0f57fa76978ff8f4dddc8a23d5990db5" @@ -12639,6 +13334,11 @@ ipld@^0.25.3: multicodec "^1.0.0" typical "^6.0.0" +iron-webcrypto@^0.10.1: + version "0.10.1" + resolved "https://registry.yarnpkg.com/iron-webcrypto/-/iron-webcrypto-0.10.1.tgz#cab8636a468685533a8521bfd7f06b19b7174809" + integrity sha512-QGOS8MRMnj/UiOa+aMIgfyHcvkhqNUsUxb1XzskENvbo+rEfp6TOwqd1KPuDzXC4OnGHcMSVxDGRoilqB8ViqA== + is-absolute@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" @@ -12647,21 +13347,14 @@ is-absolute@^1.0.0: is-relative "^1.0.0" is-windows "^1.0.1" -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - integrity sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A== - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== +is-accessor-descriptor@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz#3223b10628354644b86260db29b3e693f5ceedd4" + integrity sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA== dependencies: - kind-of "^6.0.0" + hasown "^2.0.0" -is-arguments@^1.0.4: +is-arguments@^1.0.4, is-arguments@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== @@ -12751,28 +13444,21 @@ is-circular@^1.0.2: resolved "https://registry.yarnpkg.com/is-circular/-/is-circular-1.0.2.tgz#2e0ab4e9835f4c6b0ea2b9855a84acd501b8366c" integrity sha512-YttjnrswnUYRVJvxCvu8z+PGMUSzC2JttP0OEXezlAEdp3EXzhf7IZ3j0gRAybJBQupedIZFhY61Tga6E0qASA== -is-core-module@^2.13.0, is-core-module@^2.5.0, is-core-module@^2.9.0: - version "2.13.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.0.tgz#bb52aa6e2cbd49a30c2ba68c42bf3435ba6072db" - integrity sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ== - dependencies: - has "^1.0.3" - -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - integrity sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg== +is-core-module@^2.13.0, is-core-module@^2.5.0: + 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: - kind-of "^3.0.2" + hasown "^2.0.0" -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== +is-data-descriptor@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz#2109164426166d32ea38c405c1e0945d9e6a4eeb" + integrity sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw== dependencies: - kind-of "^6.0.0" + hasown "^2.0.0" -is-date-object@^1.0.1: +is-date-object@^1.0.1, is-date-object@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== @@ -12780,22 +13466,20 @@ is-date-object@^1.0.1: has-tostringtag "^1.0.0" is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== + version "0.1.7" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.7.tgz#2727eb61fd789dcd5bdf0ed4569f551d2fe3be33" + integrity sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg== dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" + is-accessor-descriptor "^1.0.1" + is-data-descriptor "^1.0.1" is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.3.tgz#92d27cb3cd311c4977a4db47df457234a13cb306" + integrity sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw== dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" + is-accessor-descriptor "^1.0.1" + is-data-descriptor "^1.0.1" is-docker@3.0.0: version "3.0.0" @@ -12917,7 +13601,7 @@ is-lower-case@^2.0.2: dependencies: tslib "^2.0.3" -is-nan@^1.2.1: +is-nan@^1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/is-nan/-/is-nan-1.3.2.tgz#043a54adea31748b55b6cd4e09aadafa69bd9e1d" integrity sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w== @@ -13023,7 +13707,7 @@ is-promise@^2.1.0: resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== -is-regex@^1.0.4, is-regex@^1.1.4, is-regex@~1.1.4: +is-regex@^1.1.4, is-regex@~1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== @@ -13079,7 +13763,7 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: dependencies: has-symbols "^1.0.2" -is-typed-array@^1.1.10, is-typed-array@^1.1.3, is-typed-array@^1.1.9: +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" integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== @@ -13360,15 +14044,15 @@ jiti@1.17.1: resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.17.1.tgz#264daa43ee89a03e8be28c3d712ccc4eb9f1e8ed" integrity sha512-NZIITw8uZQFuzQimqjUxIrIcEdxYDFIe/0xYfIlVXTkiBjjyBEvgasj5bb0/cHtPRD/NziPbT312sFrkI5ALpw== -jiti@^1.17.1, jiti@^1.18.2: - version "1.19.3" - resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.19.3.tgz#ef554f76465b3c2b222dc077834a71f0d4a37569" - integrity sha512-5eEbBDQT/jF1xg6l36P+mWGGoH9Spuy0PCdSr2dtWRDGC6ph/w9ZCL4lmESW8f8F7MwT3XKescfP0wnZWAKL9w== +jiti@^1.17.1, jiti@^1.19.1, jiti@^1.20.0: + version "1.21.0" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.0.tgz#7c97f8fe045724e136a397f7340475244156105d" + integrity sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q== jose@^4.11.4: - version "4.14.4" - resolved "https://registry.yarnpkg.com/jose/-/jose-4.14.4.tgz#59e09204e2670c3164ee24cbfe7115c6f8bff9ca" - integrity sha512-j8GhLiKmUAh+dsFXlX1aJCbt5KMibuKb+d7j1JaOJG6s2UjX1PQlW+OKB/sD4a/5ZYF4RcmYmLSndOoU3Lt/3g== + version "4.15.4" + resolved "https://registry.yarnpkg.com/jose/-/jose-4.15.4.tgz#02a9a763803e3872cf55f29ecef0dfdcc218cc03" + integrity sha512-W+oqK4H+r5sITxfxpSU+MMdr/YSWGvgZMQDIsNoBDGGy4i7GBPTtvFKibQzW06n3U3TqHjhvBJsirShsEJ6eeQ== js-sdsl@^4.1.4: version "4.4.2" @@ -13520,6 +14204,13 @@ json-rpc-random-id@^1.0.0: resolved "https://registry.yarnpkg.com/json-rpc-random-id/-/json-rpc-random-id-1.0.1.tgz#ba49d96aded1444dbb8da3d203748acbbcdec8c8" integrity sha512-RJ9YYNCkhVDBuP4zN5BBtYAzEl03yq/jIIsyif0JY9qyJuQQZNeDK7anAPKKlyEtLSj2s8h6hNh2F8zO5q7ScA== +json-schema-ref-resolver@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-schema-ref-resolver/-/json-schema-ref-resolver-1.0.1.tgz#6586f483b76254784fc1d2120f717bdc9f0a99bf" + integrity sha512-EJAj1pgHc1hxF6vo2Z3s69fMjO1INq6eGHXZ8Z6wCQeldCuwxGK9Sxf4/cScGn3FZubCVUehfWtcDM/PLteCQw== + dependencies: + fast-deep-equal "^3.1.3" + 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" @@ -13541,11 +14232,14 @@ json-stable-stringify-without-jsonify@^1.0.1: 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" - integrity sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g== + version "1.1.0" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.1.0.tgz#43d39c7c8da34bfaf785a61a56808b0def9f747d" + integrity sha512-zfA+5SuwYN2VWqN1/5HZaDzQKLJHaBVMZIIM+wuYjdptkaQsqzDdqjqf+lZZJUuJq1aanHiY8LhH8LmH+qBYJA== dependencies: + call-bind "^1.0.5" + isarray "^2.0.5" jsonify "^0.0.1" + object-keys "^1.1.1" json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: version "5.0.1" @@ -13626,6 +14320,15 @@ jsonparse@^1.2.0: resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== +jsonpath@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/jsonpath/-/jsonpath-1.1.1.tgz#0ca1ed8fb65bb3309248cc9d5466d12d5b0b9901" + integrity sha512-l6Cg7jRpixfbgoWgkrl77dgEj8RPvND0wMH6TwQmi9Qs4TFfS9u5cUFnbeKTwj5ga5Y3BTGGNI28k117LJ009w== + dependencies: + esprima "1.2.2" + static-eval "2.0.2" + underscore "1.12.1" + jsonpointer@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-5.0.1.tgz#2110e0af0900fd37467b5907ecd13a7884a1b559" @@ -13714,9 +14417,9 @@ keccak@3.0.1: node-gyp-build "^4.2.0" keccak@^3.0.0, keccak@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.3.tgz#4bc35ad917be1ef54ff246f904c2bbbf9ac61276" - integrity sha512-JZrLIAJWuZxKbCilMpNz5Vj7Vtb4scDG3dMXLOsbzBmQGyjwE61BbW7bJkfKKCShXiQZt3T6sBgALRtmd+nZaQ== + 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" @@ -13737,9 +14440,9 @@ keyv@^3.0.0: json-buffer "3.0.0" keyv@^4.0.0, keyv@^4.5.3: - version "4.5.3" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.3.tgz#00873d2b046df737963157bd04f294ca818c9c25" - 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" @@ -13762,12 +14465,7 @@ kind-of@^4.0.0: dependencies: is-buffer "^1.1.5" -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== - -kind-of@^6.0.0, kind-of@^6.0.2, kind-of@^6.0.3: +kind-of@^6.0.2, kind-of@^6.0.3: version "6.0.3" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== @@ -14065,10 +14763,18 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" +levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + light-my-request@^5.6.1: - version "5.10.0" - resolved "https://registry.yarnpkg.com/light-my-request/-/light-my-request-5.10.0.tgz#0a2bbc1d1bb573ed3b78143960920ecdc05bf157" - integrity sha512-ZU2D9GmAcOUculTTdH9/zryej6n8TzT+fNGdNtm6SDp5MMMpHrJJkvAdE3c6d8d2chE9i+a//dS9CWZtisknqA== + version "5.11.0" + resolved "https://registry.yarnpkg.com/light-my-request/-/light-my-request-5.11.0.tgz#90e446c303b3a47b59df38406d5f5c2cf224f2d1" + integrity sha512-qkFCeloXCOMpmEdZ/MV91P8AT4fjwFXWaAFz3lUeStM8RcoM1ks4J/F8r1b3r6y/H4u3ACEJ1T+Gv5bopj7oDA== dependencies: cookie "^0.5.0" process-warning "^2.0.0" @@ -14111,6 +14817,29 @@ lint-staged@^11.0.0: stringify-object "3.3.0" supports-color "8.1.1" +listhen@^1.5.5: + version "1.5.5" + resolved "https://registry.yarnpkg.com/listhen/-/listhen-1.5.5.tgz#58915512af70f770aa3e9fb19367adf479bb58c4" + integrity sha512-LXe8Xlyh3gnxdv4tSjTjscD1vpr/2PRpzq8YIaMJgyKzRG8wdISlWVWnGThJfHnlJ6hmLt2wq1yeeix0TEbuoA== + dependencies: + "@parcel/watcher" "^2.3.0" + "@parcel/watcher-wasm" "2.3.0" + citty "^0.1.4" + clipboardy "^3.0.0" + consola "^3.2.3" + defu "^6.1.2" + get-port-please "^3.1.1" + h3 "^1.8.1" + http-shutdown "^1.2.2" + jiti "^1.20.0" + mlly "^1.4.2" + node-forge "^1.3.1" + pathe "^1.1.1" + std-env "^3.4.3" + ufo "^1.3.0" + untun "^0.1.2" + uqr "^0.1.2" + listr-silent-renderer@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e" @@ -14192,21 +14921,21 @@ lit-element@^3.3.0: "@lit/reactive-element" "^1.3.0" lit-html "^2.8.0" -lit-html@^2.7.0, lit-html@^2.8.0: +lit-html@^2.8.0: version "2.8.0" resolved "https://registry.yarnpkg.com/lit-html/-/lit-html-2.8.0.tgz#96456a4bb4ee717b9a7d2f94562a16509d39bffa" integrity sha512-o9t+MQM3P4y7M7yNzqAyjp7z+mQGa4NS4CxiyLqFPyFWyc4O+nodLrkrxSaCTrla6M5YOLaT3RpbbqjszB5g3Q== dependencies: "@types/trusted-types" "^2.0.2" -lit@2.7.6: - version "2.7.6" - resolved "https://registry.yarnpkg.com/lit/-/lit-2.7.6.tgz#810007b876ed43e0c70124de91831921598b1665" - integrity sha512-1amFHA7t4VaaDe+vdQejSVBklwtH9svGoG6/dZi9JhxtJBBlqY5D1RV7iLUYY0trCqQc4NfhYYZilZiVHt7Hxg== +lit@2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/lit/-/lit-2.8.0.tgz#4d838ae03059bf9cafa06e5c61d8acc0081e974e" + integrity sha512-4Sc3OFX9QHOJaHbmTMk28SYgVxLN3ePDjg7hofEft2zWlehFL3LiAuapWc4U/kYwMYJSh2hTCPZ6/LIC7ii0MA== dependencies: "@lit/reactive-element" "^1.6.0" lit-element "^3.3.0" - lit-html "^2.7.0" + lit-html "^2.8.0" load-json-file@^1.0.0: version "1.1.0" @@ -14281,21 +15010,16 @@ lodash.defaults@^4.2.0: resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" integrity sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ== -lodash.difference@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c" - integrity sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA== - -lodash.flatten@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" - integrity sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g== - lodash.has@^4.5.2: version "4.5.2" resolved "https://registry.yarnpkg.com/lodash.has/-/lodash.has-4.5.2.tgz#d19f4dc1095058cccbe2b0cdf4ee0fe4aa37c862" integrity sha512-rnYUdIo6xRCJnQmbVFEwcxF144erlD+M3YcJUVesflU9paQaE8p+fJDcIQrlMYbxoANFL+AB9hZrzSBBk5PL+g== +lodash.isarguments@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" + integrity sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg== + lodash.isempty@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.isempty/-/lodash.isempty-4.4.0.tgz#6f86cbedd8be4ec987be9aaf33c9684db1b31e7e" @@ -14386,11 +15110,6 @@ lodash.truncate@^4.4.2: resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== -lodash.union@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88" - integrity sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw== - lodash.uppercase@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/lodash.uppercase/-/lodash.uppercase-4.3.0.tgz#c404abfd1469f93931f9bb24cf6cc7d57059bc73" @@ -14492,11 +15211,11 @@ log-update@^4.0.0: wrap-ansi "^6.2.0" logform@^2.3.2, logform@^2.4.0: - version "2.5.1" - resolved "https://registry.yarnpkg.com/logform/-/logform-2.5.1.tgz#44c77c34becd71b3a42a3970c77929e52c6ed48b" - integrity sha512-9FyqAm9o9NKKfiAKfZoYo9bGXXuwMkxQiQttkT4YjjVtQVIQtK6LmVtlxmCaFswo6N4AfEkHqZTV0taDtPotNg== + version "2.6.0" + resolved "https://registry.yarnpkg.com/logform/-/logform-2.6.0.tgz#8c82a983f05d6eaeb2d75e3decae7a768b2bf9b5" + integrity sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ== dependencies: - "@colors/colors" "1.5.0" + "@colors/colors" "1.6.0" "@types/triple-beam" "^1.3.2" fecha "^4.2.0" ms "^2.1.1" @@ -14540,12 +15259,12 @@ loose-envify@^1.0.0: dependencies: js-tokens "^3.0.0 || ^4.0.0" -loupe@^2.3.1: - version "2.3.6" - resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.6.tgz#76e4af498103c532d1ecc9be102036a21f787b53" - 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@^2.0.2: version "2.0.2" @@ -14583,6 +15302,13 @@ lru-cache@5.1.1, lru-cache@^5.1.1: dependencies: yallist "^3.0.2" +lru-cache@^10.0.2, "lru-cache@^9.1.1 || ^10.0.0": + version "10.0.2" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.0.2.tgz#34504678cc3266b09b8dfd6fab4e1515258271b7" + integrity sha512-Yj9mA8fPiVgOUpByoTZO5pNrcl5Yk37FcSHsUINpAsaBIEZIuqcCclDZJCVxqQShDsmYX8QG63svJiTbOATZwg== + dependencies: + semver "^7.3.5" + lru-cache@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-3.2.0.tgz#71789b3b7f5399bec8565dda38aa30d2a097efee" @@ -14597,11 +15323,6 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" -"lru-cache@^9.1.1 || ^10.0.0": - version "10.0.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.0.1.tgz#0a3be479df549cca0e5d693ac402ff19537a6b7a" - integrity sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g== - lru_map@^0.3.3: version "0.3.3" resolved "https://registry.yarnpkg.com/lru_map/-/lru_map-0.3.3.tgz#b5c8351b9464cbd750335a79650a0ec0e56118dd" @@ -14617,54 +15338,15 @@ ltgt@~2.1.1: resolved "https://registry.yarnpkg.com/ltgt/-/ltgt-2.1.3.tgz#10851a06d9964b971178441c23c9e52698eece34" integrity sha512-5VjHC5GsENtIi5rbJd+feEpDKhfr7j0odoUR2Uh978g+2p93nd5o34cTjQWohXsPsCZeqoDnIqEf88mPCe0Pfw== -luxon@^3.1.1, luxon@^3.2.1: - version "3.4.2" - resolved "https://registry.yarnpkg.com/luxon/-/luxon-3.4.2.tgz#f5bcab779f3d6a943ee7c8621c2b416bc10abd24" - integrity sha512-uBoAVCVcajsrqy3pv7eo5jEUz1oeLmCcnMv8n4AJpT5hbpN9lUssAXibNElpbLce3Mhm9dyBzwYLs9zctM/0tA== - -maci-common@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/maci-common/-/maci-common-1.1.1.tgz#63b0ff5e42ec5f2a6f549b0e88b0066fcaf5b45e" - integrity sha512-+t+LMJHvmfyl6Q5j9Qxf1IbtUno9PxS0jdHcjBa7jdZLsuXu0eYDCD0Z+oTg4oA2jdqn68xua2s2moU43pgOMw== - -maci-contracts@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/maci-contracts/-/maci-contracts-1.1.1.tgz#c09bb2db00e43ba54054bc6be86a8c73a85f8551" - integrity sha512-rW1O75YxHZZB5rR2HXQRplHKMol55Wcc5flkbcI0Aoy0lHem9iWr68LMqVdaNX8I8Ums+hKOzJS1rswGN6WmIg== - dependencies: - "@nomiclabs/hardhat-ethers" "^2.2.1" - "@openzeppelin/contracts" "^4.8.0" - argparse "^1.0.10" - circomlib "^2.0.5" - circomlibjs "^0.1.7" - hardhat "^2.12.2" - hardhat-artifactor "^0.2.0" - hardhat-contract-sizer "^2.0.3" - module-alias "^2.2.2" - -"maci-contracts@npm:@clrfund/maci-contracts@1.1.3": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@clrfund/maci-contracts/-/maci-contracts-1.1.3.tgz#43456c8427db5c08e63c03eeeb7cd01467878a0b" - integrity sha512-OnP+vm8ZjTyKtOWbTvXHG8a7nuOZdK12TeSm9Ugnebuv/u/1qgAfVqAfnKp35hKsPWBV7oO/LiTG5NPUmB40tA== - dependencies: - "@nomiclabs/hardhat-ethers" "^2.2.1" - "@openzeppelin/contracts" "^4.8.0" - argparse "^1.0.10" - circomlib "^2.0.5" - circomlibjs "^0.1.7" - hardhat "^2.12.2" - hardhat-artifactor "^0.2.0" - hardhat-contract-sizer "^2.0.3" - module-alias "^2.2.2" - -maci-core@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/maci-core/-/maci-core-1.1.1.tgz#1dd767b2a222c49b7c9bc0f270a0b7096f10463c" - integrity sha512-zoB1sGW2b/l2/bXVYd3YM69GSkmnGmouML1W7IbGTjDZiAXY1FqALug5PEsvVww/wA/+lbu+UoPeKAQM7FDAVg== - dependencies: - maci-crypto "^1.1.1" - maci-domainobjs "^1.1.1" - module-alias "^2.2.2" +luxon@^3.1.1, luxon@^3.2.1: + version "3.4.4" + resolved "https://registry.yarnpkg.com/luxon/-/luxon-3.4.4.tgz#cf20dc27dc532ba41a169c43fdcc0063601577af" + integrity sha512-zobTr7akeGHnv7eBOXcRgMeCP6+uyYsczwmeRCauvpvaAltgNyTbLH/+VaEAPUeWBT+1GuNmz4wC/6jtQzbbVA== + +maci-common@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/maci-common/-/maci-common-1.1.2.tgz#8105633d2425a3ce7cf7b3d6700cf82987287b08" + integrity sha512-KFaKDT6+QlfAX3B3EZVmitdQ2SD76qouQneFwm7OFfu4lF4RWWEak8J4F/lbS8fqJ1wG4PGTgTv7H9swJycCBw== maci-crypto@1.1.1: version "1.1.1" @@ -14677,17 +15359,6 @@ maci-crypto@1.1.1: ffjavascript "^0.2.57" optimisedmt "^0.0.7" -maci-crypto@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/maci-crypto/-/maci-crypto-1.1.2.tgz#1239dad28ac12737cd69ec9f0c5b1c1a95407929" - integrity sha512-/eaWVItoLFl32OcANn/6UhTzhe0zyXEAvSsBxH8ZsuI1TpBad3uw4wLh4AMVfehKI2IflMmTLriSedS3vQiwQw== - dependencies: - blake-hash "^1.1.0" - circomlib "https://github.com/weijiekoh/circomlib.git#24ed08eee0bb613b8c0135d66c1013bd9f78d50a" - ethers "^5.0.32" - ffjavascript "^0.2.57" - optimisedmt "^0.0.7" - maci-domainobjs@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/maci-domainobjs/-/maci-domainobjs-1.1.1.tgz#95b33da218737bf6017cdc89f184348d049e2571" @@ -14695,13 +15366,6 @@ maci-domainobjs@1.1.1: dependencies: base64url "^3.0.1" -maci-domainobjs@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/maci-domainobjs/-/maci-domainobjs-1.1.2.tgz#d348c3deb4946322b0cd66d2432e96adfe16f208" - integrity sha512-4HIBMe173DFQ9TZh68Yuf/eYNHA2Uzt/Ucqf53R3BOZ3tcmuEGIgEiKyzQZPlNQshAOOHeBZqlPlsuDge7t51A== - dependencies: - base64url "^3.0.1" - macos-release@^3.1.0: version "3.2.0" resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-3.2.0.tgz#dcee82b6a4932971b1538dbf6f3aabc4a903b613" @@ -14721,14 +15385,7 @@ magic-string@^0.27.0: dependencies: "@jridgewell/sourcemap-codec" "^1.4.13" -magic-string@^0.30.0: - version "0.30.3" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.3.tgz#403755dfd9d6b398dfa40635d52e96c5ac095b85" - integrity sha512-B7xGbll2fG/VjP+SWg4sX3JynwIU0mjoTc6MPpKNuIvftk6u6vqhDnk1R80b8C2GBR6ywqy+1DcKBrevBg+bmw== - dependencies: - "@jridgewell/sourcemap-codec" "^1.4.15" - -magic-string@^0.30.3: +magic-string@^0.30.3, magic-string@^0.30.5: version "0.30.5" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.5.tgz#1994d980bd1c8835dc6e78db7cbd4ae4f24746f9" integrity sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA== @@ -14787,9 +15444,9 @@ markdown-it-link-attributes@^4.0.1: integrity sha512-pg5OK0jPLg62H4k7M9mRJLT61gUp9nvG0XveKYHMOOluASo9OEF13WlXrpAp2aj35LbedAy3QOCgQCw0tkLKAQ== markdown-it@^13.0.1: - version "13.0.1" - resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-13.0.1.tgz#c6ecc431cacf1a5da531423fc6a42807814af430" - integrity sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q== + version "13.0.2" + resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-13.0.2.tgz#1bc22e23379a6952e5d56217fbed881e0c94d536" + integrity sha512-FtwnEuuK+2yVU7goGn/MJ0WBZMM9ZPgU9spqlFs7/A/pDIUNSOQZhUgOqYCficIuR2QaFnrt8LHqBWsbTAoI5w== dependencies: argparse "^2.0.1" entities "~3.0.1" @@ -15136,7 +15793,7 @@ minimatch@^8.0.2: dependencies: brace-expansion "^2.0.1" -minimatch@^9.0.0: +minimatch@^9.0.0, minimatch@^9.0.3: version "9.0.3" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== @@ -15152,7 +15809,7 @@ minimist-options@4.1.0: is-plain-obj "^1.1.0" kind-of "^6.0.3" -minimist@1.2.8, minimist@^1.1.0, minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6, minimist@~1.2.7: +minimist@1.2.8, minimist@^1.1.0, minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6, minimist@~1.2.8: version "1.2.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== @@ -15183,9 +15840,9 @@ minipass@^5.0.0: integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== "minipass@^5.0.0 || ^6.0.2 || ^7.0.0": - version "7.0.3" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.3.tgz#05ea638da44e475037ed94d1c7efcc76a25e1974" - integrity sha512-LhbbwCfz3vsb12j/WkWQPZfKTsgqIe1Nf/ti1pKjYESGLHIVjWU96G9/ljLH4F9mWNVhlQOm0VySdAWzf05dpg== + version "7.0.4" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c" + integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== minizlib@^1.3.3: version "1.3.3" @@ -15234,10 +15891,10 @@ mkdirp@^1.0.3: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -mlly@^1.0.0, mlly@^1.1.0, mlly@^1.2.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.4.1.tgz#7ab9cbb040bf8bd8205a0c341ce9acc3ae0c3a74" - integrity sha512-SCDs78Q2o09jiZiE2WziwVBEqXQ02XkGdUy45cbJf+BpYRIjArXRJ1Wbowxkb+NaM9DWvS3UC9GiO/6eqvQ/pg== +mlly@^1.0.0, mlly@^1.1.0, mlly@^1.2.0, mlly@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.4.2.tgz#7cf406aa319ff6563d25da6b36610a93f2a8007e" + integrity sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg== dependencies: acorn "^8.10.0" pathe "^1.1.1" @@ -15314,6 +15971,18 @@ mock-fs@^4.1.0: resolved "https://registry.yarnpkg.com/mock-fs/-/mock-fs-4.14.0.tgz#ce5124d2c601421255985e6e94da80a7357b1b18" integrity sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw== +mock-property@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/mock-property/-/mock-property-1.0.3.tgz#3e37c50a56609d548cabd56559fde3dd8767b10c" + 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-alias@^2.2.2: version "2.2.3" resolved "https://registry.yarnpkg.com/module-alias/-/module-alias-2.2.3.tgz#ec2e85c68973bda6ab71ce7c93b763ec96053221" @@ -15364,6 +16033,11 @@ move-file@^3.0.0: dependencies: path-exists "^5.0.0" +mri@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" + integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== + ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" @@ -15516,9 +16190,9 @@ mz@^2.7.0: thenify-all "^1.0.0" nan@^2.16.0, nan@^2.2.1: - version "2.17.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.17.0.tgz#c0150a2368a182f033e9aa5195ec76ea41a199cb" - integrity sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ== + version "2.18.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.18.0.tgz#26a6faae7ffbeb293a39660e88a76b82e30b7554" + integrity sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w== nano-json-stream-parser@^0.1.2: version "0.1.2" @@ -15546,9 +16220,9 @@ nanoid@^2.1.11: integrity sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA== nanoid@^3.0.2, nanoid@^3.1.20, nanoid@^3.1.23, nanoid@^3.3.6: - version "3.3.6" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" - integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== + version "3.3.7" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" + integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== nanomatch@^1.2.9: version "1.2.13" @@ -15577,6 +16251,11 @@ napi-macros@~2.0.0: resolved "https://registry.yarnpkg.com/napi-macros/-/napi-macros-2.0.0.tgz#2b6bae421e7b96eb687aa6c77a7858640670001b" integrity sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg== +napi-wasm@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/napi-wasm/-/napi-wasm-1.1.0.tgz#bbe617823765ae9c1bc12ff5942370eae7b2ba4e" + integrity sha512-lHwIAJbmLSjF9VDRm9GoVOy9AGp3aIvkjv+Kvz9h16QR3uSVYH78PNQUnT2U4X53mhlnV2M7wrhibQ3GHicDmg== + native-abort-controller@^1.0.3, native-abort-controller@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/native-abort-controller/-/native-abort-controller-1.0.4.tgz#39920155cc0c18209ff93af5bc90be856143f251" @@ -15613,19 +16292,18 @@ nested-error-stacks@^2.0.0, nested-error-stacks@^2.1.0, nested-error-stacks@^2.1 integrity sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw== netlify-cli@^16.2.0: - version "16.2.0" - resolved "https://registry.yarnpkg.com/netlify-cli/-/netlify-cli-16.2.0.tgz#a307ac7d6d612c08ea7e47f1322061f17aa61136" - integrity sha512-I4oDn3ApCzykK6AnejnU6IUr2OiJqpxIR+5+F3YujBakav9AW4s/sNIE9FAryul8u8RGJMfo1J7Irb92+y2uLA== + version "16.9.3" + resolved "https://registry.yarnpkg.com/netlify-cli/-/netlify-cli-16.9.3.tgz#c26acc6fc6238641ae629bb6ffdeefc39ffe5907" + integrity sha512-BsdDMUSzURdAwvda5+tETWFZc+eBTV8h4a9Vto92f5JN8x2nky5WRvniajMm2S2zq+tXlSYUHi98jwIC4B5kTw== dependencies: "@bugsnag/js" "7.20.2" "@fastify/static" "6.10.2" - "@netlify/build" "29.20.8" - "@netlify/build-info" "7.7.4" - "@netlify/config" "20.8.0" - "@netlify/edge-bundler" "8.19.0" + "@netlify/build" "29.23.4" + "@netlify/build-info" "7.10.1" + "@netlify/config" "20.9.0" + "@netlify/edge-bundler" "9.4.1" "@netlify/local-functions-proxy" "1.1.1" - "@netlify/serverless-functions-api" "1.7.3" - "@netlify/zip-it-and-ship-it" "9.17.0" + "@netlify/zip-it-and-ship-it" "9.25.4" "@octokit/rest" "19.0.13" ansi-escapes "6.2.0" ansi-styles "6.2.1" @@ -15679,6 +16357,7 @@ netlify-cli@^16.2.0: is-stream "3.0.0" is-wsl "2.2.0" isexe "2.0.0" + js-yaml "^4.1.0" jsonwebtoken "9.0.1" jwt-decode "3.1.2" lambda-local "2.1.2" @@ -15692,7 +16371,7 @@ netlify-cli@^16.2.0: netlify "13.1.10" netlify-headers-parser "7.1.2" netlify-redirect-parser "14.2.0" - netlify-redirector "0.4.0" + netlify-redirector "0.5.0" node-fetch "2.6.12" node-version-alias "3.4.1" ora "6.3.1" @@ -15722,8 +16401,8 @@ netlify-cli@^16.2.0: update-notifier "6.0.2" uuid "9.0.0" wait-port "1.0.4" - winston "3.8.2" write-file-atomic "5.0.1" + zod "^3.22.4" netlify-headers-parser@7.1.2, netlify-headers-parser@^7.1.2: version "7.1.2" @@ -15748,12 +16427,12 @@ netlify-redirect-parser@14.2.0, netlify-redirect-parser@^14.2.0: path-exists "^5.0.0" toml "^3.0.0" -netlify-redirector@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/netlify-redirector/-/netlify-redirector-0.4.0.tgz#821f23b7b51884710304c9497532f00996cb6958" - integrity sha512-ssD+V9o2DD9VnilOYC+34i07IrlY8XDsh5mN+qLYA4MxCpdALKXFICcz1KzsHZabuIS5XsF1VP/HzDyx5ubJ2g== +netlify-redirector@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/netlify-redirector/-/netlify-redirector-0.5.0.tgz#9611dd8497dab4e13d9f6a6f1595b9528b9e7abf" + integrity sha512-4zdzIP+6muqPCuE8avnrgDJ6KW/2+UpHTRcTbMXCIRxiRmyrX+IZ4WSJGZdHPWF3WmQpXpy603XxecZ9iygN7w== -netlify@13.1.10, netlify@^13.1.10: +netlify@13.1.10: version "13.1.10" resolved "https://registry.yarnpkg.com/netlify/-/netlify-13.1.10.tgz#27520caf8582bd3c12d961e46b723f614c1d9b28" integrity sha512-ByFz8S08HWVKd9r/lkTahZX7xSq4IRyPCUvuaduI4GHyQaSWEdVNK1krC05vlhL9W0SzDn8Yjowh0Ru4PKrOYw== @@ -15766,6 +16445,19 @@ netlify@13.1.10, netlify@^13.1.10: p-wait-for "^4.0.0" qs "^6.9.6" +netlify@^13.1.10, netlify@^13.1.11: + version "13.1.11" + resolved "https://registry.yarnpkg.com/netlify/-/netlify-13.1.11.tgz#f5151bbd5e05cd5a67713f89c05a57dd6377b599" + integrity sha512-exrD6cqwo5avDNtU7YT9iuN0+yoW+aaEUxvr/39oP36wZRKreoPm6KNVisTR9d4lXrPeUG8XI+rERuLhwMQmdw== + dependencies: + "@netlify/open-api" "^2.26.0" + lodash-es "^4.17.21" + micro-api-client "^3.3.0" + node-fetch "^3.0.0" + omit.js "^2.0.2" + p-wait-for "^4.0.0" + qs "^6.9.6" + next-tick@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" @@ -15804,6 +16496,11 @@ node-domexception@^1.0.0: resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== +node-fetch-native@^1.4.0, node-fetch-native@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/node-fetch-native/-/node-fetch-native-1.4.1.tgz#5a336e55b4e1b1e72b9927da09fecd2b374c9be5" + integrity sha512-NsXBU0UgBxo2rQLOeWNZqS3fvflWePMECr8CoSWoSTqCqGbVVsvl9vZu1HfQicYN0g5piV9Gh8RTEvo/uP752w== + node-fetch@2.6.12: version "2.6.12" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.12.tgz#02eb8e22074018e3d5a83016649d04df0e348fba" @@ -16073,12 +16770,17 @@ object-hash@^3.0.0: resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== -object-inspect@^1.12.3, object-inspect@^1.9.0, object-inspect@~1.12.3: +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-inspect@~1.12.3: version "1.12.3" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== -object-is@^1.0.1: +object-is@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== @@ -16119,14 +16821,14 @@ object.assign@^4.1.4: object-keys "^1.1.1" object.getownpropertydescriptors@^2.1.6: - version "2.1.6" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.6.tgz#5e5c384dd209fa4efffead39e3a0512770ccc312" - integrity sha512-lq+61g26E/BgHv0ZTFgRvi7NMEPuAxLkFU7rukXjc/AlwH4Am5xXVnIXy3un1bg/JPbXHrixRkK1itUzzPiIjQ== + version "2.1.7" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.7.tgz#7a466a356cd7da4ba8b9e94ff6d35c3eeab5d56a" + integrity sha512-PrJz0C2xJ58FNn11XV2lr4Jt5Gzl94qpy9Lu0JlfEj14z88sqbSBJCBEzdlNUCzY2gburhbrwOZ5BHCmuNUy0g== dependencies: - array.prototype.reduce "^1.0.5" + array.prototype.reduce "^1.0.6" call-bind "^1.0.2" define-properties "^1.2.0" - es-abstract "^1.21.2" + es-abstract "^1.22.1" safe-array-concat "^1.0.0" object.pick@^1.3.0: @@ -16155,6 +16857,15 @@ oboe@2.1.5: dependencies: http-https "^1.0.0" +ofetch@^1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/ofetch/-/ofetch-1.3.3.tgz#588cb806a28e5c66c2c47dd8994f9059a036d8c0" + integrity sha512-s1ZCMmQWXy4b5K/TW9i/DtiN8Ku+xCiHcjQ6/J/nDdssirrQNOoB165Zu8EqLMA2lln1JUth9a0aW9Ap2ctrUg== + dependencies: + destr "^2.0.1" + node-fetch-native "^1.4.0" + ufo "^1.3.0" + omit.js@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/omit.js/-/omit.js-2.0.2.tgz#dd9b8436fab947a5f3ff214cb2538631e313ec2f" @@ -16166,9 +16877,9 @@ on-exit-leak-free@^0.2.0: integrity sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg== on-exit-leak-free@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/on-exit-leak-free/-/on-exit-leak-free-2.1.0.tgz#5c703c968f7e7f851885f6459bf8a8a57edc9cc4" - integrity sha512-VuCaZZAjReZ3vUwgOB8LxAosIurDiAW0s13rI1YwmaP++jvcxP77AWoQvenZebpCA2m8WC1/EosPYPMjnRAp/w== + version "2.1.2" + resolved "https://registry.yarnpkg.com/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz#fed195c9ebddb7d9e4c3842f93f281ac8dadd3b8" + integrity sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA== on-finished@2.4.1: version "2.4.1" @@ -16253,6 +16964,18 @@ optimisedmt@^0.0.7: circomlibjs "0.0.8" ffjavascript "^0.2.39" +optionator@^0.8.1: + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + 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" + optionator@^0.9.3: version "0.9.3" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" @@ -16309,6 +17032,11 @@ ora@^5.4.1: strip-ansi "^6.0.0" wcwidth "^1.0.1" +ordinal@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/ordinal/-/ordinal-1.0.3.tgz#1a3c7726a61728112f50944ad7c35c06ae3a0d4d" + integrity sha512-cMddMgb2QElm8G7vdaa02jhUNbTSrhsgAGUz1OokD83uJTwSUn+nKoNoKVVaRa08yF6sgfO7Maou1+bgLd9rdQ== + os-browserify@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" @@ -16588,7 +17316,7 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" -parse-asn1@^5.0.0, parse-asn1@^5.1.5: +parse-asn1@^5.0.0, parse-asn1@^5.1.6: version "5.1.6" resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== @@ -16887,9 +17615,9 @@ pify@^2.0.0, pify@^2.3.0: integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== pinia@^2.0.26: - version "2.1.6" - resolved "https://registry.yarnpkg.com/pinia/-/pinia-2.1.6.tgz#e88959f14b61c4debd9c42d0c9944e2875cbe0fa" - integrity sha512-bIU6QuE5qZviMmct5XwCesXelb5VavdOWKWaB17ggk++NUwQWWbP5YnsONTk3b752QkW9sACiR81rorpeOMSvQ== + version "2.1.7" + resolved "https://registry.yarnpkg.com/pinia/-/pinia-2.1.7.tgz#4cf5420d9324ca00b7b4984d3fbf693222115bbc" + integrity sha512-+C2AHFtcFqjPih0zpYuvof37SFxMQ7OEG2zV9jRI12i9BOy3YQVAHwdKtyyc8pDcDyIc33WCIsZaCFWU7WWxGQ== dependencies: "@vue/devtools-api" "^6.5.0" vue-demi ">=0.14.5" @@ -16914,10 +17642,10 @@ pino-abstract-transport@v0.5.0: duplexify "^4.1.2" split2 "^4.0.0" -pino-abstract-transport@v1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/pino-abstract-transport/-/pino-abstract-transport-1.0.0.tgz#cc0d6955fffcadb91b7b49ef220a6cc111d48bb3" - integrity sha512-c7vo5OpW4wIS42hUVcT5REsL8ZljsUfBjqV/e2sFxmFEFZiq1XLUp5EYLtuDH6PEHq9W1egWqRbnLUP5FuZmOA== +pino-abstract-transport@v1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pino-abstract-transport/-/pino-abstract-transport-1.1.0.tgz#083d98f966262164504afb989bccd05f665937a8" + integrity sha512-lsleG3/2a/JIWUtf9Q5gUNErBqwIu1tUKTT3dUzaf5DySw9ra1wcqKjJjLX1VTY64Wk1eEOYsVGSaGfCK85ekA== dependencies: readable-stream "^4.0.0" split2 "^4.0.0" @@ -16950,20 +17678,20 @@ pino@7.11.0: thread-stream "^0.15.1" pino@^8.5.0: - version "8.15.0" - resolved "https://registry.yarnpkg.com/pino/-/pino-8.15.0.tgz#67c61d5e397bf297e5a0433976a7f7b8aa6f876b" - integrity sha512-olUADJByk4twxccmAxb1RiGKOSvddHugCV3wkqjyv+3Sooa2KLrmXrKEWOKi0XPCLasRR5jBXxioE1jxUa4KzQ== + version "8.16.1" + resolved "https://registry.yarnpkg.com/pino/-/pino-8.16.1.tgz#dcaf82764b1a27f24101317cdd6453e96290f1d9" + integrity sha512-3bKsVhBmgPjGV9pyn4fO/8RtoVDR8ssW1ev819FsRXlRNgW8gR/9Kx+gCK4UPWd4JjrRDLWpzd/pb1AyWm3MGA== dependencies: atomic-sleep "^1.0.0" fast-redact "^3.1.1" on-exit-leak-free "^2.1.0" - pino-abstract-transport v1.0.0 + pino-abstract-transport v1.1.0 pino-std-serializers "^6.0.0" process-warning "^2.0.0" quick-format-unescaped "^4.0.3" real-require "^0.2.0" safe-stable-stringify "^2.3.1" - sonic-boom "^3.1.0" + sonic-boom "^3.7.0" thread-stream "^2.0.0" pirates@^4.0.1: @@ -17074,10 +17802,10 @@ postcss-values-parser@^6.0.2: is-url-superb "^4.0.0" quote-unquote "^1.0.0" -postcss@^8.1.10, postcss@^8.4.19, postcss@^8.4.23, postcss@^8.4.27: - version "8.4.29" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.29.tgz#33bc121cf3b3688d4ddef50be869b2a54185a1dd" - integrity sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw== +postcss@^8.4.19, postcss@^8.4.23, postcss@^8.4.27, postcss@^8.4.31: + version "8.4.31" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d" + integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ== dependencies: nanoid "^3.3.6" picocolors "^1.0.0" @@ -17116,6 +17844,11 @@ prelude-ls@^1.2.1: 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.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== + prepend-http@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" @@ -17183,9 +17916,9 @@ process-warning@^1.0.0: integrity sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q== process-warning@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-2.2.0.tgz#008ec76b579820a8e5c35d81960525ca64feb626" - integrity sha512-/1WZ8+VQjR6avWOgHeEPd7SDQmFQ1B5mC1eRXsCm5TarlNmx/wCsa5GEaxGm05BORRtyG/Ex/3xq3TuRvq57qg== + version "2.3.0" + resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-2.3.0.tgz#02ccba12fd55c05879cb7ddab31b6a20af2fe4d9" + integrity sha512-N6mp1+2jpQr3oCFMz6SeHRGbv6Slb20bRhj4v3xR99HqNToAcOe1MFOp4tytyzOfJn+QtN8Rf7U/h2KAn4kC6g== process@^0.10.0: version "0.10.1" @@ -17270,7 +18003,7 @@ protobufjs@^6.10.2: "@types/node" ">=13.7.0" long "^4.0.0" -protobufjs@^7.1.2, protobufjs@^7.2.4: +protobufjs@^7.1.2, protobufjs@^7.2.2, protobufjs@^7.2.3, protobufjs@^7.2.4: version "7.2.5" resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.2.5.tgz#45d5c57387a6d29a17aab6846dcc283f9b8e7f2d" integrity sha512-gGXRSXvxQ7UiPgfw8gevrfRWcTlSbOFg+p/N+JVJEK5VhueL2miT6qTymqAmjr1Q5WbOCyJbyrk6JfWKwlFn6A== @@ -17428,9 +18161,9 @@ punycode@^1.3.2, punycode@^1.4.1: integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== punycode@^2.1.0, punycode@^2.1.1: - version "2.3.0" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" - integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== pupa@^3.1.0: version "3.1.0" @@ -17439,7 +18172,7 @@ pupa@^3.1.0: dependencies: escape-goat "^4.0.0" -pvtsutils@^1.3.2: +pvtsutils@^1.3.2, pvtsutils@^1.3.5: version "1.3.5" resolved "https://registry.yarnpkg.com/pvtsutils/-/pvtsutils-1.3.5.tgz#b8705b437b7b134cd7fd858f025a23456f1ce910" integrity sha512-ARvb14YB9Nm2Xi6nBq1ZX6dAM0FsJnuk+31aUp4TrcZEdKUlSqOqsxJHUPJDNE3qiIp+iUPEIeR6Je/tgV7zsA== @@ -17468,7 +18201,7 @@ qs@6.11.0: dependencies: side-channel "^1.0.4" -qs@^6.11.0, qs@^6.4.0, qs@^6.9.6: +qs@^6.11.2, qs@^6.4.0, qs@^6.9.6: version "6.11.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.2.tgz#64bea51f12c1f5da1bc01496f48ffcff7c69d7d9" integrity sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA== @@ -17580,6 +18313,11 @@ rabin-wasm@~0.0.8: node-fetch "^2.6.0" readable-stream "^2.0.4" +radix3@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/radix3/-/radix3-1.1.0.tgz#9745df67a49c522e94a33d0a93cf743f104b6e0d" + integrity sha512-pNsHDxbGORSvuSScqNJ+3Km6QAVqk8CfsCBIEoDgpqLrkD2f3QM4I7d1ozJJ172OmIcoUcerZaNWqtLkRXTV3A== + ramda@^0.24.1: version "0.24.1" resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.24.1.tgz#c3b7755197f35b8dc3502228262c4c91ddb6b857" @@ -17756,7 +18494,7 @@ readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@^2.0.4, readable string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.5.0, readable-stream@^3.6.0: +readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.5.0, readable-stream@^3.6.0, readable-stream@^3.6.2: version "3.6.2" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== @@ -17867,6 +18605,18 @@ redeyed@~2.1.0: dependencies: esprima "~4.0.0" +redis-errors@^1.0.0, redis-errors@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/redis-errors/-/redis-errors-1.2.0.tgz#eb62d2adb15e4eaf4610c04afe1529384250abad" + integrity sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w== + +redis-parser@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/redis-parser/-/redis-parser-3.0.0.tgz#b66d828cdcafe6b4b8a428a7def4c6bcac31c8b4" + integrity sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A== + dependencies: + redis-errors "^1.0.0" + regenerate@^1.2.1: version "1.4.2" resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" @@ -17904,14 +18654,14 @@ regexp-tree@^0.1.24: resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.27.tgz#2198f0ef54518ffa743fe74d983b56ffd631b6cd" integrity sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA== -regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb" - integrity sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA== +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" + integrity sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg== dependencies: call-bind "^1.0.2" define-properties "^1.2.0" - functions-have-names "^1.2.3" + set-function-name "^2.0.0" regexpu-core@^2.0.0: version "2.0.0" @@ -18030,10 +18780,10 @@ require-from-string@^2.0.0, require-from-string@^2.0.2: 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-in-the-middle@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/require-in-the-middle/-/require-in-the-middle-6.0.0.tgz#01cc6416286fb5e672d0fe031d996f8bc202509d" - integrity sha512-+dtWQ7l2lqQDxheaG3jjyN1QI37gEwvzACSgjYi4/C2y+ZTUMeRW8BIOm+9NBKvwaMBUSZfPXVOt1skB0vBkRw== +require-in-the-middle@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/require-in-the-middle/-/require-in-the-middle-7.2.0.tgz#b539de8f00955444dc8aed95e17c69b0a4f10fcf" + integrity sha512-3TLx5TGyAY6AOqLBoXmHkNql0HIf2RGbuMgCDT2WO/uGVAPJs6h7Kl+bN6TIZGd9bWhWPwnDnTHGtW8Iu77sdw== dependencies: debug "^4.1.1" module-details-from-path "^1.0.3" @@ -18074,11 +18824,6 @@ resolve-from@^4.0.0: 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.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f" - integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== - resolve-url@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" @@ -18091,16 +18836,7 @@ resolve@1.17.0: dependencies: path-parse "^1.0.6" -resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.22.1, resolve@^1.22.2, resolve@^1.8.1, resolve@~1.22.1: - version "1.22.4" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.4.tgz#1dc40df46554cdaf8948a486a10f6ba1e2026c34" - integrity sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg== - dependencies: - is-core-module "^2.13.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -resolve@^1.17.0: +resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.17.0, resolve@^1.22.1, resolve@^1.22.2, resolve@^1.8.1, resolve@~1.22.6: version "1.22.8" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== @@ -18110,11 +18846,11 @@ resolve@^1.17.0: supports-preserve-symlinks-flag "^1.0.0" resolve@^2.0.0-next.1: - version "2.0.0-next.4" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.4.tgz#3d37a113d6429f496ec4752d2a2e58efb1fd4660" - integrity sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ== + version "2.0.0-next.5" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.5.tgz#6b0ec3107e671e52b68cd068ef327173b90dc03c" + integrity sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA== dependencies: - is-core-module "^2.9.0" + is-core-module "^2.13.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" @@ -18163,13 +18899,6 @@ restore-cursor@^4.0.0: onetime "^5.1.0" signal-exit "^3.0.2" -resumer@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/resumer/-/resumer-0.0.0.tgz#f1e8f461e4064ba39e82af3cdc2a8c893d076759" - integrity sha512-Fn9X8rX8yYF4m81rZCK/5VmrmsSbqS/i3rDLl6ZZHAXgC2nTAx3dhwG8q8odP/RmdLa2YrybDJaAMg+X1ajY3w== - dependencies: - through "~2.3.4" - ret@~0.1.10: version "0.1.15" resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" @@ -18240,9 +18969,9 @@ rlp@^2.0.0, rlp@^2.2.1, rlp@^2.2.2, rlp@^2.2.3, rlp@^2.2.4, rlp@^2.2.5: bn.js "^5.2.0" rollup@^3.27.1: - version "3.28.1" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.28.1.tgz#fb44aa6d5e65c7e13fd5bcfff266d0c4ea9ba433" - integrity sha512-R9OMQmIHJm9znrU3m3cpE8uhN0fGdXiawME7aZIpQqvpS/85+Vt1Hq1/yVIcYfOmaQiHjvXkQAoJukvLpau6Yw== + version "3.29.4" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.29.4.tgz#4d70c0f9834146df8705bfb69a9a19c9e1109981" + integrity sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw== optionalDependencies: fsevents "~2.3.2" @@ -18284,13 +19013,13 @@ rxjs@^7.5.1, rxjs@^7.5.5: dependencies: tslib "^2.1.0" -safe-array-concat@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.0.tgz#2064223cba3c08d2ee05148eedbc563cd6d84060" - integrity sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ== +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" + integrity sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q== dependencies: call-bind "^1.0.2" - get-intrinsic "^1.2.0" + get-intrinsic "^1.2.1" has-symbols "^1.0.3" isarray "^2.0.5" @@ -18316,11 +19045,6 @@ safe-json-stringify@^1.2.0: resolved "https://registry.yarnpkg.com/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz#356e44bc98f1f93ce45df14bcd7c01cda86e0afd" integrity sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg== -safe-json-utils@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/safe-json-utils/-/safe-json-utils-1.1.1.tgz#0e883874467d95ab914c3f511096b89bfb3e63b1" - integrity sha512-SAJWGKDs50tAbiDXLf89PDwt9XYkWyANFWVzn4dTXl5QyI8t2o/bW5/OJl3lvc2WVU4MEpTo9Yz5NVFNsp+OJQ== - 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" @@ -18355,9 +19079,9 @@ safe-stable-stringify@^2.1.0, safe-stable-stringify@^2.3.1: integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== sass@^1.56.1: - version "1.66.1" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.66.1.tgz#04b51c4671e4650aa393740e66a4e58b44d055b1" - integrity sha512-50c+zTsZOJVgFfTgwwEzkjA3/QACgdNsKueWPyAR0mRINIvLAStVQBbPg14iuqEQ74NPDbXzJARJ/O4SI1zftA== + version "1.69.5" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.69.5.tgz#23e18d1c757a35f2e52cc81871060b9ad653dfde" + integrity sha512-qg2+UCJibLr2LCVOt3OlPhr/dqVHWOa9XtZf2OjbLs/T4VPSJ00udtgJxH3neXZm+QqX8B+3cU7RaLqp1iVfcQ== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" @@ -18537,6 +19261,25 @@ set-cookie-parser@^2.4.1: resolved "https://registry.yarnpkg.com/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz#131921e50f62ff1a66a461d7d62d7b21d5d15a51" integrity sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ== +set-function-length@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.1.1.tgz#4bc39fafb0307224a33e106a7d35ca1218d659ed" + integrity sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ== + dependencies: + define-data-property "^1.1.1" + get-intrinsic "^1.2.1" + gopd "^1.0.1" + has-property-descriptors "^1.0.0" + +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" + 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.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" @@ -18863,10 +19606,10 @@ sonic-boom@^2.2.1: dependencies: atomic-sleep "^1.0.0" -sonic-boom@^3.1.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-3.3.0.tgz#cffab6dafee3b2bcb88d08d589394198bee1838c" - integrity sha512-LYxp34KlZ1a2Jb8ZQgFCK3niIHzibdwtwNUWKg0qQRzsDoJ3Gfgkf8KdBTFU3SkejDEIlWwnSnpVdOZIhFMl/g== +sonic-boom@^3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-3.7.0.tgz#b4b7b8049a912986f4a92c51d4660b721b11f2f2" + integrity sha512-IudtNvSqA/ObjN97tfgNmOKyDOs4dNcg4cUUsHDebqsgb8wGBBwb31LIgShNO8fye0dFI52X1+tFoKKI6Rq1Gg== dependencies: atomic-sleep "^1.0.0" @@ -18977,9 +19720,9 @@ spdx-expression-parse@^3.0.0: spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.13" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz#7189a474c46f8d47c7b0da4b987bb45e908bd2d5" - integrity sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w== + 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== split-ca@^1.0.0: version "1.0.1" @@ -19023,9 +19766,9 @@ sprintf-js@~1.0.2: integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== sshpk@^1.7.0: - version "1.17.0" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5" - 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" @@ -19066,6 +19809,18 @@ stacktrace-parser@^0.1.10: dependencies: type-fest "^0.7.1" +standard-as-callback@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/standard-as-callback/-/standard-as-callback-2.1.0.tgz#8953fc05359868a77b5b9739a665c5977bb7df45" + integrity sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A== + +static-eval@2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/static-eval/-/static-eval-2.0.2.tgz#2d1759306b1befa688938454c546b7871f806a42" + integrity sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg== + dependencies: + escodegen "^1.8.1" + static-extend@^0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" @@ -19084,6 +19839,11 @@ statuses@2.0.1: resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== +std-env@^3.4.3: + version "3.5.0" + resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.5.0.tgz#83010c9e29bd99bf6f605df87c19012d82d63b97" + integrity sha512-JGUEaALvL0Mf6JCfYnJOTcobY+Nc7sG/TemDRBqCA0wEr4DER7zDchaaixTlmOxAjG1uRJmX82EQcxwTQTkqVA== + stdin-discarder@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/stdin-discarder/-/stdin-discarder-0.1.0.tgz#22b3e400393a8e28ebf53f9958f3880622efde21" @@ -19140,9 +19900,9 @@ streamsearch@^1.1.0: integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== streamx@^2.15.0: - version "2.15.1" - resolved "https://registry.yarnpkg.com/streamx/-/streamx-2.15.1.tgz#396ad286d8bc3eeef8f5cea3f029e81237c024c6" - integrity sha512-fQMzy2O/Q47rgwErk/eGeLu/roaFWV0jVsogDmrszM9uIw8L5OA+t+V93MgYlufNptfjmYR1tOMWhei/Eh7TQA== + version "2.15.5" + resolved "https://registry.yarnpkg.com/streamx/-/streamx-2.15.5.tgz#87bcef4dc7f0b883f9359671203344a4e004c7f1" + integrity sha512-9thPGMkKC2GctCzyCUjME3yR03x2xNo0GPKGkRw2UMYN+gqWa9uqpyNWhmsNCutU5zHmkUum0LsCRQTXUgUCAg== dependencies: fast-fifo "^1.1.0" queue-tick "^1.0.1" @@ -19216,32 +19976,32 @@ string-width@^5.0.0, string-width@^5.0.1, string-width@^5.1.2: emoji-regex "^9.2.2" strip-ansi "^7.0.1" -string.prototype.trim@^1.2.7, string.prototype.trim@~1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz#a68352740859f6893f14ce3ef1bb3037f7a90533" - integrity sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg== +string.prototype.trim@^1.2.8, 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" + integrity sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" -string.prototype.trimend@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" - integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ== +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" + integrity sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" -string.prototype.trimstart@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4" - integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA== +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" + integrity sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" string_decoder@^1.0.0, string_decoder@^1.1.1, string_decoder@^1.3.0: version "1.3.0" @@ -19516,19 +20276,19 @@ tabtab@3.0.2: untildify "^3.0.3" tailwindcss@^3.2.4: - version "3.3.3" - resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.3.3.tgz#90da807393a2859189e48e9e7000e6880a736daf" - integrity sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w== + version "3.3.5" + resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.3.5.tgz#22a59e2fbe0ecb6660809d9cc5f3976b077be3b8" + integrity sha512-5SEZU4J7pxZgSkv7FP1zY8i2TIAOooNZ1e/OGtxIEv6GltpoiXUqWvLy89+a10qYTB1N5Ifkuw9lqQkN9sscvA== dependencies: "@alloc/quick-lru" "^5.2.0" arg "^5.0.2" chokidar "^3.5.3" didyoumean "^1.2.2" dlv "^1.1.3" - fast-glob "^3.2.12" + fast-glob "^3.3.0" glob-parent "^6.0.2" is-glob "^4.0.3" - jiti "^1.18.2" + jiti "^1.19.1" lilconfig "^2.1.0" micromatch "^4.0.5" normalize-path "^3.0.0" @@ -19544,10 +20304,12 @@ tailwindcss@^3.2.4: sucrase "^3.32.0" tape@^4.6.3: - version "4.16.2" - resolved "https://registry.yarnpkg.com/tape/-/tape-4.16.2.tgz#7565e6af20426565557266e9dda7215869b297b6" - integrity sha512-TUChV+q0GxBBCEbfCYkGLkv8hDJYjMdSWdE0/Lr331sB389dsvFUHNV9ph5iQqKzt8Ss9drzcda/YeexclBFqg== + version "4.17.0" + resolved "https://registry.yarnpkg.com/tape/-/tape-4.17.0.tgz#de89f3671ddc5dad178d04c28dc6b0183f42268e" + 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" @@ -19557,12 +20319,11 @@ tape@^4.6.3: has "~1.0.3" inherits "~2.0.4" is-regex "~1.1.4" - minimist "~1.2.7" + minimist "~1.2.8" + mock-property "~1.0.0" object-inspect "~1.12.3" - resolve "~1.22.1" - resumer "~0.0.0" - string.prototype.trim "~1.2.7" - through "~2.3.8" + resolve "~1.22.6" + string.prototype.trim "~1.2.8" tar-fs@~1.16.3: version "1.16.3" @@ -19587,18 +20348,7 @@ tar-stream@^1.1.2: to-buffer "^1.1.1" xtend "^4.0.0" -tar-stream@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" - integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== - 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" - -tar-stream@^3.1.4: +tar-stream@^3.0.0, tar-stream@^3.1.4: version "3.1.6" resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-3.1.6.tgz#6520607b55a06f4a2e2e04db360ba7d338cc5bab" integrity sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg== @@ -19621,9 +20371,9 @@ tar@^4.0.2: yallist "^3.1.1" tar@^6.1.0, tar@^6.1.11: - version "6.1.15" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.15.tgz#c9738b0b98845a3b344d334b8fa3041aaba53a69" - integrity sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A== + version "6.2.0" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.0.tgz#b14ce49a79cb1cd23bc9b016302dea5474493f73" + integrity sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ== dependencies: chownr "^2.0.0" fs-minipass "^2.0.0" @@ -19717,9 +20467,9 @@ thread-stream@^0.15.1: real-require "^0.1.0" thread-stream@^2.0.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/thread-stream/-/thread-stream-2.4.0.tgz#5def29598d1d4171ba3bace7e023a71d87d99c07" - integrity sha512-xZYtOtmnA63zj04Q+F9bdEay5r47bvpo1CaNqsKi7TpoJHcotUez8Fkfo2RJWpW91lnnaApdpRbVwCWsy+ifcw== + version "2.4.1" + resolved "https://registry.yarnpkg.com/thread-stream/-/thread-stream-2.4.1.tgz#6d588b14f0546e59d3f306614f044bc01ce43351" + integrity sha512-d/Ex2iWd1whipbT681JmTINKw0ZwOUBZm7+Gjs64DHuX34mmw8vJL2bFAaNacaW72zYiTJxSHi5abUuOi5nsfg== dependencies: real-require "^0.2.0" @@ -19756,7 +20506,7 @@ through2@^2.0.0, through2@^2.0.3, through2@~2.0.0: readable-stream "~2.3.6" xtend "~4.0.1" -"through@>=2.2.7 <3", through@^2.3.6, through@^2.3.8, through@~2.3.4, through@~2.3.8: +"through@>=2.2.7 <3", through@^2.3.6, through@^2.3.8: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== @@ -19788,14 +20538,14 @@ timers-browserify@^2.0.4: setimmediate "^1.0.4" tiny-lru@^11.0.1: - version "11.0.1" - resolved "https://registry.yarnpkg.com/tiny-lru/-/tiny-lru-11.0.1.tgz#629d6ddd88bd03c0929722680167f1feadf576f2" - integrity sha512-iNgFugVuQgBKrqeO/mpiTTgmBsTP0WL6yeuLfLs/Ctf0pI/ixGqIRm8sDCwMcXGe9WWvt2sGXI5mNqZbValmJg== + version "11.2.5" + resolved "https://registry.yarnpkg.com/tiny-lru/-/tiny-lru-11.2.5.tgz#b138b99022aa26c567fa51a8dbf9e3e2959b2b30" + integrity sha512-JpqM0K33lG6iQGKiigcwuURAKZlq6rHXfrgeL4/I8/REoyJTGU+tEMszvT/oTRVHG2OiylhGDjqPp1jWMlr3bw== tinybench@^2.3.1: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-2.5.0.tgz#4711c99bbf6f3e986f67eb722fed9cddb3a68ba5" - integrity sha512-kRwSG8Zx4tjF9ZiyH4bhaebu+EDz1BOx9hOigYHlUW4xxI/wKIUQUqo018UlU4ar6ATPBsaMrdbKZ+tmPdohFA== + version "2.5.1" + resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-2.5.1.tgz#3408f6552125e53a5a48adee31261686fd71587e" + integrity sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg== tinypool@^0.3.0: version "0.3.1" @@ -20071,7 +20821,7 @@ tslib@1.14.1, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.5.0, tslib@^2.6.1: +tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.5.0, tslib@^2.6.1, 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== @@ -20132,7 +20882,14 @@ type-check@^0.4.0, type-check@~0.4.0: dependencies: prelude-ls "^1.2.1" -type-detect@^4.0.0, type-detect@^4.0.5: +type-check@~0.3.2: + version "0.3.2" + 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-detect@^4.0.0, type-detect@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== @@ -20264,7 +21021,7 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== -typescript@^4.9.3: +typescript@^4.2.3, typescript@^4.9.3: version "4.9.5" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== @@ -20302,19 +21059,19 @@ typical@^6.0.0: integrity sha512-+g3NEp7fJLe9DPa1TArHm9QAA7YciZmWnfAqEaFrBihQ7epOv9i99rjtgb6Iz0wh3WuQDjsCTDfgRoGnmHN81A== ua-parser-js@^1.0.35: - version "1.0.35" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.35.tgz#c4ef44343bc3db0a3cbefdf21822f1b1fc1ab011" - integrity sha512-fKnGuqmTBnIE+/KXSzCn4db8RTigUzw1AN0DmdU6hJovUTbYJKyqj+8Mt1c4VfRDnOVJnENmfYkIPZ946UrSAA== + version "1.0.37" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.37.tgz#b5dc7b163a5c1f0c510b08446aed4da92c46373f" + integrity sha512-bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ== uc.micro@^1.0.1, uc.micro@^1.0.5: version "1.0.6" resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== -ufo@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.3.0.tgz#c92f8ac209daff607c57bbd75029e190930a0019" - integrity sha512-bRn3CsoojyNStCZe0BG0Mt4Nr/4KF+rhFlnNXybgqt5pXHNFRlqinSoQaTrGyzE4X8aHplSb+TorH+COin9Yxw== +ufo@^1.3.0, ufo@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.3.1.tgz#e085842f4627c41d4c1b60ebea1f75cdab4ce86b" + integrity sha512-uY/99gMLIOlJPwATcMVYfqDSxUR9//AUcgZMzwfSTJPDKzA1S8mX4VLqa+fiAtveraQUBCz4FFcwVZBGbwBXIw== uid-safe@2.1.5: version "2.1.5" @@ -20363,17 +21120,43 @@ unc-path-regex@^0.1.2: resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" integrity sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg== +uncrypto@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/uncrypto/-/uncrypto-0.1.3.tgz#e1288d609226f2d02d8d69ee861fa20d8348ef2b" + integrity sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q== + +underscore@1.12.1: + version "1.12.1" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.12.1.tgz#7bb8cc9b3d397e201cf8553336d262544ead829e" + integrity sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw== + underscore@1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.9.1.tgz#06dce34a0e68a7babc29b365b8e74b8925203961" integrity sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg== +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.23.0" - resolved "https://registry.yarnpkg.com/undici/-/undici-5.23.0.tgz#e7bdb0ed42cebe7b7aca87ced53e6eaafb8f8ca0" - integrity sha512-1D7w+fvRsqlQ9GscLBwcAJinqcZGHUKjbOmXdlE/v8BvEGXjeWAax+341q44EuTcHXXnfyKNbKRq4Lg7OzhMmg== + version "5.27.2" + resolved "https://registry.yarnpkg.com/undici/-/undici-5.27.2.tgz#a270c563aea5b46cc0df2550523638c95c5d4411" + integrity sha512-iS857PdOEy/y3wlM3yRp+6SNQQ6xU0mmZcwRSriqk+et/cwWAtwmIGf6WkoDN2EK/AMdCO/dfXzIwi+rFMrjjQ== dependencies: - busboy "^1.6.0" + "@fastify/busboy" "^2.0.0" + +unenv@^1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/unenv/-/unenv-1.7.4.tgz#a0e5a78de2c7c3c4563c06ba9763c96c59db3333" + integrity sha512-fjYsXYi30It0YCQYqLOcT6fHfMXsBr2hw9XC7ycf8rTG7Xxpe3ZssiqUnD0khrjiZEmkBXWLwm42yCSCH46fMw== + dependencies: + consola "^3.2.3" + defu "^6.1.2" + mime "^3.0.0" + node-fetch-native "^1.4.0" + pathe "^1.1.1" unimport@^1.0.1: version "1.3.0" @@ -20410,9 +21193,9 @@ unique-string@^3.0.0: crypto-random-string "^4.0.0" universal-user-agent@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.0.tgz#3381f8503b251c0d9cd21bc1de939ec9df5480ee" - integrity sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w== + version "6.0.1" + resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.1.tgz#15f20f55da3c930c57bddbf1734c6654d5fd35aa" + integrity sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ== universalify@^0.1.0: version "0.1.2" @@ -20425,9 +21208,9 @@ universalify@^0.2.0: integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== universalify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" - 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== unix-dgram@2.x: version "2.0.6" @@ -20483,11 +21266,11 @@ unplugin-vue-components@^0.22.11: unplugin "^1.0.1" unplugin@^1.0.0, unplugin@^1.0.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/unplugin/-/unplugin-1.4.0.tgz#b771373aa1bc664f50a044ee8009bd3a7aa04d85" - integrity sha512-5x4eIEL6WgbzqGtF9UV8VEC/ehKptPXDS6L2b0mv4FRMkJxRtjaJfOWDd6a8+kYbqsjklix7yWP0N3SUepjXcg== + version "1.5.0" + resolved "https://registry.yarnpkg.com/unplugin/-/unplugin-1.5.0.tgz#8938ae84defe62afc7757df9ca05d27160f6c20c" + integrity sha512-9ZdRwbh/4gcm1JTOkp9lAkIDrtOyOxgHmY7cjuwI8L/2RTikMcVG25GsZwNAgRuap3iDw2jeq7eoqtAsz5rW3A== dependencies: - acorn "^8.9.0" + acorn "^8.10.0" chokidar "^3.5.3" webpack-sources "^3.2.3" webpack-virtual-modules "^0.5.0" @@ -20500,15 +21283,41 @@ unset-value@^1.0.0: has-value "^0.3.1" isobject "^3.0.0" +unstorage@^1.9.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/unstorage/-/unstorage-1.10.0.tgz#6ac8e24d1d61c5373ae6a84b7059d6e89a868c64" + integrity sha512-azLoAeUMi1d1U823lR+eipFJjBydDAXFXoDAu6R9YCxQbkHzpoWaahqZUSkFFSfQSUZiWCqH3GmT3KuzffbcCQ== + dependencies: + anymatch "^3.1.3" + chokidar "^3.5.3" + destr "^2.0.2" + h3 "^1.8.2" + ioredis "^5.3.2" + listhen "^1.5.5" + lru-cache "^10.0.2" + mri "^1.2.0" + node-fetch-native "^1.4.1" + ofetch "^1.3.3" + ufo "^1.3.1" + untildify@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/untildify/-/untildify-3.0.3.tgz#1e7b42b140bcfd922b22e70ca1265bfe3634c7c9" integrity sha512-iSk/J8efr8uPT/Z4eSUywnqyrQU7DSdMfdqK4iWEaUVVmcP5JcnpRqmVMwcwcnmI1ATFNgC5V90u09tBynNFKA== -update-browserslist-db@^1.0.11: - version "1.0.11" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940" - integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA== +untun@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/untun/-/untun-0.1.2.tgz#fa42a62ae24c1c5c6f3209692a2b0e1f573f1353" + integrity sha512-wLAMWvxfqyTiBODA1lg3IXHQtjggYLeTK7RnSfqtOXixWJ3bAa2kK/HHmOOg19upteqO3muLvN6O/icbyQY33Q== + dependencies: + citty "^0.1.3" + consola "^3.2.3" + pathe "^1.1.1" + +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" + integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== dependencies: escalade "^3.1.1" picocolors "^1.0.0" @@ -20547,6 +21356,11 @@ upper-case@^2.0.2: dependencies: tslib "^2.0.3" +uqr@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/uqr/-/uqr-0.1.2.tgz#5c6cd5dcff9581f9bb35b982cb89e2c483a41d7d" + integrity sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA== + uri-js@^4.2.2: version "4.4.1" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" @@ -20580,12 +21394,12 @@ url-set-query@^1.0.0: integrity sha512-3AChu4NiXquPfeckE5R5cGdiHCMWJx1dwCWOmWIL4KHAziJNOFIYJlpGFeKDvwLPHovZRCxK3cYlwzqI9Vp+Gg== url@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.1.tgz#26f90f615427eca1b9f4d6a28288c147e2302a32" - integrity sha512-rWS3H04/+mzzJkv0eZ7vEDGiQbgquI1fGfOad6zKvgYQi1SzMmhl7c/DdRGxhaWrVH6z0qWITo8rpnxK/RfEhA== + version "0.11.3" + 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.0" + qs "^6.11.2" urlpattern-polyfill@8.0.2, urlpattern-polyfill@^8.0.0: version "8.0.2" @@ -20632,7 +21446,7 @@ util.promisify@^1.0.0: object.getownpropertydescriptors "^2.1.6" safe-array-concat "^1.0.0" -util@^0.12.0, util@^0.12.4, util@^0.12.5: +util@^0.12.4, util@^0.12.5: version "0.12.5" resolved "https://registry.yarnpkg.com/util/-/util-0.12.5.tgz#5f17a6059b73db61a875668781a1c2b136bd6fbc" integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA== @@ -20653,7 +21467,7 @@ uuid@3.3.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== -uuid@9.0.0, uuid@^9.0.0: +uuid@9.0.0: version "9.0.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.0.tgz#592f550650024a38ceb0c562f2f6aa435761efb5" integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg== @@ -20668,6 +21482,11 @@ uuid@^8.3.2: 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.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" + integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== + 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" @@ -20688,10 +21507,10 @@ validate-npm-package-name@^4.0.0: dependencies: builtins "^5.0.0" -valtio@1.11.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/valtio/-/valtio-1.11.0.tgz#c029dcd17a0f99d2fbec933721fe64cfd32a31ed" - integrity sha512-65Yd0yU5qs86b5lN1eu/nzcTgQ9/6YnD6iO+DDaDbQLn1Zv2w12Gwk43WkPlUBxk5wL/6cD5YMFf7kj6HZ1Kpg== +valtio@1.11.2: + version "1.11.2" + resolved "https://registry.yarnpkg.com/valtio/-/valtio-1.11.2.tgz#b8049c02dfe65620635d23ebae9121a741bb6530" + integrity sha512-1XfIxnUXzyswPAPXo1P3Pdx2mq/pIqZICkWN60Hby0d9Iqb+MEIpqgYVlbflvHdrp2YR/q3jyKWRPJJ100yxaw== dependencies: proxy-compare "2.5.1" use-sync-external-store "1.2.0" @@ -20747,7 +21566,7 @@ vite-plugin-node-polyfills@0.15.0: node-stdlib-browser "^1.2.0" process "^0.11.10" -vite@4.5.0: +vite@4.5.0, "vite@^3.0.0 || ^4.0.0": version "4.5.0" resolved "https://registry.yarnpkg.com/vite/-/vite-4.5.0.tgz#ec406295b4167ac3bc23e26f9c8ff559287cff26" integrity sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw== @@ -20758,17 +21577,6 @@ vite@4.5.0: optionalDependencies: fsevents "~2.3.2" -"vite@^3.0.0 || ^4.0.0": - version "4.4.9" - resolved "https://registry.yarnpkg.com/vite/-/vite-4.4.9.tgz#1402423f1a2f8d66fd8d15e351127c7236d29d3d" - integrity sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA== - dependencies: - esbuild "^0.18.10" - postcss "^8.4.27" - rollup "^3.27.1" - optionalDependencies: - fsevents "~2.3.2" - vitest@^0.26.2: version "0.26.3" resolved "https://registry.yarnpkg.com/vitest/-/vitest-0.26.3.tgz#0e3abb7674e8af7b74519b40c04efe6e43c0b0a7" @@ -20795,7 +21603,7 @@ vm-browserify@^1.0.1: resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== -vue-demi@*, vue-demi@>=0.14.5: +vue-demi@*, vue-demi@>=0.14.5, vue-demi@>=0.14.6: version "0.14.6" resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.14.6.tgz#dc706582851dc1cdc17a0054f4fec2eb6df74c92" integrity sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w== @@ -20806,9 +21614,9 @@ vue-demi@^0.13.11: integrity sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A== vue-eslint-parser@^9.1.1, vue-eslint-parser@^9.3.1: - version "9.3.1" - resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-9.3.1.tgz#429955e041ae5371df5f9e37ebc29ba046496182" - integrity sha512-Clr85iD2XFZ3lJ52/ppmUDG/spxQu6+MAeHXjjyI4I1NUYZ9xmenQp4N0oaHJhrA8OOxltCVxMRfANGa70vU0g== + version "9.3.2" + resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-9.3.2.tgz#6f9638e55703f1c77875a19026347548d93fd499" + integrity sha512-q7tWyCVaV9f8iQyIA5Mkj/S6AoJ9KBN8IeUSf3XEmBrOtxOZnfTg5s4KClbZBCK3GtnT/+RyCLZyDHuZwTuBjg== dependencies: debug "^4.3.4" eslint-scope "^7.1.1" @@ -20819,14 +21627,13 @@ vue-eslint-parser@^9.1.1, vue-eslint-parser@^9.3.1: semver "^7.3.6" vue-final-modal@^4.3.0: - version "4.4.5" - resolved "https://registry.yarnpkg.com/vue-final-modal/-/vue-final-modal-4.4.5.tgz#d0d89b902a4d10ea54db95e2ad5d118c6e0da844" - integrity sha512-5O1twpVcOuvxc8fJppNYtdZ4M0GGeoSMcHZTFUoie3BmtzSx3EE6Lvz8YgnpQbDkxVMmRKEjhsSBywqqWfoQVw== + version "4.4.6" + resolved "https://registry.yarnpkg.com/vue-final-modal/-/vue-final-modal-4.4.6.tgz#d4783f9bdb0be6af7abf47a68298da46150ec115" + integrity sha512-YIYEQ4HhwPOBRTuV143QjgprAl2tY8598NdsfUX2H5Z212Lr5hoZnzEfct+Nclx+c4++NZOATXj2ddFJI4ahjw== dependencies: - "@vueuse/core" "^9.13.0" - "@vueuse/integrations" "^9.13.0" - focus-trap "^7.4.0" - vue "^3.3.4" + "@vueuse/core" "^10.5.0" + "@vueuse/integrations" "^10.5.0" + focus-trap "^7.5.4" vue-i18n-extract@^2.0.7: version "2.0.7" @@ -20840,14 +21647,13 @@ vue-i18n-extract@^2.0.7: js-yaml "^4.1.0" vue-i18n@9: - version "9.2.2" - resolved "https://registry.yarnpkg.com/vue-i18n/-/vue-i18n-9.2.2.tgz#aeb49d9424923c77e0d6441e3f21dafcecd0e666" - integrity sha512-yswpwtj89rTBhegUAv9Mu37LNznyu3NpyLQmozF3i1hYOhwpG8RjcjIFIIfnu+2MDZJGSZPXaKWvnQA71Yv9TQ== + version "9.6.5" + resolved "https://registry.yarnpkg.com/vue-i18n/-/vue-i18n-9.6.5.tgz#3a0bdc1e339ded633dc90aee640a7249efdfe3e5" + integrity sha512-dpUEjKHg7pEsaS7ZPPxp1CflaR7bGmsvZJEhnszHPKl9OTNyno5j/DvMtMSo41kpddq4felLA7GK2prjpnXVlw== dependencies: - "@intlify/core-base" "9.2.2" - "@intlify/shared" "9.2.2" - "@intlify/vue-devtools" "9.2.2" - "@vue/devtools-api" "^6.2.1" + "@intlify/core-base" "9.6.5" + "@intlify/shared" "9.6.5" + "@vue/devtools-api" "^6.5.0" vue-meta@3.0.0-alpha.8: version "3.0.0-alpha.8" @@ -20860,39 +21666,39 @@ vue-resize@^2.0.0-alpha.1: integrity sha512-7+iqOueLU7uc9NrMfrzbG8hwMqchfVfSzpVlCMeJQe4pyibqyoifDNbKTZvwxZKDvGkB+PdFeKvnGZMoEb8esg== vue-router@4: - version "4.2.4" - resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-4.2.4.tgz#382467a7e2923e6a85f015d081e1508052c191b9" - integrity sha512-9PISkmaCO02OzPVOMq2w82ilty6+xJmQrarYZDkjZBfl4RvYAlt4PKnEX21oW4KTtWfa9OuO/b3qk1Od3AEdCQ== + version "4.2.5" + resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-4.2.5.tgz#b9e3e08f1bd9ea363fdd173032620bc50cf0e98a" + integrity sha512-DIUpKcyg4+PTQKfFPX88UWhlagBEBEfJ5A8XDXRJLUnZOvcpMF8o/dnL90vpVkGaPbjvXazV/rC1qBKrZlFugw== dependencies: "@vue/devtools-api" "^6.5.0" vue-template-compiler@^2.7.14: - version "2.7.14" - resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz#4545b7dfb88090744c1577ae5ac3f964e61634b1" - integrity sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ== + version "2.7.15" + resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.7.15.tgz#ec88ba8ceafe0f17a528b89c57e01e02da92b0de" + integrity sha512-yQxjxMptBL7UAog00O8sANud99C6wJF+7kgbcwqkvA38vCGF7HWE66w0ZFnS/kX5gSoJr/PQ4/oS3Ne2pW37Og== dependencies: de-indent "^1.0.2" he "^1.2.0" vue-tsc@^1.0.13: - version "1.8.8" - resolved "https://registry.yarnpkg.com/vue-tsc/-/vue-tsc-1.8.8.tgz#67317693eb2ef6747e89e6d834eeb6d2deb8871d" - integrity sha512-bSydNFQsF7AMvwWsRXD7cBIXaNs/KSjvzWLymq/UtKE36697sboX4EccSHFVxvgdBlI1frYPc/VMKJNB7DFeDQ== + version "1.8.22" + resolved "https://registry.yarnpkg.com/vue-tsc/-/vue-tsc-1.8.22.tgz#421e73c38b50802a6716ca32ed87b5970c867323" + integrity sha512-j9P4kHtW6eEE08aS5McFZE/ivmipXy0JzrnTgbomfABMaVKx37kNBw//irL3+LlE3kOo63XpnRigyPC3w7+z+A== dependencies: - "@vue/language-core" "1.8.8" - "@vue/typescript" "1.8.8" - semver "^7.3.8" + "@volar/typescript" "~1.10.5" + "@vue/language-core" "1.8.22" + semver "^7.5.4" -vue@^3.2.45, vue@^3.3.4: - version "3.3.4" - resolved "https://registry.yarnpkg.com/vue/-/vue-3.3.4.tgz#8ed945d3873667df1d0fcf3b2463ada028f88bd6" - integrity sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw== +vue@^3.2.45: + version "3.3.8" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.3.8.tgz#532ff071af24f6a69e5ecc53a66858a9ee874ffc" + integrity sha512-5VSX/3DabBikOXMsxzlW8JyfeLKlG9mzqnWgLQLty88vdZL7ZJgrdgBOmrArwxiLtmS+lNNpPcBYqrhE6TQW5w== dependencies: - "@vue/compiler-dom" "3.3.4" - "@vue/compiler-sfc" "3.3.4" - "@vue/runtime-dom" "3.3.4" - "@vue/server-renderer" "3.3.4" - "@vue/shared" "3.3.4" + "@vue/compiler-dom" "3.3.8" + "@vue/compiler-sfc" "3.3.8" + "@vue/runtime-dom" "3.3.8" + "@vue/server-renderer" "3.3.8" + "@vue/shared" "3.3.8" w3c-xmlserializer@^4.0.0: version "4.0.0" @@ -20969,10 +21775,10 @@ web-worker@^1.0.0, web-worker@^1.2.0: resolved "https://registry.yarnpkg.com/web-worker/-/web-worker-1.2.0.tgz#5d85a04a7fbc1e7db58f66595d7a3ac7c9c180da" integrity sha512-PgF341avzqyx60neE9DD+XS26MMNMoUQRz9NOZwW32nPQrF6p77f1htcnjBSEV8BGMKZ16choqUG4hyI0Hx7mA== -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.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" @@ -20988,13 +21794,13 @@ web3-bzz@1.2.11: swarm-js "^0.1.40" underscore "1.9.1" -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.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-helpers@1.2.11: version "1.2.11" @@ -21005,16 +21811,16 @@ web3-core-helpers@1.2.11: web3-eth-iban "1.2.11" web3-utils "1.2.11" -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.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-method@1.2.11: version "1.2.11" @@ -21028,10 +21834,10 @@ web3-core-method@1.2.11: web3-core-subscriptions "1.2.11" web3-utils "1.2.11" -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.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" @@ -21042,16 +21848,16 @@ web3-core-promievent@1.2.11: dependencies: eventemitter3 "4.0.4" -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.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-requestmanager@1.2.11: version "1.2.11" @@ -21064,13 +21870,13 @@ web3-core-requestmanager@1.2.11: web3-providers-ipc "1.2.11" web3-providers-ws "1.2.11" -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.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-subscriptions@1.2.11: version "1.2.11" @@ -21081,18 +21887,18 @@ web3-core-subscriptions@1.2.11: underscore "1.9.1" web3-core-helpers "1.2.11" -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.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-core@1.2.11: version "1.2.11" @@ -21107,13 +21913,13 @@ web3-core@1.2.11: web3-core-requestmanager "1.2.11" web3-utils "1.2.11" -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.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-abi@1.2.11: version "1.2.11" @@ -21132,21 +21938,21 @@ web3-eth-abi@1.7.0: "@ethersproject/abi" "5.0.7" web3-utils "1.7.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.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-accounts@1.2.11: version "1.2.11" @@ -21165,19 +21971,19 @@ web3-eth-accounts@1.2.11: web3-core-method "1.2.11" web3-utils "1.2.11" -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.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-contract@1.2.11: version "1.2.11" @@ -21194,19 +22000,19 @@ web3-eth-contract@1.2.11: web3-eth-abi "1.2.11" web3-utils "1.2.11" -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.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-ens@1.2.11: version "1.2.11" @@ -21223,13 +22029,13 @@ web3-eth-ens@1.2.11: web3-eth-contract "1.2.11" web3-utils "1.2.11" -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.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-iban@1.2.11: version "1.2.11" @@ -21239,17 +22045,17 @@ web3-eth-iban@1.2.11: bn.js "^4.11.9" web3-utils "1.2.11" -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.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-personal@1.2.11: version "1.2.11" @@ -21263,23 +22069,23 @@ 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.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.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-eth@1.2.11: version "1.2.11" @@ -21300,14 +22106,14 @@ web3-eth@1.2.11: web3-net "1.2.11" web3-utils "1.2.11" -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.yarnpkg.com/web3-net/-/web3-net-1.10.3.tgz#9486c2fe51452cb958e11915db6f90bd6caa5482" + 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-net@1.2.11: version "1.2.11" @@ -21344,15 +22150,15 @@ web3-provider-engine@14.2.1: xhr "^2.2.0" xtend "^4.0.1" -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.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-http@1.2.11: version "1.2.11" @@ -21362,13 +22168,13 @@ web3-providers-http@1.2.11: web3-core-helpers "1.2.11" xhr2-cookies "1.1.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.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-ipc@1.2.11: version "1.2.11" @@ -21379,13 +22185,13 @@ web3-providers-ipc@1.2.11: underscore "1.9.1" web3-core-helpers "1.2.11" -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.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-providers-ws@1.2.11: @@ -21398,15 +22204,15 @@ web3-providers-ws@1.2.11: web3-core-helpers "1.2.11" websocket "^1.0.31" -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.yarnpkg.com/web3-shh/-/web3-shh-1.10.3.tgz#ee44f760598a65a290d611c443838aac854ee858" + 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-shh@1.2.11: version "1.2.11" @@ -21418,10 +22224,10 @@ web3-shh@1.2.11: web3-core-subscriptions "1.2.11" web3-net "1.2.11" -web3-utils@1.10.2, web3-utils@^1.0.0-beta.31, web3-utils@^1.3.0, web3-utils@^1.6.0: - 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.3, web3-utils@^1.0.0-beta.31, web3-utils@^1.3.0, web3-utils@^1.6.0: + version "1.10.3" + 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" bn.js "^5.2.1" @@ -21473,17 +22279,17 @@ web3@1.2.11: web3-utils "1.2.11" web3@^1.3.4, web3@^1.6.0: - 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" + 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" webcrypto-core@^1.7.7: version "1.7.7" @@ -21599,13 +22405,13 @@ which-module@^2.0.0: resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409" integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== -which-typed-array@^1.1.10, 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" - 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" @@ -21665,9 +22471,9 @@ windows-release@^5.0.1: execa "^5.1.1" winston-transport@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.5.0.tgz#6e7b0dd04d393171ed5e4e4905db265f7ab384fa" - integrity sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q== + version "4.6.0" + resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.6.0.tgz#f1c1a665ad1b366df72199e27892721832a19e1b" + integrity sha512-wbBA9PbPAHxKiygo7ub7BYRiKxms0tpfU2ljtWzb3SjRjv5yl6Ozuy/TkXf00HTAt+Uylo3gSkNwzc4ME0wiIg== dependencies: logform "^2.3.2" readable-stream "^3.6.0" @@ -21685,29 +22491,12 @@ winston@2.x: isstream "0.1.x" stack-trace "0.0.x" -winston@3.8.2: - version "3.8.2" - resolved "https://registry.yarnpkg.com/winston/-/winston-3.8.2.tgz#56e16b34022eb4cff2638196d9646d7430fdad50" - integrity sha512-MsE1gRx1m5jdTTO9Ld/vND4krP2To+lgDoMEHGGa4HIlAUyXJtfc7CxQcGXVyz2IBpw5hbFkj2b/AtUdQwyRew== - dependencies: - "@colors/colors" "1.5.0" - "@dabh/diagnostics" "^2.0.2" - async "^3.2.3" - is-stream "^2.0.0" - logform "^2.4.0" - one-time "^1.0.0" - readable-stream "^3.4.0" - safe-stable-stringify "^2.3.1" - stack-trace "0.0.x" - triple-beam "^1.3.0" - winston-transport "^4.5.0" - winston@^3.10.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/winston/-/winston-3.10.0.tgz#d033cb7bd3ced026fed13bf9d92c55b903116803" - integrity sha512-nT6SIDaE9B7ZRO0u3UvdrimG0HkB7dSTAgInQnNR2SOPJ4bvq5q79+pXLftKmP52lJGW15+H5MCK0nM9D3KB/g== + version "3.11.0" + resolved "https://registry.yarnpkg.com/winston/-/winston-3.11.0.tgz#2d50b0a695a2758bb1c95279f0a88e858163ed91" + integrity sha512-L3yR6/MzZAOl0DsysUXHVjOwv8mKZ71TrA/41EIduGpOOV5LQVodqN+QdQ6BS6PJ/RdIshZhq84P/fStEZkk7g== dependencies: - "@colors/colors" "1.5.0" + "@colors/colors" "^1.6.0" "@dabh/diagnostics" "^2.0.2" async "^3.2.3" is-stream "^2.0.0" @@ -21719,6 +22508,11 @@ winston@^3.10.0: triple-beam "^1.3.0" winston-transport "^4.5.0" +word-wrap@~1.2.3: + version "1.2.5" + 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.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" @@ -21827,7 +22621,7 @@ ws@7.4.6: resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== -ws@8.13.0, ws@^8.11.0, ws@^8.12.0: +ws@8.13.0: version "8.13.0" resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA== @@ -21853,6 +22647,11 @@ ws@^7.4.5, ws@^7.4.6, ws@^7.5.1: resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== +ws@^8.11.0, ws@^8.12.0: + version "8.14.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.14.2.tgz#6c249a806eb2db7a20d26d51e7709eab7b2e6c7f" + integrity sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g== + xdg-basedir@^5.0.1, xdg-basedir@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-5.1.0.tgz#1efba19425e73be1bc6f2a6ceb52a3d2c884c0c9" @@ -21977,9 +22776,9 @@ yaml@1.10.2, yaml@^1.10.0, yaml@^1.10.2, yaml@^1.7.2: integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== yaml@^2.1.1, yaml@^2.1.3: - version "2.3.2" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.2.tgz#f522db4313c671a0ca963a75670f1c12ea909144" - integrity sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg== + version "2.3.4" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.4.tgz#53fc1d514be80aabf386dc6001eb29bf3b7523b2" + integrity sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA== yargs-parser@20.2.4: version "20.2.4" @@ -22146,13 +22945,13 @@ yocto-queue@^1.0.0: resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251" integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g== -zip-stream@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-4.1.0.tgz#51dd326571544e36aa3f756430b313576dc8fc79" - integrity sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A== +zip-stream@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-5.0.1.tgz#cf3293bba121cad98be2ec7f05991d81d9f18134" + integrity sha512-UfZ0oa0C8LI58wJ+moL46BDIMgCQbnsb+2PoiJYtonhBsMh2bq1eRBVkvjfVsqbEHd9/EgKPUuL9saSSsec8OA== dependencies: - archiver-utils "^2.1.0" - compress-commons "^4.1.0" + archiver-utils "^4.0.1" + compress-commons "^5.0.1" readable-stream "^3.6.0" zkey-manager@^0.1.1: @@ -22165,3 +22964,8 @@ zkey-manager@^0.1.1: js-yaml "4.0.0" shelljs "^0.8.4" snarkjs "0.4.7" + +zod@^3.22.4: + version "3.22.4" + resolved "https://registry.yarnpkg.com/zod/-/zod-3.22.4.tgz#f31c3a9386f61b1f228af56faa9255e845cf3fff" + integrity sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg== From 0935f78f8da1e6c542bde9f92a06ac90f9245ddb Mon Sep 17 00:00:00 2001 From: yuetloo Date: Thu, 16 Nov 2023 21:46:31 -0500 Subject: [PATCH 076/338] ignore genProof output from e2e test --- .prettierignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.prettierignore b/.prettierignore index 66c22366f..f470d60db 100644 --- a/.prettierignore +++ b/.prettierignore @@ -21,6 +21,7 @@ vetur.config.js contracts/state.json contracts/tally.json contracts/proofs.json +contracts/proof_output # local env files .env From a36f5973340bd8e257cf5bbe9194dc80715d8913 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Thu, 16 Nov 2023 21:52:10 -0500 Subject: [PATCH 077/338] update zkeys download script --- .github/workflows/test-e2e.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test-e2e.yml b/.github/workflows/test-e2e.yml index 0e3f9df42..627e94fed 100644 --- a/.github/workflows/test-e2e.yml +++ b/.github/workflows/test-e2e.yml @@ -9,6 +9,7 @@ on: env: NODE_VERSION: 16.x CIRCUIT_TYPE: micro + ZKEYS_DOWNLOAD_SCRIPT: "download-6-8-2-3.sh" jobs: e2e-test: @@ -55,7 +56,7 @@ jobs: path: monorepo - name: Download micro zk circuit params run: | - $GITHUB_WORKSPACE/monorepo/.github/scripts/download-zkeys-${CIRCUIT_TYPE}.sh + $GITHUB_WORKSPACE/monorepo/.github/scripts/${ZKEYS_DOWNLOAD_SCRIPT} - name: Build Clrfund run: | # use https to avoid error: unable to connect to github.com From be3a9a50670fe2d0f78296f287f7f4468db09003 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Thu, 16 Nov 2023 22:02:16 -0500 Subject: [PATCH 078/338] fix invalid circuit type --- contracts/tests/deployer.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/tests/deployer.ts b/contracts/tests/deployer.ts index 5191ed418..6715ae596 100644 --- a/contracts/tests/deployer.ts +++ b/contracts/tests/deployer.ts @@ -292,7 +292,7 @@ describe('Clr fund deployer', () => { }) it('sets MACI parameters', async () => { - const newMaciParameters = MaciParameters.mock('prod') + const newMaciParameters = MaciParameters.mock('micro') const factoryAsCoordinator = factory.connect(coordinator) await factory.setCoordinator(coordinator.address, coordinatorPubKey) From 0ce2299926691f3dba56146654a78727a7f9e228 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Thu, 16 Nov 2023 23:14:09 -0500 Subject: [PATCH 079/338] fix error about maci-contracts module not found --- contracts/contracts/ClrFund.sol | 8 +- contracts/contracts/ClrFundDeployer.sol | 4 +- contracts/contracts/FundingRound.sol | 12 +- contracts/contracts/MACIFactory.sol | 18 +- contracts/contracts/PollFactoryCreator.sol | 2 +- contracts/contracts/VkRegistryCreator.sol | 2 +- contracts/hardhat.config.ts | 2 +- contracts/maci.d.ts | 2 +- contracts/package.json | 4 +- contracts/scripts/get-bytecode.ts | 4 +- contracts/utils/deployment.ts | 2 +- vue-app/src/api/abi.ts | 2 +- yarn.lock | 225 ++++++++++----------- 13 files changed, 143 insertions(+), 144 deletions(-) diff --git a/contracts/contracts/ClrFund.sol b/contracts/contracts/ClrFund.sol index f765bab53..45014b3cc 100644 --- a/contracts/contracts/ClrFund.sol +++ b/contracts/contracts/ClrFund.sol @@ -6,10 +6,10 @@ import '@openzeppelin/contracts/token/ERC20/ERC20.sol'; import '@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol'; import '@openzeppelin/contracts/utils/structs/EnumerableSet.sol'; -import {SignUpGatekeeper} from "maci-contracts/contracts/gatekeepers/SignUpGatekeeper.sol"; -import {InitialVoiceCreditProxy} from "maci-contracts/contracts/initialVoiceCreditProxy/InitialVoiceCreditProxy.sol"; -import {PollFactory} from 'maci-contracts/contracts/Poll.sol'; -import {Params} from 'maci-contracts/contracts/Params.sol'; +import {SignUpGatekeeper} from "@clrfund/maci-contracts/contracts/gatekeepers/SignUpGatekeeper.sol"; +import {InitialVoiceCreditProxy} from "@clrfund/maci-contracts/contracts/initialVoiceCreditProxy/InitialVoiceCreditProxy.sol"; +import {PollFactory} from '@clrfund/maci-contracts/contracts/Poll.sol'; +import {Params} from '@clrfund/maci-contracts/contracts/Params.sol'; import './MACIFactory.sol'; import './userRegistry/IUserRegistry.sol'; diff --git a/contracts/contracts/ClrFundDeployer.sol b/contracts/contracts/ClrFundDeployer.sol index 463dd7c50..06dfd31e6 100644 --- a/contracts/contracts/ClrFundDeployer.sol +++ b/contracts/contracts/ClrFundDeployer.sol @@ -5,8 +5,8 @@ pragma solidity 0.8.10; import './MACIFactory.sol'; import './ClrFund.sol'; import {CloneFactory} from './CloneFactory.sol'; -import {SignUpGatekeeper} from "maci-contracts/contracts/gatekeepers/SignUpGatekeeper.sol"; -import {InitialVoiceCreditProxy} from "maci-contracts/contracts/initialVoiceCreditProxy/InitialVoiceCreditProxy.sol"; +import {SignUpGatekeeper} from "@clrfund/maci-contracts/contracts/gatekeepers/SignUpGatekeeper.sol"; +import {InitialVoiceCreditProxy} from "@clrfund/maci-contracts/contracts/initialVoiceCreditProxy/InitialVoiceCreditProxy.sol"; contract ClrFundParams { struct Templates { diff --git a/contracts/contracts/FundingRound.sol b/contracts/contracts/FundingRound.sol index c55f9867a..33a6c9527 100644 --- a/contracts/contracts/FundingRound.sol +++ b/contracts/contracts/FundingRound.sol @@ -6,12 +6,12 @@ import '@openzeppelin/contracts/access/Ownable.sol'; import '@openzeppelin/contracts/token/ERC20/ERC20.sol'; import '@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol'; -import {DomainObjs} from 'maci-contracts/contracts/DomainObjs.sol'; -import {MACI} from 'maci-contracts/contracts/MACI.sol'; -import {Poll} from 'maci-contracts/contracts/Poll.sol'; -import {Tally} from 'maci-contracts/contracts/Tally.sol'; -import {SignUpGatekeeper} from "maci-contracts/contracts/gatekeepers/SignUpGatekeeper.sol"; -import {InitialVoiceCreditProxy} from "maci-contracts/contracts/initialVoiceCreditProxy/InitialVoiceCreditProxy.sol"; +import {DomainObjs} from '@clrfund/maci-contracts/contracts/DomainObjs.sol'; +import {MACI} from '@clrfund/maci-contracts/contracts/MACI.sol'; +import {Poll} from '@clrfund/maci-contracts/contracts/Poll.sol'; +import {Tally} from '@clrfund/maci-contracts/contracts/Tally.sol'; +import {SignUpGatekeeper} from "@clrfund/maci-contracts/contracts/gatekeepers/SignUpGatekeeper.sol"; +import {InitialVoiceCreditProxy} from "@clrfund/maci-contracts/contracts/initialVoiceCreditProxy/InitialVoiceCreditProxy.sol"; import './userRegistry/IUserRegistry.sol'; import './recipientRegistry/IRecipientRegistry.sol'; diff --git a/contracts/contracts/MACIFactory.sol b/contracts/contracts/MACIFactory.sol index a6b2d7381..8ffc30c5d 100644 --- a/contracts/contracts/MACIFactory.sol +++ b/contracts/contracts/MACIFactory.sol @@ -2,17 +2,17 @@ pragma solidity ^0.8.10; -import {MACI} from 'maci-contracts/contracts/MACI.sol'; -import {Poll, PollFactory} from 'maci-contracts/contracts/Poll.sol'; -import {SignUpGatekeeper} from 'maci-contracts/contracts/gatekeepers/SignUpGatekeeper.sol'; -import {InitialVoiceCreditProxy} from 'maci-contracts/contracts/initialVoiceCreditProxy/InitialVoiceCreditProxy.sol'; -import {TopupCredit} from 'maci-contracts/contracts/TopupCredit.sol'; -import {VkRegistry} from 'maci-contracts/contracts/VkRegistry.sol'; -import {SnarkCommon} from 'maci-contracts/contracts/crypto/SnarkCommon.sol'; +import {MACI} from '@clrfund/maci-contracts/contracts/MACI.sol'; +import {Poll, PollFactory} from '@clrfund/maci-contracts/contracts/Poll.sol'; +import {SignUpGatekeeper} from '@clrfund/maci-contracts/contracts/gatekeepers/SignUpGatekeeper.sol'; +import {InitialVoiceCreditProxy} from '@clrfund/maci-contracts/contracts/initialVoiceCreditProxy/InitialVoiceCreditProxy.sol'; +import {TopupCredit} from '@clrfund/maci-contracts/contracts/TopupCredit.sol'; +import {VkRegistry} from '@clrfund/maci-contracts/contracts/VkRegistry.sol'; +import {SnarkCommon} from '@clrfund/maci-contracts/contracts/crypto/SnarkCommon.sol'; import {Ownable} from '@openzeppelin/contracts/access/Ownable.sol'; -import {Params} from 'maci-contracts/contracts/Params.sol'; +import {Params} from '@clrfund/maci-contracts/contracts/Params.sol'; import {PollFactoryCreator} from './PollFactoryCreator.sol'; -import {IPubKey} from 'maci-contracts/contracts/DomainObjs.sol'; +import {IPubKey} from '@clrfund/maci-contracts/contracts/DomainObjs.sol'; contract MACIFactory is Ownable, Params, SnarkCommon, IPubKey { // Constants diff --git a/contracts/contracts/PollFactoryCreator.sol b/contracts/contracts/PollFactoryCreator.sol index 91923e304..24b8b0f9d 100644 --- a/contracts/contracts/PollFactoryCreator.sol +++ b/contracts/contracts/PollFactoryCreator.sol @@ -2,7 +2,7 @@ pragma solidity 0.8.10; -import {PollFactory} from 'maci-contracts/contracts/Poll.sol'; +import {PollFactory} from '@clrfund/maci-contracts/contracts/Poll.sol'; library PollFactoryCreator { function create() external returns (PollFactory pollFactory) { diff --git a/contracts/contracts/VkRegistryCreator.sol b/contracts/contracts/VkRegistryCreator.sol index 1e74242c8..ef43411c9 100644 --- a/contracts/contracts/VkRegistryCreator.sol +++ b/contracts/contracts/VkRegistryCreator.sol @@ -2,7 +2,7 @@ pragma solidity 0.8.10; -import {VkRegistry} from 'maci-contracts/contracts/VkRegistry.sol'; +import {VkRegistry} from '@clrfund/maci-contracts/contracts/VkRegistry.sol'; library VkRegistryCreator { function create() public returns (VkRegistry vkRegistry) { diff --git a/contracts/hardhat.config.ts b/contracts/hardhat.config.ts index 298841ef8..4aeff2110 100644 --- a/contracts/hardhat.config.ts +++ b/contracts/hardhat.config.ts @@ -181,7 +181,7 @@ task( const artifact = JSON.parse( fs .readFileSync( - `./node_modules/maci-contracts/artifacts/contracts/crypto/Hasher.sol/${contractName}.json` + `./node_modules/@clrfund/maci-contracts/artifacts/contracts/crypto/Hasher.sol/${contractName}.json` ) .toString() ) diff --git a/contracts/maci.d.ts b/contracts/maci.d.ts index ec588dadf..730c26386 100644 --- a/contracts/maci.d.ts +++ b/contracts/maci.d.ts @@ -1 +1 @@ -declare module 'maci-contracts' +declare module '@clrfund/maci-contracts' diff --git a/contracts/package.json b/contracts/package.json index 870856748..a30a7a920 100644 --- a/contracts/package.json +++ b/contracts/package.json @@ -22,14 +22,14 @@ "clean": "rm -rf cache && rm -rf build" }, "dependencies": { + "@clrfund/maci-contracts": "^1.1.7", "@openzeppelin/contracts": "4.9.0", "dotenv": "^8.2.0", - "maci-contracts": "npm:@clrfund/maci-contracts@^1.1.7", "solidity-rlp": "2.0.8" }, "devDependencies": { - "@clrfund/maci-circuits": "^1.1.7", "@clrfund/common": "^0.0.1", + "@clrfund/maci-circuits": "^1.1.7", "@clrfund/maci-cli": "^1.1.7", "@ethereum-waffle/mock-contract": "^3.4.4", "@kleros/gtcr-encoder": "^1.4.0", diff --git a/contracts/scripts/get-bytecode.ts b/contracts/scripts/get-bytecode.ts index 0e45b9adc..b800378a5 100644 --- a/contracts/scripts/get-bytecode.ts +++ b/contracts/scripts/get-bytecode.ts @@ -10,8 +10,8 @@ async function main() { let result: string if (poseidonT3Address && poseidonT6Address) { result = linkBytecode(artifact.deployedBytecode, { - 'maci-contracts/sol/Poseidon.sol:PoseidonT3': poseidonT3Address, - 'maci-contracts/sol/Poseidon.sol:PoseidonT6': poseidonT6Address, + '@clrfund/maci-contracts/sol/Poseidon.sol:PoseidonT3': poseidonT3Address, + '@clrfund/maci-contracts/sol/Poseidon.sol:PoseidonT6': poseidonT6Address, }) } else { result = artifact.deployedBytecode diff --git a/contracts/utils/deployment.ts b/contracts/utils/deployment.ts index d4a75e27a..d622c3cf3 100644 --- a/contracts/utils/deployment.ts +++ b/contracts/utils/deployment.ts @@ -75,7 +75,7 @@ type PoseidonName = 'PoseidonT3' | 'PoseidonT4' | 'PoseidonT5' | 'PoseidonT6' * read the artifact content and pass to the getContractFactory function * * NOTE: there are 2 copies of the Poseidon artifacts, the one in the build/contracts - * folder has the actual contract bytecode, the other one in the build/contracts/maci-contracts + * folder has the actual contract bytecode, the other one in the build/contracts/@clrfund/maci-contracts * only has the library interface. If the wrong bytecode is used to deploy the contract, * the hash functions will always return 0. * diff --git a/vue-app/src/api/abi.ts b/vue-app/src/api/abi.ts index 2006704a6..a31e2c0ab 100644 --- a/vue-app/src/api/abi.ts +++ b/vue-app/src/api/abi.ts @@ -2,7 +2,7 @@ import { abi as ERC20 } from '../../../contracts/build/contracts/@openzeppelin/c import { abi as FundingRoundFactory } from '../../../contracts/build/contracts/contracts/ClrFund.sol/ClrFund.json' import { abi as FundingRound } from '../../../contracts/build/contracts/contracts/FundingRound.sol/FundingRound.json' import { abi as MACIFactory } from '../../../contracts/build/contracts/contracts/MACIFactory.sol/MACIFactory.json' -import { abi as MACI } from '../../../contracts/build/contracts/maci-contracts/contracts/MACI.sol/MACI.json' +import { abi as MACI } from '../../../contracts/build/contracts/@clrfund/maci-contracts/contracts/MACI.sol/MACI.json' import { abi as UserRegistry } from '../../../contracts/build/contracts/contracts/userRegistry/IUserRegistry.sol/IUserRegistry.json' import { abi as BrightIdUserRegistry } from '../../../contracts/build/contracts/contracts/userRegistry/BrightIdUserRegistry.sol/BrightIdUserRegistry.json' import { abi as SnapshotUserRegistry } from '../../../contracts/build/contracts/contracts/userRegistry/SnapshotUserRegistry.sol/SnapshotUserRegistry.json' diff --git a/yarn.lock b/yarn.lock index 44fb31713..d825f089b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -660,7 +660,7 @@ xmlhttprequest "1.8.0" zkey-manager "^0.1.1" -"@clrfund/maci-contracts@^1.1.7", "maci-contracts@npm:@clrfund/maci-contracts@^1.1.7": +"@clrfund/maci-contracts@^1.1.7": version "1.1.7" resolved "https://registry.yarnpkg.com/@clrfund/maci-contracts/-/maci-contracts-1.1.7.tgz#8a35678cf76607c480ff164a70154c7bdc8b8c3c" integrity sha512-m68HH6KEP64WBWhJmUdiwk3kKSLfC+sIpE+vp4awBkCstFaEEgGQNEdikxKo2rFFSGpn7XPegb6oCeDXQvWxgg== @@ -2146,9 +2146,9 @@ integrity sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ== "@grpc/grpc-js@^1.7.1", "@grpc/grpc-js@^1.7.3": - version "1.9.10" - resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.9.10.tgz#d4eb0086662a3d05948312124a0212e71fc0cf0a" - integrity sha512-6W1NMW40R0fs4Tlv+Tx2+4J23IA/kV+ifnNaOcDAqDOBfbk3BTPuFmHVOxVQX0DEK9oD6KzKPyu2OiHW87tFpA== + version "1.9.11" + resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.9.11.tgz#7b21195c910a49c0bb5d0df21d28a30c4e174851" + integrity sha512-QDhMfbTROOXUhLHMroow8f3EHiCKUOh6UwxMP5S3EuXMnWMNSVIhatGZRwkpg9OUTYdZPsDUVH3cOAkWhGFUJw== dependencies: "@grpc/proto-loader" "^0.7.8" "@types/node" ">=12.12.47" @@ -2242,20 +2242,20 @@ source-map "0.6.1" yaml-eslint-parser "^0.3.2" -"@intlify/core-base@9.6.5": - version "9.6.5" - resolved "https://registry.yarnpkg.com/@intlify/core-base/-/core-base-9.6.5.tgz#af92cae122fb99e882b3d7f1433f682065a3e164" - integrity sha512-LzbGXiZkMWPIHnHI0g6q554S87Cmh2mmCmjytK/3pDQfjI84l+dgGoeQuKj02q7EbULRuUUgYVZVqAwEUawXGg== +"@intlify/core-base@9.7.0": + version "9.7.0" + resolved "https://registry.yarnpkg.com/@intlify/core-base/-/core-base-9.7.0.tgz#329f4225365187d9fbe7a3b5c5d8e897fa703b30" + integrity sha512-1tBnfnCI23jXqGW15cagCjn2GgD487VST1dMG8P5LRzrSfx+kUzqFyTrjMNIwgq1tVaF4HnDpFMUuyrzTLKphw== dependencies: - "@intlify/message-compiler" "9.6.5" - "@intlify/shared" "9.6.5" + "@intlify/message-compiler" "9.7.0" + "@intlify/shared" "9.7.0" -"@intlify/message-compiler@9.6.5": - version "9.6.5" - resolved "https://registry.yarnpkg.com/@intlify/message-compiler/-/message-compiler-9.6.5.tgz#3a33882497417c63b23b012731d60a485c8e5558" - integrity sha512-WeJ499thIj0p7JaIO1V3JaJbqdqfBykS5R8fElFs5hNeotHtPAMBs4IiA+8/KGFkAbjJusgFefCq6ajP7F7+4Q== +"@intlify/message-compiler@9.7.0": + version "9.7.0" + resolved "https://registry.yarnpkg.com/@intlify/message-compiler/-/message-compiler-9.7.0.tgz#6371127c5a2a4f50ec59728f85a7786e3478c931" + integrity sha512-/YdZCio2L2tCM5bZ2eMHbSEIQNPh1QqvZIOLI/yCVKXLscis7O0SsR2nmuU/DfCJ3iSeI8juw82C2wLvfsAeww== dependencies: - "@intlify/shared" "9.6.5" + "@intlify/shared" "9.7.0" source-map-js "^1.0.2" "@intlify/message-compiler@next": @@ -2271,10 +2271,10 @@ resolved "https://registry.yarnpkg.com/@intlify/shared/-/shared-9.4.1.tgz#bd0d221aaac476b6778a10ddcd0472f812c64e27" integrity sha512-A51elBmZWf1FS80inf/32diO9DeXoqg9GR9aUDHFcfHoNDuT46Q+fpPOdj8jiJnSHSBh8E1E+6qWRhAZXdK3Ng== -"@intlify/shared@9.6.5": - version "9.6.5" - resolved "https://registry.yarnpkg.com/@intlify/shared/-/shared-9.6.5.tgz#a81f384d804e99ceac55bb061c344f156bd96590" - integrity sha512-gD7Ey47Xi4h/t6P+S04ymMSoA3wVRxGqjxuIMglwRO8POki9h164Epu2N8wk/GHXM/hR6ZGcsx2HArCCENjqSQ== +"@intlify/shared@9.7.0": + version "9.7.0" + resolved "https://registry.yarnpkg.com/@intlify/shared/-/shared-9.7.0.tgz#96166a54b781997db92259772e9621d3f7dff9a5" + integrity sha512-PUkEuk//YKu4CHS5ah3mNa3XL/+TZj6rAY/6yYN+GCNFd2u+uWUkeuwE4Q6t8dydRWlErOePHHS0KyNoof/oBw== "@intlify/unplugin-vue-i18n@^0.8.1": version "0.8.2" @@ -4624,9 +4624,9 @@ form-data "^4.0.0" "@types/node@*", "@types/node@>=12.12.47", "@types/node@>=13.7.0": - version "20.9.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.9.0.tgz#bfcdc230583aeb891cf51e73cfdaacdd8deae298" - integrity sha512-nekiGu2NDb1BcVofVcEKMIwzlx4NjHlcjhoxxKBNLtz15Y1z7MYf549DFvkHSId02Ax6kGwWntIBPC3l/JZcmw== + version "20.9.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.9.1.tgz#9d578c610ce1e984adda087f685ace940954fe19" + integrity sha512-HhmzZh5LSJNS5O8jQKpJ/3ZcrrlG6L70hpGqMIAoM9YVD0YBRNWYsfwcXq8VnSjlNpCpgLzMXdiPo+dxcvSmiA== dependencies: undici-types "~5.26.4" @@ -5134,24 +5134,24 @@ dependencies: vue-demi "*" -"@walletconnect/core@2.10.4": - version "2.10.4" - resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-2.10.4.tgz#da9396b56f63806c165389cbf98d2373d36854df" - integrity sha512-MGdw5a4dIlQFPxVHEw2neIpHPAw3gtrsJYyUqm6rI+1c1SfmZyOPCaYTr6zPU2cnoWQUjv2ePMLeO/JKy3Yh5g== +"@walletconnect/core@2.10.5": + version "2.10.5" + resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-2.10.5.tgz#d61706c6459d9baaef05e83907df8cab82a03251" + integrity sha512-QnGHkA05KzJrtqExPqXm/TsstM1uTDI8tQT0x86/DuR6LdiYEntzSpVjnv7kKK6Mo9UxlXfud431dNRfOW5uJg== dependencies: "@walletconnect/heartbeat" "1.2.1" "@walletconnect/jsonrpc-provider" "1.0.13" "@walletconnect/jsonrpc-types" "1.0.3" "@walletconnect/jsonrpc-utils" "1.0.8" - "@walletconnect/jsonrpc-ws-connection" "1.0.13" - "@walletconnect/keyvaluestorage" "^1.0.2" + "@walletconnect/jsonrpc-ws-connection" "1.0.14" + "@walletconnect/keyvaluestorage" "^1.1.1" "@walletconnect/logger" "^2.0.1" "@walletconnect/relay-api" "^1.0.9" "@walletconnect/relay-auth" "^1.0.4" "@walletconnect/safe-json" "^1.0.2" "@walletconnect/time" "^1.0.2" - "@walletconnect/types" "2.10.4" - "@walletconnect/utils" "2.10.4" + "@walletconnect/types" "2.10.5" + "@walletconnect/utils" "2.10.5" events "^3.3.0" lodash.isequal "4.5.0" uint8arrays "^3.1.0" @@ -5164,18 +5164,19 @@ tslib "1.14.1" "@walletconnect/ethereum-provider@^2.9.0": - version "2.10.4" - resolved "https://registry.yarnpkg.com/@walletconnect/ethereum-provider/-/ethereum-provider-2.10.4.tgz#6123c4418ab8ff2a787ea6b70d40493dace992d6" - integrity sha512-t8Utp3GOk4p1X//tRgLDdTh/+nmb5SwvmrMpfHzcDvYjetqtTWfZcXt2xj7DOsnvwaxi8MPf+0FqlTiZnrnNWQ== + version "2.10.5" + resolved "https://registry.yarnpkg.com/@walletconnect/ethereum-provider/-/ethereum-provider-2.10.5.tgz#a14ede16a751f115f8a0d050736155c8654835d5" + integrity sha512-Pihi2M03cRkWEiGetRUiO2A506YTj/Bbbxp+Ct7t5N5SccoeuhrzsEt30pA7I0XAiOnAeKp79OKmXHRhXfRmhg== dependencies: "@walletconnect/jsonrpc-http-connection" "^1.0.7" "@walletconnect/jsonrpc-provider" "^1.0.13" "@walletconnect/jsonrpc-types" "^1.0.3" "@walletconnect/jsonrpc-utils" "^1.0.8" - "@walletconnect/sign-client" "2.10.4" - "@walletconnect/types" "2.10.4" - "@walletconnect/universal-provider" "2.10.4" - "@walletconnect/utils" "2.10.4" + "@walletconnect/modal" "^2.4.3" + "@walletconnect/sign-client" "2.10.5" + "@walletconnect/types" "2.10.5" + "@walletconnect/universal-provider" "2.10.5" + "@walletconnect/utils" "2.10.5" events "^3.3.0" "@walletconnect/events@^1.0.1": @@ -5231,21 +5232,20 @@ "@walletconnect/jsonrpc-types" "^1.0.3" tslib "1.14.1" -"@walletconnect/jsonrpc-ws-connection@1.0.13": - version "1.0.13" - resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-ws-connection/-/jsonrpc-ws-connection-1.0.13.tgz#23b0cdd899801bfbb44a6556936ec2b93ef2adf4" - integrity sha512-mfOM7uFH4lGtQxG+XklYuFBj6dwVvseTt5/ahOkkmpcAEgz2umuzu7fTR+h5EmjQBdrmYyEBOWADbeaFNxdySg== +"@walletconnect/jsonrpc-ws-connection@1.0.14": + version "1.0.14" + resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-ws-connection/-/jsonrpc-ws-connection-1.0.14.tgz#eec700e74766c7887de2bd76c91a0206628732aa" + integrity sha512-Jsl6fC55AYcbkNVkwNM6Jo+ufsuCQRqViOQ8ZBPH9pRREHH9welbBiszuTLqEJiQcO/6XfFDl6bzCJIkrEi8XA== dependencies: "@walletconnect/jsonrpc-utils" "^1.0.6" "@walletconnect/safe-json" "^1.0.2" events "^3.3.0" - tslib "1.14.1" ws "^7.5.1" -"@walletconnect/keyvaluestorage@^1.0.2": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@walletconnect/keyvaluestorage/-/keyvaluestorage-1.1.0.tgz#782ad09af71e5241147fd7479f8814bd8ab8bb38" - integrity sha512-CjDBs1WmLGstYRoxWx9oAskTKj1deu7gvPycxZo2jYMa85hAYe762AITKWW1i2OJ8y9+5WJTGDAy3inVl8pjtw== +"@walletconnect/keyvaluestorage@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@walletconnect/keyvaluestorage/-/keyvaluestorage-1.1.1.tgz#dd2caddabfbaf80f6b8993a0704d8b83115a1842" + integrity sha512-V7ZQq2+mSxAq7MrRqDxanTzu2RcElfK1PfNYiaVnJgJ7Q7G7hTVwF8voIBx92qsRyGHZihrwNPHuZd1aKkd0rA== dependencies: "@walletconnect/safe-json" "^1.0.1" idb-keyval "^6.2.1" @@ -5276,7 +5276,7 @@ motion "10.16.2" qrcode "1.5.3" -"@walletconnect/modal@^2.6.0": +"@walletconnect/modal@^2.4.3", "@walletconnect/modal@^2.6.0": version "2.6.2" resolved "https://registry.yarnpkg.com/@walletconnect/modal/-/modal-2.6.2.tgz#4b534a836f5039eeb3268b80be7217a94dd12651" integrity sha512-eFopgKi8AjKf/0U4SemvcYw9zlLpx9njVN8sf6DAkowC2Md0gPU/UNEbH1Wwj407pEKnEds98pKWib1NN1ACoA== @@ -5311,19 +5311,19 @@ dependencies: tslib "1.14.1" -"@walletconnect/sign-client@2.10.4": - version "2.10.4" - resolved "https://registry.yarnpkg.com/@walletconnect/sign-client/-/sign-client-2.10.4.tgz#4e3b14ebe900472874f4cae5f53c74a6077c85da" - integrity sha512-C5VHkK59/DQNrJS91UXLn5OSr0drXHkKjajhl2a9hb3h6kxuSdlWbyC0yRPKT1sD0fQho8+EWZHBiV063yBePw== +"@walletconnect/sign-client@2.10.5": + version "2.10.5" + resolved "https://registry.yarnpkg.com/@walletconnect/sign-client/-/sign-client-2.10.5.tgz#f97f0fed544179a3303941f3bebd13ede3a736ed" + integrity sha512-HEYsoeGC6fGplQy0NIZSRNHgOwZwQ892UWG1Ahkcasf2R35QaBgnTVQkSCisl1PAAOKXZG7yB1YDoAAZBF+g5Q== dependencies: - "@walletconnect/core" "2.10.4" + "@walletconnect/core" "2.10.5" "@walletconnect/events" "^1.0.1" "@walletconnect/heartbeat" "1.2.1" "@walletconnect/jsonrpc-utils" "1.0.8" "@walletconnect/logger" "^2.0.1" "@walletconnect/time" "^1.0.2" - "@walletconnect/types" "2.10.4" - "@walletconnect/utils" "2.10.4" + "@walletconnect/types" "2.10.5" + "@walletconnect/utils" "2.10.5" events "^3.3.0" "@walletconnect/time@^1.0.2": @@ -5333,37 +5333,37 @@ dependencies: tslib "1.14.1" -"@walletconnect/types@2.10.4": - version "2.10.4" - resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-2.10.4.tgz#23f6e4bd785671812dc6ea96848a6bd7ea78f038" - integrity sha512-eQpOElyiwJp3tepuOS3TS9dXTl9jVVlrC3iVA8bytnbLagkAUxmiv/s7PyDFx+ndXwQVh8PFBkWg1oxGwgCSBA== +"@walletconnect/types@2.10.5": + version "2.10.5" + resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-2.10.5.tgz#bf4e692cf736b6e71423f96a106d7a96089245de" + integrity sha512-N8xaN7/Kob93rKxKDaT6oy6symgIkAwyLqq0/dLJEhXfv7S/gyNvDka4SosjVVTc4oTvE1+OmxNIR8pB1DuwJw== dependencies: "@walletconnect/events" "^1.0.1" "@walletconnect/heartbeat" "1.2.1" "@walletconnect/jsonrpc-types" "1.0.3" - "@walletconnect/keyvaluestorage" "^1.0.2" + "@walletconnect/keyvaluestorage" "^1.1.1" "@walletconnect/logger" "^2.0.1" events "^3.3.0" -"@walletconnect/universal-provider@2.10.4": - version "2.10.4" - resolved "https://registry.yarnpkg.com/@walletconnect/universal-provider/-/universal-provider-2.10.4.tgz#601604d11320531594dab928ef2af88b19dda74c" - integrity sha512-f9uhRQX9iExoMz1V4JT13OpqvpoJYhE9GLvuwNWposhDS35vVKfQfmPxQCcsdw7IpMr+UdpA8K2ShPh8g9wT4g== +"@walletconnect/universal-provider@2.10.5": + version "2.10.5" + resolved "https://registry.yarnpkg.com/@walletconnect/universal-provider/-/universal-provider-2.10.5.tgz#b08965a9306a30775796cc0cc384f2dfc9fde512" + integrity sha512-sQOvjrGF6za7+6zv7KI9eQz2gzRbS19j7U1z+JwIWdn4VBJmriaTjVHDz/R1liwKcS4sUiUthDC6WmQvjukjZQ== dependencies: "@walletconnect/jsonrpc-http-connection" "^1.0.7" "@walletconnect/jsonrpc-provider" "1.0.13" "@walletconnect/jsonrpc-types" "^1.0.2" "@walletconnect/jsonrpc-utils" "^1.0.7" "@walletconnect/logger" "^2.0.1" - "@walletconnect/sign-client" "2.10.4" - "@walletconnect/types" "2.10.4" - "@walletconnect/utils" "2.10.4" + "@walletconnect/sign-client" "2.10.5" + "@walletconnect/types" "2.10.5" + "@walletconnect/utils" "2.10.5" events "^3.3.0" -"@walletconnect/utils@2.10.4": - version "2.10.4" - resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-2.10.4.tgz#5f17938e7ea481541ec2dbae0df5cd494c72523f" - integrity sha512-XbrKgnQ0hC9DC9wjFb468MEYMoJxnCVmOj2gi01DA4FSr8fJi7wwNRUnlnZzLWrUWrHuaPReYe4PgBAgIv363g== +"@walletconnect/utils@2.10.5": + version "2.10.5" + resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-2.10.5.tgz#8c8ef90c9e2b59886aae002ab8cbbdb35da1df9a" + integrity sha512-3yeclD9/AlPEIHBqBVzrHUO/KRAEIXVK0ViIQ5oUH+zT3TpdsDGDiW1Z0TsAQ1EiYoiiz8dOQzd80a3eZVwnrg== dependencies: "@stablelib/chacha20poly1305" "1.0.1" "@stablelib/hkdf" "1.0.1" @@ -5373,7 +5373,7 @@ "@walletconnect/relay-api" "^1.0.9" "@walletconnect/safe-json" "^1.0.2" "@walletconnect/time" "^1.0.2" - "@walletconnect/types" "2.10.4" + "@walletconnect/types" "2.10.5" "@walletconnect/window-getters" "^1.0.1" "@walletconnect/window-metadata" "^1.0.1" detect-browser "5.3.0" @@ -5646,7 +5646,7 @@ acorn@^7.1.1, acorn@^7.4.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.1.0, acorn@^8.10.0, acorn@^8.4.1, acorn@^8.6.0, acorn@^8.8.1, acorn@^8.9.0: +acorn@^8.1.0, acorn@^8.10.0, acorn@^8.11.2, acorn@^8.4.1, acorn@^8.6.0, acorn@^8.8.1, acorn@^8.9.0: version "8.11.2" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.2.tgz#ca0d78b51895be5390a5903c5b3bdcdaf78ae40b" integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w== @@ -7397,7 +7397,6 @@ buffer-from@^1.0.0: integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== "buffer-polyfill@npm:buffer@^6.0.3", buffer@^6.0.1, buffer@^6.0.3: - name buffer-polyfill version "6.0.3" resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== @@ -8417,9 +8416,9 @@ common-tags@1.8.2: integrity sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA== component-emitter@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" - integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== + version "1.3.1" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.1.tgz#ef1d5796f7d93f135ee6fb684340b26403c97d17" + integrity sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ== compress-commons@^5.0.1: version "5.0.1" @@ -9541,9 +9540,9 @@ electron-fetch@^1.7.2: encoding "^0.1.13" electron-to-chromium@^1.3.47, electron-to-chromium@^1.4.535: - version "1.4.583" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.583.tgz#7b0ac4f36388da4b5485788adb92cd7dd0abffc4" - integrity sha512-93y1gcONABZ7uqYe/JWDVQP/Pj/sQSunF0HVAPdlg/pfBnOyBMLlQUxWvkqcljJg1+W6cjvPuYD+r1Th9Tn8mA== + version "1.4.587" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.587.tgz#d8b864f21338b60798d447a3d83b90753f701d07" + integrity sha512-RyJX0q/zOkAoefZhB9XHghGeATVP0Q3mwA253XD/zj2OeXc+JZB9pCaEv6R578JUYaWM9PRhye0kXvd/V1cQ3Q== elegant-spinner@^1.0.1: version "1.0.1" @@ -12068,9 +12067,9 @@ globby@^13.0.0, globby@^13.1.1: merge2 "^1.4.1" slash "^4.0.0" -"gluegun@https://github.com/edgeandnode/gluegun#v4.3.1-pin-colors-dep": +"gluegun@git+https://github.com/edgeandnode/gluegun.git#v4.3.1-pin-colors-dep": version "4.3.1" - resolved "https://github.com/edgeandnode/gluegun#b34b9003d7bf556836da41b57ef36eb21570620a" + resolved "git+https://github.com/edgeandnode/gluegun.git#b34b9003d7bf556836da41b57ef36eb21570620a" dependencies: apisauce "^1.0.1" app-module-path "^2.2.0" @@ -12364,9 +12363,9 @@ hardhat-contract-sizer@^2.10.0, hardhat-contract-sizer@^2.6.1: strip-ansi "^6.0.0" hardhat@^2.12.5, hardhat@^2.12.6: - version "2.19.0" - resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.19.0.tgz#1e08658863550ba351788ea128e544ff80584a31" - integrity sha512-kMpwovOEfrFRQXEopCP+JTcKVwSYVj8rnXE0LynxDqnh06yvyKCQknmXL6IVYTHQL6Csysc/yNbCHQbjSeJGpA== + version "2.19.1" + resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.19.1.tgz#5e09e8070ecfc6109ba9d3a4a117ec2b0643032a" + integrity sha512-bsWa63g1GB78ZyMN08WLhFElLPA+J+pShuKD1BFO2+88g3l+BL3R07vj9deIi9dMbssxgE714Gof1dBEDGqnCw== dependencies: "@ethersproject/abi" "^5.1.2" "@metamask/eth-sig-util" "^4.0.0" @@ -12838,9 +12837,9 @@ ieee754@^1.1.13, ieee754@^1.2.1: integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== ignore@^5.2.0, ignore@^5.2.4: - version "5.2.4" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" - 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" @@ -17678,9 +17677,9 @@ pino@7.11.0: thread-stream "^0.15.1" pino@^8.5.0: - version "8.16.1" - resolved "https://registry.yarnpkg.com/pino/-/pino-8.16.1.tgz#dcaf82764b1a27f24101317cdd6453e96290f1d9" - integrity sha512-3bKsVhBmgPjGV9pyn4fO/8RtoVDR8ssW1ev819FsRXlRNgW8gR/9Kx+gCK4UPWd4JjrRDLWpzd/pb1AyWm3MGA== + version "8.16.2" + resolved "https://registry.yarnpkg.com/pino/-/pino-8.16.2.tgz#7a906f2d9a8c5b4c57412c9ca95d6820bd2090cd" + integrity sha512-2advCDGVEvkKu9TTVSa/kWW7Z3htI/sBKEZpqiHk6ive0i/7f5b1rsU8jn0aimxqfnSz5bj/nOYkwhBUn5xxvg== dependencies: atomic-sleep "^1.0.0" fast-redact "^3.1.1" @@ -19112,9 +19111,9 @@ scuid@^1.1.0: integrity sha512-MuCAyrGZcTLfQoH2XoBlQ8C6bzwN88XT/0slOGz0pn8+gIP85BOAfYa44ZXQUTOwRwPU0QvgU+V+OSajl/59Xg== scule@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/scule/-/scule-1.0.0.tgz#895e6f4ba887e78d8b9b4111e23ae84fef82376d" - integrity sha512-4AsO/FrViE/iDNEPaAQlb77tf0csuq27EsVpy6ett584EcRTp6pTDLoGWVxCD77y5iU5FauOvhsI4o1APwPoSQ== + version "1.1.0" + resolved "https://registry.yarnpkg.com/scule/-/scule-1.1.0.tgz#cbc109256b4aa59fc8074151284cb8cb103531eb" + integrity sha512-vRUjqhyM/YWYzT+jsMk6tnl3NkY4A4soJ8uyh3O6Um+JXEQL9ozUCe7pqrxn3CSKokw0hw3nFStfskzpgYwR0g== secp256k1@^4.0.1: version "4.0.3" @@ -21069,9 +21068,9 @@ uc.micro@^1.0.1, uc.micro@^1.0.5: integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== ufo@^1.3.0, ufo@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.3.1.tgz#e085842f4627c41d4c1b60ebea1f75cdab4ce86b" - integrity sha512-uY/99gMLIOlJPwATcMVYfqDSxUR9//AUcgZMzwfSTJPDKzA1S8mX4VLqa+fiAtveraQUBCz4FFcwVZBGbwBXIw== + version "1.3.2" + resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.3.2.tgz#c7d719d0628a1c80c006d2240e0d169f6e3c0496" + integrity sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA== uid-safe@2.1.5: version "2.1.5" @@ -21266,14 +21265,14 @@ unplugin-vue-components@^0.22.11: unplugin "^1.0.1" unplugin@^1.0.0, unplugin@^1.0.1: - version "1.5.0" - resolved "https://registry.yarnpkg.com/unplugin/-/unplugin-1.5.0.tgz#8938ae84defe62afc7757df9ca05d27160f6c20c" - integrity sha512-9ZdRwbh/4gcm1JTOkp9lAkIDrtOyOxgHmY7cjuwI8L/2RTikMcVG25GsZwNAgRuap3iDw2jeq7eoqtAsz5rW3A== + version "1.5.1" + resolved "https://registry.yarnpkg.com/unplugin/-/unplugin-1.5.1.tgz#806688376fa3dcca4d2fa2c5d27cf6cd0370fbef" + integrity sha512-0QkvG13z6RD+1L1FoibQqnvTwVBXvS4XSPwAyinVgoOCl2jAgwzdUKmEj05o4Lt8xwQI85Hb6mSyYkcAGwZPew== dependencies: - acorn "^8.10.0" + acorn "^8.11.2" chokidar "^3.5.3" webpack-sources "^3.2.3" - webpack-virtual-modules "^0.5.0" + webpack-virtual-modules "^0.6.0" unset-value@^1.0.0: version "1.0.0" @@ -21284,9 +21283,9 @@ unset-value@^1.0.0: isobject "^3.0.0" unstorage@^1.9.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/unstorage/-/unstorage-1.10.0.tgz#6ac8e24d1d61c5373ae6a84b7059d6e89a868c64" - integrity sha512-azLoAeUMi1d1U823lR+eipFJjBydDAXFXoDAu6R9YCxQbkHzpoWaahqZUSkFFSfQSUZiWCqH3GmT3KuzffbcCQ== + version "1.10.1" + resolved "https://registry.yarnpkg.com/unstorage/-/unstorage-1.10.1.tgz#bf8cc00a406e40a6293e893da9807057d95875b0" + integrity sha512-rWQvLRfZNBpF+x8D3/gda5nUCQL2PgXy2jNG4U7/Rc9BGEv9+CAJd0YyGCROUBKs9v49Hg8huw3aih5Bf5TAVw== dependencies: anymatch "^3.1.3" chokidar "^3.5.3" @@ -21647,12 +21646,12 @@ vue-i18n-extract@^2.0.7: js-yaml "^4.1.0" vue-i18n@9: - version "9.6.5" - resolved "https://registry.yarnpkg.com/vue-i18n/-/vue-i18n-9.6.5.tgz#3a0bdc1e339ded633dc90aee640a7249efdfe3e5" - integrity sha512-dpUEjKHg7pEsaS7ZPPxp1CflaR7bGmsvZJEhnszHPKl9OTNyno5j/DvMtMSo41kpddq4felLA7GK2prjpnXVlw== + version "9.7.0" + resolved "https://registry.yarnpkg.com/vue-i18n/-/vue-i18n-9.7.0.tgz#c88592ade72c651d6879895244d348f2892c5646" + integrity sha512-8Z8kSz9U2juzuAf+6mjW1HTd5pIlYuFJZkC+HvYOglFdpzwc2rTUGjxKwN8xGdtGur1MFnyJ44TSr+TksJtY8A== dependencies: - "@intlify/core-base" "9.6.5" - "@intlify/shared" "9.6.5" + "@intlify/core-base" "9.7.0" + "@intlify/shared" "9.7.0" "@vue/devtools-api" "^6.5.0" vue-meta@3.0.0-alpha.8: @@ -22317,10 +22316,10 @@ webpack-sources@^3.2.3: resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== -webpack-virtual-modules@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/webpack-virtual-modules/-/webpack-virtual-modules-0.5.0.tgz#362f14738a56dae107937ab98ea7062e8bdd3b6c" - integrity sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw== +webpack-virtual-modules@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/webpack-virtual-modules/-/webpack-virtual-modules-0.6.0.tgz#95eb2cb160a8cb84a73bdc2b5c806693f690ad35" + integrity sha512-KnaMTE6EItz/f2q4Gwg5/rmeKVi79OR58NoYnwDJqCk9ywMtTGbBnBcfoBtN4QbYu0lWXvyMoH2Owxuhe4qI6Q== websocket@1.0.32: version "1.0.32" From ba251f20cc223f3162efbb55136291197354bc03 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Fri, 17 Nov 2023 23:29:11 -0500 Subject: [PATCH 080/338] refactoring --- contracts/contracts/ClrFund.sol | 28 ------------- contracts/contracts/ClrFundDeployer.sol | 26 ++++-------- contracts/contracts/FundingRound.sol | 27 ++++++------- contracts/contracts/MACIFactory.sol | 1 - contracts/e2e/index.ts | 3 -- contracts/tests/deployer.ts | 54 +++---------------------- contracts/tests/maciFactory.ts | 22 +++++----- contracts/utils/deployment.ts | 25 ------------ 8 files changed, 36 insertions(+), 150 deletions(-) diff --git a/contracts/contracts/ClrFund.sol b/contracts/contracts/ClrFund.sol index 45014b3cc..21a0a5bb2 100644 --- a/contracts/contracts/ClrFund.sol +++ b/contracts/contracts/ClrFund.sol @@ -87,17 +87,6 @@ contract ClrFund is OwnableUpgradeable, IPubKey, SnarkCommon, Params { recipientRegistry.setMaxRecipients(maxVoteOptions); } - /** - * @dev Set the Verifying Keys Registry - * @param _vkRegistry Address of the registry - */ - function setVkRegistry(VkRegistry _vkRegistry) - external - onlyOwner - { - maciFactory.setVkRegistry(_vkRegistry); - } - /** * @dev Add matching funds source. * @param _source Address of a funding source. @@ -128,20 +117,6 @@ contract ClrFund is OwnableUpgradeable, IPubKey, SnarkCommon, Params { emit FundingSourceRemoved(_source); } - function setMaciParameters( - uint8 stateTreeDepth, - TreeDepths calldata treeDepths, - MaxValues calldata maxValues, - uint256 messageBatchSize, - VerifyingKey calldata processVk, - VerifyingKey calldata tallyVk - ) - external - onlyCoordinator - { - maciFactory.setMaciParameters(stateTreeDepth, treeDepths, maxValues, messageBatchSize, processVk, tallyVk); - } - function getCurrentRound() public view @@ -167,9 +142,6 @@ contract ClrFund is OwnableUpgradeable, IPubKey, SnarkCommon, Params { requireRecipientRegistry requireUserRegistry { - if (maciFactory.owner() != address(this)) { - revert NotOwnerOfMaciFactory(); - } FundingRound currentRound = getCurrentRound(); if (address(currentRound) != address(0) && !currentRound.isFinalized()) { revert NotFinalized(); diff --git a/contracts/contracts/ClrFundDeployer.sol b/contracts/contracts/ClrFundDeployer.sol index 06dfd31e6..b7d2707a0 100644 --- a/contracts/contracts/ClrFundDeployer.sol +++ b/contracts/contracts/ClrFundDeployer.sol @@ -8,30 +8,24 @@ import {CloneFactory} from './CloneFactory.sol'; import {SignUpGatekeeper} from "@clrfund/maci-contracts/contracts/gatekeepers/SignUpGatekeeper.sol"; import {InitialVoiceCreditProxy} from "@clrfund/maci-contracts/contracts/initialVoiceCreditProxy/InitialVoiceCreditProxy.sol"; -contract ClrFundParams { - struct Templates { - address clrfund; - address pollFactory; - } -} +contract ClrFundDeployer is CloneFactory { -contract ClrFundDeployer is CloneFactory, ClrFundParams { - address public template; mapping (address => bool) public clrfunds; - uint clrId = 0; - ClrFund private clrfund; // funding factory contract - + constructor(address _template) { template = _template; } event NewInstance(address indexed clrfund); event Register(address indexed clrfund, string metadata); - + + // errors + error ClrFundAlreadyRegistered(); + function deployClrFund(MACIFactory _maciFactory) public returns (address) { - clrfund = ClrFund(createClone(template)); + ClrFund clrfund = ClrFund(createClone(template)); clrfund.init(_maciFactory); emit NewInstance(address(clrfund)); @@ -43,15 +37,11 @@ contract ClrFundDeployer is CloneFactory, ClrFundParams { string memory _metadata ) public returns (bool) { - clrfund = ClrFund(_clrFundAddress); - - require(clrfunds[_clrFundAddress] == false, 'ClrFund: metadata already registered'); + if (clrfunds[_clrFundAddress] == true) revert ClrFundAlreadyRegistered(); clrfunds[_clrFundAddress] = true; - clrId = clrId + 1; emit Register(_clrFundAddress, _metadata); return true; } - } diff --git a/contracts/contracts/FundingRound.sol b/contracts/contracts/FundingRound.sol index 33a6c9527..efc98c230 100644 --- a/contracts/contracts/FundingRound.sol +++ b/contracts/contracts/FundingRound.sol @@ -625,22 +625,19 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom revert VoteResultsAlreadyVerified(); } - { - (,,, uint8 voteOptionTreeDepth) = poll.treeDepths(); - bool resultVerified = tally.verifyTallyResult( - _voteOptionIndex, - _tallyResult, - _tallyResultProof, - _tallyResultSalt, - voteOptionTreeDepth, - _spentVoiceCreditsHash, - _perVOSpentVoiceCreditsHash - ); - + (,,, uint8 voteOptionTreeDepth) = poll.treeDepths(); + bool resultVerified = tally.verifyTallyResult( + _voteOptionIndex, + _tallyResult, + _tallyResultProof, + _tallyResultSalt, + voteOptionTreeDepth, + _spentVoiceCreditsHash, + _perVOSpentVoiceCreditsHash + ); - if (!resultVerified) { - revert IncorrectTallyResult(); - } + if (!resultVerified) { + revert IncorrectTallyResult(); } recipient.tallyVerified = true; diff --git a/contracts/contracts/MACIFactory.sol b/contracts/contracts/MACIFactory.sol index 8ffc30c5d..2f5e35983 100644 --- a/contracts/contracts/MACIFactory.sol +++ b/contracts/contracts/MACIFactory.sol @@ -109,7 +109,6 @@ contract MACIFactory is Ownable, Params, SnarkCommon, IPubKey { PubKey calldata coordinatorPubKey ) external - onlyOwner returns (MACI _maci) { if (!vkRegistry.hasProcessVk( diff --git a/contracts/e2e/index.ts b/contracts/e2e/index.ts index 47f549a3b..e6ead998a 100644 --- a/contracts/e2e/index.ts +++ b/contracts/e2e/index.ts @@ -9,7 +9,6 @@ import { genTallyResultCommitment } from '@clrfund/common' import { UNIT } from '../utils/constants' import { getEventArg } from '../utils/contracts' import { - deployVkRegistry, deployMaciFactory, deployContract, mergeMessages, @@ -230,8 +229,6 @@ describe('End-to-end Tests', function () { }) ) - await deployVkRegistry(deployer, maciFactory.address, params) - // Deploy new funding round and MACI const newRoundTx = await fundingRoundFactory.deployNewRound(roundDuration) maciTransactionHash = newRoundTx.hash diff --git a/contracts/tests/deployer.ts b/contracts/tests/deployer.ts index 6715ae596..e86b06356 100644 --- a/contracts/tests/deployer.ts +++ b/contracts/tests/deployer.ts @@ -18,16 +18,7 @@ import { MaciParameters } from '../utils/maci' use(solidity) const roundDuration = 10000 - -async function setMaciParameters( - clrfund: Contract, - signer: Signer, - circuit: string -): Promise { - const clrfundAsSigner = clrfund.connect(signer) - const params = MaciParameters.mock(circuit) - return clrfundAsSigner.setMaciParameters(...params.asContractParam()) -} +const circuit = 'micro' async function setRoundTally( clrfund: Contract, @@ -61,7 +52,6 @@ describe('Clr fund deployer', () => { let factory: Contract let clrFundDeployer: Contract let token: Contract - let maciParameters: MaciParameters const coordinatorPubKey = new Keypair().pubKey.asContractParam() let poseidonContracts: { [name: string]: string } @@ -70,7 +60,8 @@ describe('Clr fund deployer', () => { poseidonContracts = await deployPoseidonLibraries(deployer) } maciFactory = await deployMaciFactory(deployer, poseidonContracts) - maciParameters = await MaciParameters.mock('micro') + const params = MaciParameters.mock(circuit) + await maciFactory.setMaciParameters(...params.asContractParam()) factoryTemplate = await deployContractWithLinkedLibraries( deployer, @@ -104,8 +95,6 @@ describe('Clr fund deployer', () => { factory = await ethers.getContractAt('ClrFund', instanceAddress, deployer) - await maciFactory.transferOwnership(instanceAddress) - const SimpleUserRegistry = await ethers.getContractFactory( 'SimpleUserRegistry', deployer @@ -157,7 +146,7 @@ describe('Clr fund deployer', () => { factory.address, '{name:dead,title:beef}' ) - ).to.be.revertedWith('ClrFund: metadata already registered') + ).to.be.revertedWith('ClrFundAlreadyRegistered') }) it('initializes factory', async () => { @@ -201,13 +190,12 @@ describe('Clr fund deployer', () => { describe('changing recipient registry', () => { it('allows owner to set recipient registry', async () => { await factory.setCoordinator(coordinator.address, coordinatorPubKey) - await setMaciParameters(factory, coordinator, 'micro') await factory.setRecipientRegistry(recipientRegistry.address) expect(await factory.recipientRegistry()).to.equal( recipientRegistry.address ) expect(await recipientRegistry.controller()).to.equal(factory.address) - const params = MaciParameters.mock('micro') + const params = MaciParameters.mock(circuit) expect(await recipientRegistry.maxRecipients()).to.equal( 5 ** params.voteOptionTreeDepth ) @@ -291,35 +279,12 @@ describe('Clr fund deployer', () => { expect(await token.balanceOf(factory.address)).to.equal(contributionAmount) }) - it('sets MACI parameters', async () => { - const newMaciParameters = MaciParameters.mock('micro') - const factoryAsCoordinator = factory.connect(coordinator) - await factory.setCoordinator(coordinator.address, coordinatorPubKey) - - await expect( - factoryAsCoordinator.setMaciParameters( - ...newMaciParameters.asContractParam() - ) - ).to.emit(maciFactory, 'MaciParametersChanged') - const treeDepths = await maciFactory.treeDepths() - expect(treeDepths.voteOptionTreeDepth).to.equal( - newMaciParameters.voteOptionTreeDepth - ) - }) - - it('allows only coordinator to set MACI parameters', async () => { - await expect( - factory.setMaciParameters(...maciParameters.asContractParam()) - ).to.be.revertedWith('NotAuthorized') - }) - describe('deploying funding round', () => { it('deploys funding round', async () => { await factory.setUserRegistry(userRegistry.address) await factory.setRecipientRegistry(recipientRegistry.address) await factory.setToken(token.address) await factory.setCoordinator(coordinator.address, coordinatorPubKey) - await setMaciParameters(factory, coordinator, 'micro') const deployed = factory.deployNewRound(roundDuration) await expect(deployed).to.emit(factory, 'RoundStarted') const deployTx = await deployed @@ -362,7 +327,6 @@ describe('Clr fund deployer', () => { await factory.setRecipientRegistry(recipientRegistry.address) await factory.setToken(token.address) await factory.setCoordinator(coordinator.address, coordinatorPubKey) - await setMaciParameters(factory, coordinator, 'micro') await expect(factory.deployNewRound(roundDuration)).to.be.revertedWith( 'NoUserRegistry' @@ -373,7 +337,6 @@ describe('Clr fund deployer', () => { await factory.setUserRegistry(userRegistry.address) await factory.setToken(token.address) await factory.setCoordinator(coordinator.address, coordinatorPubKey) - await setMaciParameters(factory, coordinator, 'micro') await expect(factory.deployNewRound(roundDuration)).to.be.revertedWith( 'NoRecipientRegistry' @@ -384,7 +347,6 @@ describe('Clr fund deployer', () => { await factory.setUserRegistry(userRegistry.address) await factory.setRecipientRegistry(recipientRegistry.address) await factory.setCoordinator(coordinator.address, coordinatorPubKey) - await setMaciParameters(factory, coordinator, 'micro') await expect(factory.deployNewRound(roundDuration)).to.be.revertedWith( 'NoToken' @@ -405,7 +367,6 @@ describe('Clr fund deployer', () => { await factory.setRecipientRegistry(recipientRegistry.address) await factory.setToken(token.address) await factory.setCoordinator(coordinator.address, coordinatorPubKey) - await setMaciParameters(factory, coordinator, 'micro') await factory.deployNewRound(roundDuration) await expect(factory.deployNewRound(roundDuration)).to.be.revertedWith( @@ -418,7 +379,6 @@ describe('Clr fund deployer', () => { await factory.setRecipientRegistry(recipientRegistry.address) await factory.setToken(token.address) await factory.setCoordinator(coordinator.address, coordinatorPubKey) - await setMaciParameters(factory, coordinator, 'micro') await factory.deployNewRound(roundDuration) await factory.cancelCurrentRound() @@ -433,7 +393,6 @@ describe('Clr fund deployer', () => { await factory.setRecipientRegistry(recipientRegistry.address) await factory.setToken(token.address) await factory.setCoordinator(coordinator.address, coordinatorPubKey) - await setMaciParameters(factory, coordinator, 'micro') const factoryAsContributor = factory.connect(contributor) await expect( @@ -454,7 +413,6 @@ describe('Clr fund deployer', () => { await factory.setRecipientRegistry(recipientRegistry.address) await factory.setToken(token.address) await factory.setCoordinator(coordinator.address, coordinatorPubKey) - await setMaciParameters(factory, coordinator, 'micro') }) it('returns the amount of available matching funding', async () => { @@ -577,7 +535,6 @@ describe('Clr fund deployer', () => { await factory.setRecipientRegistry(recipientRegistry.address) await factory.setToken(token.address) await factory.setCoordinator(coordinator.address, coordinatorPubKey) - await setMaciParameters(factory, coordinator, 'micro') }) it('allows owner to cancel round', async () => { @@ -665,7 +622,6 @@ describe('Clr fund deployer', () => { await factory.setRecipientRegistry(recipientRegistry.address) await factory.setToken(token.address) await factory.setCoordinator(coordinator.address, coordinatorPubKey) - await setMaciParameters(factory, coordinator, 'micro') await factory.deployNewRound(roundDuration) const fundingRoundAddress = await factory.getCurrentRound() const fundingRound = await ethers.getContractAt( diff --git a/contracts/tests/maciFactory.ts b/contracts/tests/maciFactory.ts index 3191a2f06..b43a589bc 100644 --- a/contracts/tests/maciFactory.ts +++ b/contracts/tests/maciFactory.ts @@ -108,22 +108,22 @@ describe('MACI factory', () => { expect(await getGasUsage(deployTx)).lessThan(15094000) }) - it('allows only owner to deploy MACI', async () => { + it('allows anyone to deploy MACI', async () => { const setParamTx = await maciFactory.setMaciParameters( ...maciParameters.asContractParam() ) await setParamTx.wait() const coordinatorMaciFactory = maciFactory.connect(coordinator) - await expect( - coordinatorMaciFactory.deployMaci( - signUpGatekeeper.address, - initialVoiceCreditProxy.address, - topupContract.address, - duration, - coordinator.address, - coordinatorPubKey - ) - ).to.be.revertedWith('Ownable: caller is not the owner') + + const deployTx = await coordinatorMaciFactory.deployMaci( + signUpGatekeeper.address, + initialVoiceCreditProxy.address, + topupContract.address, + duration, + coordinator.address, + coordinatorPubKey + ) + await expect(deployTx).to.emit(maciFactory, 'MaciDeployed') }) it('links with PoseidonT3 correctly', async () => { diff --git a/contracts/utils/deployment.ts b/contracts/utils/deployment.ts index d622c3cf3..8c5ee48d8 100644 --- a/contracts/utils/deployment.ts +++ b/contracts/utils/deployment.ts @@ -11,7 +11,6 @@ import { import { readFileSync } from 'fs' import { MaciParameters } from './maci' -import { CIRCUTIS } from './circuits' const userRegistryNames: Record = { simple: 'SimpleUserRegistry', @@ -126,30 +125,6 @@ export async function deployContract( return await contract.deployed() } -export async function deployVkRegistry( - account: Signer, - owner: string, - params: MaciParameters -): Promise { - const vkRegistry = await deployContract(account, 'VkRegistry') - - const setKeyTx = await vkRegistry.setVerifyingKeys( - params.stateTreeDepth, - params.intStateTreeDepth, - params.messageTreeDepth, - params.voteOptionTreeDepth, - params.messageBatchSize, - params.processVk.asContractParam(), - params.tallyVk.asContractParam() - ) - await setKeyTx.wait() - - const ownerTx = await vkRegistry.transferOwnership(owner) - await ownerTx.wait() - - return vkRegistry -} - export async function deployMaciFactory( account: Signer, poseidonContracts: { [name: string]: string } From 1a46db0abd0fbf6f08008fee17bfbc02727db47a Mon Sep 17 00:00:00 2001 From: yuetloo Date: Tue, 21 Nov 2023 18:35:38 -0500 Subject: [PATCH 081/338] code cleanup and update e2e testing with maci v1 api --- .github/workflows/test-scripts.yml | 25 +- contracts/.env.example | 12 +- contracts/.gitignore | 2 +- contracts/contracts/ClrFund.sol | 37 +- contracts/contracts/ClrFundDeployer.sol | 97 ++- contracts/contracts/FundingRound.sol | 3 + contracts/contracts/FundingRoundFactory.sol | 30 + contracts/contracts/MACIFactory.sol | 49 +- contracts/contracts/PollFactoryCreator.sol | 11 - contracts/contracts/TopupToken.sol | 18 + contracts/contracts/VkRegistryCreator.sol | 11 - contracts/e2e/index.ts | 138 +++-- contracts/package.json | 8 +- contracts/scripts/claim.ts | 47 -- contracts/scripts/contribute.ts | 66 --- contracts/scripts/deploy.ts | 142 ----- contracts/scripts/deployUserRegistry.ts | 52 -- contracts/scripts/finalize.ts | 53 -- contracts/scripts/newRound.ts | 90 --- contracts/scripts/tally.ts | 235 ++++++++ contracts/scripts/vote.ts | 74 --- contracts/sh/runScriptTests.sh | 91 +++ contracts/tasks/addContributors.ts | 41 ++ contracts/tasks/addRecipients.ts | 45 ++ contracts/tasks/cancelRound.ts | 12 +- contracts/tasks/claim.ts | 56 ++ contracts/tasks/contribute.ts | 76 +++ contracts/tasks/finalize.ts | 65 ++ contracts/tasks/index.ts | 53 +- contracts/tasks/newClrFund.ts | 144 +++++ contracts/tasks/newDeployer.ts | 75 +++ contracts/tasks/newMaciKey.ts | 19 + contracts/tasks/newRound.ts | 77 +++ contracts/tasks/pubkey.ts | 30 + contracts/tasks/setCoordinator.ts | 68 +++ contracts/tasks/setDurations.ts | 34 -- contracts/tasks/setMaciParameters.ts | 33 ++ contracts/tasks/setPollFactory.ts | 39 ++ contracts/tasks/setRecipientRegistry.ts | 137 +++++ contracts/tasks/setToken.ts | 51 ++ contracts/tasks/setUserRegistry.ts | 115 ++++ contracts/tasks/tally.ts | 257 -------- .../{evmIncreaseTime.ts => timeTravel.ts} | 4 +- contracts/tasks/verifyAll.ts | 196 ++++-- contracts/tasks/verifyMaciFactory.ts | 76 +-- contracts/tasks/verifyRoundFactory.ts | 20 - contracts/tasks/vote.ts | 84 +++ contracts/tests/deployer.ts | 419 +++++++------ contracts/tests/maciFactory.ts | 30 +- contracts/tests/recipientRegistry.ts | 26 +- contracts/tests/round.ts | 34 +- contracts/tsconfig.json | 2 +- contracts/utils/JSONFile.ts | 27 + contracts/utils/circuits.ts | 2 + contracts/utils/constants.ts | 1 + contracts/utils/deployment.ts | 411 +++++++++---- contracts/utils/maci.ts | 228 +++---- contracts/utils/maciParameters.ts | 146 +++++ contracts/utils/misc.ts | 11 + yarn.lock | 556 +++++++++--------- 60 files changed, 3051 insertions(+), 1940 deletions(-) create mode 100644 contracts/contracts/FundingRoundFactory.sol delete mode 100644 contracts/contracts/PollFactoryCreator.sol create mode 100644 contracts/contracts/TopupToken.sol delete mode 100644 contracts/contracts/VkRegistryCreator.sol delete mode 100644 contracts/scripts/claim.ts delete mode 100644 contracts/scripts/contribute.ts delete mode 100644 contracts/scripts/deploy.ts delete mode 100644 contracts/scripts/deployUserRegistry.ts delete mode 100644 contracts/scripts/finalize.ts delete mode 100644 contracts/scripts/newRound.ts create mode 100644 contracts/scripts/tally.ts delete mode 100644 contracts/scripts/vote.ts create mode 100755 contracts/sh/runScriptTests.sh create mode 100644 contracts/tasks/addContributors.ts create mode 100644 contracts/tasks/addRecipients.ts create mode 100644 contracts/tasks/claim.ts create mode 100644 contracts/tasks/contribute.ts create mode 100644 contracts/tasks/finalize.ts create mode 100644 contracts/tasks/newClrFund.ts create mode 100644 contracts/tasks/newDeployer.ts create mode 100644 contracts/tasks/newMaciKey.ts create mode 100644 contracts/tasks/newRound.ts create mode 100644 contracts/tasks/pubkey.ts create mode 100644 contracts/tasks/setCoordinator.ts delete mode 100644 contracts/tasks/setDurations.ts create mode 100644 contracts/tasks/setMaciParameters.ts create mode 100644 contracts/tasks/setPollFactory.ts create mode 100644 contracts/tasks/setRecipientRegistry.ts create mode 100644 contracts/tasks/setToken.ts create mode 100644 contracts/tasks/setUserRegistry.ts delete mode 100644 contracts/tasks/tally.ts rename contracts/tasks/{evmIncreaseTime.ts => timeTravel.ts} (73%) delete mode 100644 contracts/tasks/verifyRoundFactory.ts create mode 100644 contracts/tasks/vote.ts create mode 100644 contracts/utils/JSONFile.ts create mode 100644 contracts/utils/maciParameters.ts create mode 100644 contracts/utils/misc.ts diff --git a/.github/workflows/test-scripts.yml b/.github/workflows/test-scripts.yml index 41937c33d..bb3b38612 100644 --- a/.github/workflows/test-scripts.yml +++ b/.github/workflows/test-scripts.yml @@ -29,13 +29,24 @@ jobs: - name: Install zkutil run: | cargo install zkutil --version 0.3.2 + - name: Checkout rapidsnark source code + uses: actions/checkout@v3 + with: + repository: iden3/rapidsnark + path: rapidsnark + - name: Install rapidsnark + npm install + git submodule init + git submodule update + npx task createFieldSources + npx task buildProver - name: Checkout source code uses: actions/checkout@v3 with: path: monorepo - name: Download batch 64 params run: | - $GITHUB_WORKSPACE/monorepo/.github/scripts/download-batch64-params.sh + $GITHUB_WORKSPACE/monorepo/.github/scripts/download-6-8-2-3.sh - name: Build CLR run: | cd monorepo @@ -48,14 +59,6 @@ jobs: yarn start:node & - name: Run script tests run: | + export RAPIDSNARK_DIRECTORY=$GITHUB_WORKSPACE/rapidsnark cd monorepo/contracts - export NODE_CONFIG=$(node -e "const snarkParamsPath=process.env.GITHUB_WORKSPACE + '/params'; console.log(JSON.stringify({ snarkParamsPath }));") - echo $NODE_CONFIG - yarn deploy:local - yarn deployTestRound:local - yarn contribute:local - yarn vote:local - yarn hardhat evm-increase-time 1200 --network localhost - yarn tally:local - yarn finalize:local - yarn claim:local + ./sh/runScriptTests.sh diff --git a/contracts/.env.example b/contracts/.env.example index c3c9355ba..5c61baf56 100644 --- a/contracts/.env.example +++ b/contracts/.env.example @@ -23,7 +23,7 @@ WALLET_PRIVATE_KEY= NATIVE_TOKEN_ADDRESS= # Required to use in the tally and finalize scripts -FACTORY_ADDRESS= +CLRFUND= ROUND_ADDRESS= COORDINATOR_PK= COORDINATOR_ETH_PK= @@ -50,7 +50,15 @@ CIRCUIT_TYPE=prod # The IPFS gateway url used by the prepare-results.ts script IPFS_GATEWAY_URL= -# circuit params and directory used by e2e script +# Parameters used in the tally script CIRCUIT_TYPE= CIRCUIT_DIRECTORY= RAPIDSNARK_DIRECTORY= +# Used in MACI queue merging operation before genProofs, default is 4 +NUM_QUEUE_OPS= +# Used in e2e testing to store intermediate states +STATE_FILE= +# MACI creation transaction hash, used to find the start block of MACI logs +MACI_TRANSACTION_HASH= +# genProofs output directory +PROOF_OUTPUT_DIR= diff --git a/contracts/.gitignore b/contracts/.gitignore index b68456558..0f8b3e642 100644 --- a/contracts/.gitignore +++ b/contracts/.gitignore @@ -7,5 +7,5 @@ proofs.json tally.json .env .DS_Store -tasks/addresses.txt +addresses.txt proof_output diff --git a/contracts/contracts/ClrFund.sol b/contracts/contracts/ClrFund.sol index 21a0a5bb2..eaf988db7 100644 --- a/contracts/contracts/ClrFund.sol +++ b/contracts/contracts/ClrFund.sol @@ -16,6 +16,8 @@ import './userRegistry/IUserRegistry.sol'; import './recipientRegistry/IRecipientRegistry.sol'; import {FundingRound} from './FundingRound.sol'; import './OwnableUpgradeable.sol'; +import {FundingRoundFactory} from './FundingRoundFactory.sol'; +import {TopupToken} from './TopupToken.sol'; contract ClrFund is OwnableUpgradeable, IPubKey, SnarkCommon, Params { using EnumerableSet for EnumerableSet.AddressSet; @@ -33,6 +35,8 @@ contract ClrFund is OwnableUpgradeable, IPubKey, SnarkCommon, Params { EnumerableSet.AddressSet private fundingSources; FundingRound[] private rounds; + FundingRoundFactory public roundFactory; + // Events event FundingSourceAdded(address _source); event FundingSourceRemoved(address _source); @@ -40,6 +44,10 @@ contract ClrFund is OwnableUpgradeable, IPubKey, SnarkCommon, Params { event RoundFinalized(address _round); event TokenChanged(address _token); event CoordinatorChanged(address _coordinator); + event Initialized(); + event UserRegistrySet(); + event RecipientRegistrySet(); + event FundingRoundTemplateChanged(); // errors error FundingSourceAlreadyAdded(); @@ -53,14 +61,27 @@ contract ClrFund is OwnableUpgradeable, IPubKey, SnarkCommon, Params { error NoRecipientRegistry(); error NoUserRegistry(); error NotOwnerOfMaciFactory(); + error InvalidFundingRoundFactory(); + error InvalidMaciFactory(); + /** + * @dev Initialize clrfund instance with MACI factory and new round templates + */ function init( - MACIFactory _maciFactory + address _maciFactory, + address _roundFactory ) external { __Ownable_init(); - maciFactory = _maciFactory; + + if (address(_maciFactory) == address(0)) revert InvalidMaciFactory(); + if (_roundFactory == address(0)) revert InvalidFundingRoundFactory(); + + maciFactory = MACIFactory(_maciFactory); + roundFactory = FundingRoundFactory(_roundFactory); + + emit Initialized(); } /** @@ -72,6 +93,8 @@ contract ClrFund is OwnableUpgradeable, IPubKey, SnarkCommon, Params { onlyOwner { userRegistry = _userRegistry; + + emit UserRegistrySet(); } /** @@ -85,6 +108,8 @@ contract ClrFund is OwnableUpgradeable, IPubKey, SnarkCommon, Params { recipientRegistry = _recipientRegistry; (, uint256 maxVoteOptions) = maciFactory.maxValues(); recipientRegistry.setMaxRecipients(maxVoteOptions); + + emit RecipientRegistrySet(); } /** @@ -150,18 +175,20 @@ contract ClrFund is OwnableUpgradeable, IPubKey, SnarkCommon, Params { (, uint256 maxVoteOptions) = maciFactory.maxValues(); recipientRegistry.setMaxRecipients(maxVoteOptions); // Deploy funding round and MACI contracts - FundingRound newRound = new FundingRound( + FundingRound newRound = roundFactory.deploy( nativeToken, userRegistry, recipientRegistry, - coordinator + coordinator, + address(this) ); rounds.push(newRound); + TopupToken topupToken = newRound.topupToken(); MACI maci = maciFactory.deployMaci( SignUpGatekeeper(newRound), InitialVoiceCreditProxy(newRound), - address(nativeToken), + address(topupToken), duration, coordinator, coordinatorPubKey diff --git a/contracts/contracts/ClrFundDeployer.sol b/contracts/contracts/ClrFundDeployer.sol index b7d2707a0..8db5bc7fd 100644 --- a/contracts/contracts/ClrFundDeployer.sol +++ b/contracts/contracts/ClrFundDeployer.sol @@ -2,46 +2,85 @@ pragma solidity 0.8.10; -import './MACIFactory.sol'; -import './ClrFund.sol'; +import {MACIFactory} from './MACIFactory.sol'; +import {ClrFund} from './ClrFund.sol'; import {CloneFactory} from './CloneFactory.sol'; import {SignUpGatekeeper} from "@clrfund/maci-contracts/contracts/gatekeepers/SignUpGatekeeper.sol"; import {InitialVoiceCreditProxy} from "@clrfund/maci-contracts/contracts/initialVoiceCreditProxy/InitialVoiceCreditProxy.sol"; +import {Ownable} from '@openzeppelin/contracts/access/Ownable.sol'; -contract ClrFundDeployer is CloneFactory { +contract ClrFundDeployer is CloneFactory, Ownable { + address public clrfundTemplate; + address public maciFactory; + address public roundFactory; + mapping (address => bool) public clrfunds; - address public template; - mapping (address => bool) public clrfunds; + event NewInstance(address indexed clrfund); + event Register(address indexed clrfund, string metadata); + event NewFundingRoundTemplate(address newTemplate); + event NewClrfundTemplate(address newTemplate); - constructor(address _template) { - template = _template; - } - - event NewInstance(address indexed clrfund); - event Register(address indexed clrfund, string metadata); + // errors + error ClrFundAlreadyRegistered(); + error InvalidMaciFactory(); + error InvalidClrFundTemplate(); + error InvalidFundingRoundFactory(); - // errors - error ClrFundAlreadyRegistered(); + constructor( + address _clrfundTemplate, + address _maciFactory, + address _roundFactory + ) + { + if (_clrfundTemplate == address(0)) revert InvalidClrFundTemplate(); + if (_maciFactory == address(0)) revert InvalidMaciFactory(); + if (_roundFactory == address(0)) revert InvalidFundingRoundFactory(); - function deployClrFund(MACIFactory _maciFactory) public returns (address) { + clrfundTemplate = _clrfundTemplate; + maciFactory = _maciFactory; + roundFactory = _roundFactory; + } - ClrFund clrfund = ClrFund(createClone(template)); - clrfund.init(_maciFactory); - emit NewInstance(address(clrfund)); + /** + * @dev Set a new clrfund template + * @param _clrfundTemplate New template + */ + function setClrFundTemplate(address _clrfundTemplate) + external + onlyOwner + { + if (_clrfundTemplate == address(0)) revert InvalidClrFundTemplate(); - return address(clrfund); - } - - function registerInstance( - address _clrFundAddress, - string memory _metadata - ) public returns (bool) { + clrfundTemplate = _clrfundTemplate; + emit NewClrfundTemplate(_clrfundTemplate); + } - if (clrfunds[_clrFundAddress] == true) revert ClrFundAlreadyRegistered(); + /** + * @dev Deploy a new instance of ClrFund + */ + function deployClrFund() public returns (address) { + ClrFund clrfund = ClrFund(createClone(clrfundTemplate)); + clrfund.init(maciFactory, roundFactory); + emit NewInstance(address(clrfund)); - clrfunds[_clrFundAddress] = true; + return address(clrfund); + } - emit Register(_clrFundAddress, _metadata); - return true; - } + /** + * @dev Register the clrfund instance of subgraph event processing + * @param _clrFundAddress ClrFund address + * @param _metadata Clrfund metadata + */ + function registerInstance( + address _clrFundAddress, + string memory _metadata + ) public returns (bool) { + + if (clrfunds[_clrFundAddress] == true) revert ClrFundAlreadyRegistered(); + + clrfunds[_clrFundAddress] = true; + + emit Register(_clrFundAddress, _metadata); + return true; + } } diff --git a/contracts/contracts/FundingRound.sol b/contracts/contracts/FundingRound.sol index efc98c230..a4f465a39 100644 --- a/contracts/contracts/FundingRound.sol +++ b/contracts/contracts/FundingRound.sol @@ -10,6 +10,7 @@ import {DomainObjs} from '@clrfund/maci-contracts/contracts/DomainObjs.sol'; import {MACI} from '@clrfund/maci-contracts/contracts/MACI.sol'; import {Poll} from '@clrfund/maci-contracts/contracts/Poll.sol'; import {Tally} from '@clrfund/maci-contracts/contracts/Tally.sol'; +import {TopupToken} from './TopupToken.sol'; import {SignUpGatekeeper} from "@clrfund/maci-contracts/contracts/gatekeepers/SignUpGatekeeper.sol"; import {InitialVoiceCreditProxy} from "@clrfund/maci-contracts/contracts/initialVoiceCreditProxy/InitialVoiceCreditProxy.sol"; @@ -93,6 +94,7 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom address public coordinator; MACI public maci; ERC20 public nativeToken; + TopupToken public topupToken; IUserRegistry public userRegistry; IRecipientRegistry public recipientRegistry; string public tallyHash; @@ -143,6 +145,7 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom userRegistry = _userRegistry; recipientRegistry = _recipientRegistry; coordinator = _coordinator; + topupToken = new TopupToken(); } /** diff --git a/contracts/contracts/FundingRoundFactory.sol b/contracts/contracts/FundingRoundFactory.sol new file mode 100644 index 000000000..6d4d586de --- /dev/null +++ b/contracts/contracts/FundingRoundFactory.sol @@ -0,0 +1,30 @@ +// SPDX-License-Identifier: GPL-3.0 + +pragma solidity ^0.8.10; + +import {FundingRound} from './FundingRound.sol'; +import {ERC20} from '@openzeppelin/contracts/token/ERC20/ERC20.sol'; +import {IUserRegistry} from './userRegistry/IUserRegistry.sol'; +import {IRecipientRegistry} from './recipientRegistry/IRecipientRegistry.sol'; + +contract FundingRoundFactory { + function deploy( + ERC20 _nativeToken, + IUserRegistry _userRegistry, + IRecipientRegistry _recipientRegistry, + address _coordinator, + address _owner + ) + external + returns (FundingRound newRound) + { + newRound = new FundingRound( + _nativeToken, + _userRegistry, + _recipientRegistry, + _coordinator + ); + + newRound.transferOwnership(_owner); + } +} diff --git a/contracts/contracts/MACIFactory.sol b/contracts/contracts/MACIFactory.sol index 2f5e35983..e633fead4 100644 --- a/contracts/contracts/MACIFactory.sol +++ b/contracts/contracts/MACIFactory.sol @@ -11,7 +11,6 @@ import {VkRegistry} from '@clrfund/maci-contracts/contracts/VkRegistry.sol'; import {SnarkCommon} from '@clrfund/maci-contracts/contracts/crypto/SnarkCommon.sol'; import {Ownable} from '@openzeppelin/contracts/access/Ownable.sol'; import {Params} from '@clrfund/maci-contracts/contracts/Params.sol'; -import {PollFactoryCreator} from './PollFactoryCreator.sol'; import {IPubKey} from '@clrfund/maci-contracts/contracts/DomainObjs.sol'; contract MACIFactory is Ownable, Params, SnarkCommon, IPubKey { @@ -20,6 +19,7 @@ contract MACIFactory is Ownable, Params, SnarkCommon, IPubKey { // State VkRegistry public vkRegistry; + PollFactory public pollFactory; uint8 public stateTreeDepth; TreeDepths public treeDepths; MaxValues public maxValues; @@ -31,27 +31,41 @@ contract MACIFactory is Ownable, Params, SnarkCommon, IPubKey { // errors error NotInitialized(); - error CannotDecreaseVoteOptionDepth(); error ProcessVkNotSet(); error TallyVkNotSet(); error InvalidVkRegistry(); + error InvalidPollFactory(); - constructor(VkRegistry _vkRegistry) { - _setVkRegistry(_vkRegistry); + constructor(address _vkRegistry, address _pollFactory) { + if (_vkRegistry == address(0)) revert InvalidVkRegistry(); + if (_pollFactory == address(0)) revert InvalidPollFactory(); + + vkRegistry = VkRegistry(_vkRegistry); + pollFactory = PollFactory(_pollFactory); } - function _setVkRegistry(VkRegistry _vkRegistry) internal { - if (address(_vkRegistry) == address(0)) { - revert InvalidVkRegistry(); - } + /** + * @dev set vk registry + */ + function setVkRegistry(address _vkRegistry) public onlyOwner { + if (_vkRegistry == address(0)) revert InvalidVkRegistry(); - vkRegistry = _vkRegistry; + vkRegistry = VkRegistry(_vkRegistry); } - function setVkRegistry(VkRegistry _vkRegistry) public onlyOwner { - _setVkRegistry(_vkRegistry); + /** + * @dev set poll factory in MACI factory + * @param _pollFactory poll factory + */ + function setPollFactory(address _pollFactory) public onlyOwner { + if (_pollFactory == address(0)) revert InvalidPollFactory(); + + pollFactory = PollFactory(_pollFactory); } + /** + * @dev set MACI zkeys parameters + */ function setMaciParameters( uint8 _stateTreeDepth, TreeDepths calldata _treeDepths, @@ -63,10 +77,6 @@ contract MACIFactory is Ownable, Params, SnarkCommon, IPubKey { public onlyOwner { - if (_treeDepths.voteOptionTreeDepth < treeDepths.voteOptionTreeDepth) { - revert CannotDecreaseVoteOptionDepth(); - } - if (!vkRegistry.hasProcessVk( _stateTreeDepth, _treeDepths.messageTreeDepth, @@ -128,20 +138,15 @@ contract MACIFactory is Ownable, Params, SnarkCommon, IPubKey { revert TallyVkNotSet(); } - PollFactory pollFactory = PollFactoryCreator.create(); _maci = new MACI( pollFactory, signUpGatekeeper, initialVoiceCreditProxy ); - pollFactory.transferOwnership(address(_maci)); _maci.init(vkRegistry, TopupCredit(topupCredit)); - _maci.deployPoll(duration, maxValues, treeDepths, coordinatorPubKey); - - // this is a brand new maci, get poll 0 - Poll poll = _maci.getPoll(0); - poll.transferOwnership(coordinator); + address poll = _maci.deployPoll(duration, maxValues, treeDepths, coordinatorPubKey); + Poll(poll).transferOwnership(coordinator); emit MaciDeployed(address(_maci)); } diff --git a/contracts/contracts/PollFactoryCreator.sol b/contracts/contracts/PollFactoryCreator.sol deleted file mode 100644 index 24b8b0f9d..000000000 --- a/contracts/contracts/PollFactoryCreator.sol +++ /dev/null @@ -1,11 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0 - -pragma solidity 0.8.10; - -import {PollFactory} from '@clrfund/maci-contracts/contracts/Poll.sol'; - -library PollFactoryCreator { - function create() external returns (PollFactory pollFactory) { - pollFactory = new PollFactory(); - } -} \ No newline at end of file diff --git a/contracts/contracts/TopupToken.sol b/contracts/contracts/TopupToken.sol new file mode 100644 index 000000000..c70068ae7 --- /dev/null +++ b/contracts/contracts/TopupToken.sol @@ -0,0 +1,18 @@ +// SPDX-License-Identifier: GPL-3.0 + +pragma solidity ^0.8.10; + +import {ERC20} from '@openzeppelin/contracts/token/ERC20/ERC20.sol'; +import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; + +/** + * TopupToken is used by MACI Poll contract to validate the topup credits of a user + * In clrfund, this is only used as gateway to pass the topup amount to the Poll contract + */ +contract TopupToken is ERC20, Ownable { + constructor() ERC20("TopupCredit", "TopupCredit") {} + + function airdrop(uint256 amount) public onlyOwner { + _mint(msg.sender, amount); + } +} diff --git a/contracts/contracts/VkRegistryCreator.sol b/contracts/contracts/VkRegistryCreator.sol deleted file mode 100644 index ef43411c9..000000000 --- a/contracts/contracts/VkRegistryCreator.sol +++ /dev/null @@ -1,11 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0 - -pragma solidity 0.8.10; - -import {VkRegistry} from '@clrfund/maci-contracts/contracts/VkRegistry.sol'; - -library VkRegistryCreator { - function create() public returns (VkRegistry vkRegistry) { - vkRegistry = new VkRegistry(); - } -} \ No newline at end of file diff --git a/contracts/e2e/index.ts b/contracts/e2e/index.ts index e6ead998a..4738c4755 100644 --- a/contracts/e2e/index.ts +++ b/contracts/e2e/index.ts @@ -1,5 +1,5 @@ /* eslint-disable @typescript-eslint/camelcase */ -import { ethers, waffle } from 'hardhat' +import { ethers, waffle, config } from 'hardhat' import { use, expect } from 'chai' import { solidity } from 'ethereum-waffle' import { BigNumber, Contract, Signer, Wallet } from 'ethers' @@ -9,23 +9,23 @@ import { genTallyResultCommitment } from '@clrfund/common' import { UNIT } from '../utils/constants' import { getEventArg } from '../utils/contracts' import { - deployMaciFactory, deployContract, - mergeMessages, - mergeSignups, - genProofs, - proveOnChain, deployPoseidonLibraries, - deployContractWithLinkedLibraries, + deployMaciFactory, + deployMessageProcesorAndTally, } from '../utils/deployment' import { getIpfsHash } from '../utils/ipfs' import { bnSqrt, - MaciParameters, + genProofs, + proveOnChain, + mergeMaciSubtrees, addTallyResultsBatch, getRecipientClaimData, getGenProofArgs, } from '../utils/maci' +import { DEFAULT_CIRCUIT } from '../utils/circuits' +import { MaciParameters } from '../utils/maciParameters' import { readFileSync, existsSync, mkdirSync } from 'fs' import path from 'path' @@ -36,10 +36,13 @@ const DEFAULT_SR_QUEUE_OPS = 4 const roundDuration = 7 * 86400 // MACI zkFiles -const circuit = process.env.CIRCUIT_TYPE || 'micro' +const circuit = process.env.CIRCUIT_TYPE || DEFAULT_CIRCUIT const circuitDirectory = process.env.CIRCUIT_DIRECTORY || '../../params' const rapidSnarkDirectory = process.env.RAPIDSNARK_DIRECTORY || '../../rapidsnark/build' +const proofOutputDirectory = process.env.PROOF_OUTPUT_DIR || './proof_output' +const tallyBatchSize = Number(process.env.TALLY_BATCH_SIZE || 8) + let maciTransactionHash: string const ALPHA_PRECISION = BigNumber.from(10).pow(18) @@ -112,7 +115,7 @@ describe('End-to-end Tests', function () { let poseidonLibraries: { [key: string]: string } let userRegistry: Contract let recipientRegistry: Contract - let fundingRoundFactory: Contract + let clrfund: Contract let token: Contract let fundingRound: Contract let maci: Contract @@ -122,7 +125,11 @@ describe('End-to-end Tests', function () { before(async () => { params = await MaciParameters.fromConfig(circuit, circuitDirectory) - poseidonLibraries = await deployPoseidonLibraries(deployer) + poseidonLibraries = await deployPoseidonLibraries({ + ethers, + artifactsPath: config.paths.artifacts, + signer: deployer, + }) }) beforeEach(async () => { @@ -138,22 +145,35 @@ describe('End-to-end Tests', function () { ] = await ethers.getSigners() // Deploy funding round factory - const maciFactory = await deployMaciFactory(deployer, poseidonLibraries) + const maciFactory = await deployMaciFactory({ + libraries: poseidonLibraries, + signer: deployer, + ethers, + }) const setMaciTx = await maciFactory.setMaciParameters( ...params.asContractParam() ) await setMaciTx.wait() - fundingRoundFactory = await deployContractWithLinkedLibraries( - deployer, - 'ClrFund', - poseidonLibraries + clrfund = await deployContract({ + name: 'ClrFund', + signer: deployer, + ethers, + }) + + const roundFactory = await deployContract({ + name: 'FundingRoundFactory', + libraries: poseidonLibraries, + signer: deployer, + ethers, + }) + + const initClrfundTx = await clrfund.init( + maciFactory.address, + roundFactory.address ) - const initClrfundTx = await fundingRoundFactory.init(maciFactory.address) await initClrfundTx.wait() - const transferTx = await maciFactory.transferOwnership( - fundingRoundFactory.address - ) + const transferTx = await maciFactory.transferOwnership(clrfund.address) await transferTx.wait() const SimpleUserRegistry = await ethers.getContractFactory( @@ -161,15 +181,13 @@ describe('End-to-end Tests', function () { deployer ) userRegistry = await SimpleUserRegistry.deploy() - await fundingRoundFactory.setUserRegistry(userRegistry.address) + await clrfund.setUserRegistry(userRegistry.address) const SimpleRecipientRegistry = await ethers.getContractFactory( 'SimpleRecipientRegistry', deployer ) - recipientRegistry = await SimpleRecipientRegistry.deploy( - fundingRoundFactory.address - ) - await fundingRoundFactory.setRecipientRegistry(recipientRegistry.address) + recipientRegistry = await SimpleRecipientRegistry.deploy(clrfund.address) + await clrfund.setRecipientRegistry(recipientRegistry.address) // Deploy ERC20 token contract const Token = await ethers.getContractFactory('AnyOldERC20Token', deployer) @@ -182,9 +200,9 @@ describe('End-to-end Tests', function () { } // Configure factory - await fundingRoundFactory.setToken(token.address) + await clrfund.setToken(token.address) coordinatorKeypair = new Keypair() - await fundingRoundFactory.setCoordinator( + await clrfund.setCoordinator( coordinator.address, coordinatorKeypair.pubKey.asContractParam() ) @@ -193,15 +211,13 @@ describe('End-to-end Tests', function () { const poolContributionAmount = UNIT.mul(5) await token .connect(poolContributor1) - .transfer(fundingRoundFactory.address, poolContributionAmount) + .transfer(clrfund.address, poolContributionAmount) // Add additional funding source - await fundingRoundFactory.addFundingSource( - await poolContributor2.getAddress() - ) + await clrfund.addFundingSource(await poolContributor2.getAddress()) await token .connect(poolContributor2) - .approve(fundingRoundFactory.address, poolContributionAmount) + .approve(clrfund.address, poolContributionAmount) // Add recipients await recipientRegistry.addRecipient( @@ -230,9 +246,9 @@ describe('End-to-end Tests', function () { ) // Deploy new funding round and MACI - const newRoundTx = await fundingRoundFactory.deployNewRound(roundDuration) + const newRoundTx = await clrfund.deployNewRound(roundDuration) maciTransactionHash = newRoundTx.hash - const fundingRoundAddress = await fundingRoundFactory.getCurrentRound() + const fundingRoundAddress = await clrfund.getCurrentRound() fundingRound = await ethers.getContractAt( 'FundingRound', fundingRoundAddress @@ -299,20 +315,14 @@ describe('End-to-end Tests', function () { const providerUrl = (provider as any)._hardhatNetwork.config.url // Process messages and tally votes - await mergeMessages({ - contract: maci.address, - poll_id: pollId.toString(), - num_queue_ops: DEFAULT_SR_QUEUE_OPS, - }) - - await mergeSignups({ - contract: maci.address, - poll_id: pollId.toString(), - num_queue_ops: DEFAULT_SR_QUEUE_OPS, - }) + await mergeMaciSubtrees( + maci.address, + pollId.toString(), + DEFAULT_SR_QUEUE_OPS + ) const random = Math.floor(Math.random() * 10 ** 8) - const outputDir = path.join('.', 'proof_output', `${random}`) + const outputDir = path.join(proofOutputDirectory, `${random}`) if (!existsSync(outputDir)) { mkdirSync(outputDir, { recursive: true }) } @@ -320,7 +330,7 @@ describe('End-to-end Tests', function () { maciAddress: maci.address, providerUrl, pollId: pollId.toString(), - serializedCoordinatorPrivKey: coordinatorKeypair.privKey.serialize(), + coordinatorMacisk: coordinatorKeypair.privKey.serialize(), maciTxHash: maciTransactionHash, rapidSnarkDirectory, circuitType: circuit, @@ -329,23 +339,11 @@ describe('End-to-end Tests', function () { }) await genProofs(genProofArgs) - // deploy the tally contract - const verifierContract = await deployContract(coordinator, 'Verifier') - const tallyContract = await deployContractWithLinkedLibraries( - coordinator, - 'Tally', - poseidonLibraries, - [verifierContract.address] - ) - await fundingRound.connect(coordinator).setTally(tallyContract.address) - - // deploy the message processing contract - const mpContract = await deployContractWithLinkedLibraries( - coordinator, - 'MessageProcessor', - poseidonLibraries, - [verifierContract.address] - ) + const { mpContract, tallyContract } = await deployMessageProcesorAndTally({ + libraries: poseidonLibraries, + ethers, + signer: coordinator, + }) // Submit proofs to MACI contract await proveOnChain({ @@ -353,25 +351,25 @@ describe('End-to-end Tests', function () { poll_id: pollId.toString(), mp: mpContract.address, tally: tallyContract.address, - subsidy: tallyContract.address, // TODO: make subsidy optional + //subsidy: tallyContract.address, // TODO: make subsidy optional proof_dir: genProofArgs.output, }) - console.log('finished proveOnChain') + + await fundingRound.connect(coordinator).setTally(tallyContract.address) const tally = JSON.parse(readFileSync(genProofArgs.tally_file).toString()) const tallyHash = await getIpfsHash(tally) await fundingRound.connect(coordinator).publishTallyHash(tallyHash) console.log('Tally hash', tallyHash) // add tally results to funding round - const batchSize = Number(process.env.TALLY_BATCH_SIZE) || 8 const recipientTreeDepth = params.voteOptionTreeDepth - console.log('Adding tally result on chain in batches of', batchSize) + console.log('Adding tally result on chain in batches of', tallyBatchSize) await addTallyResultsBatch( fundingRound.connect(coordinator), recipientTreeDepth, tally, - batchSize + tallyBatchSize ) console.log('Finished adding tally results') @@ -388,7 +386,7 @@ describe('End-to-end Tests', function () { ) // Finalize round - await fundingRoundFactory.transferMatchingFunds( + await clrfund.transferMatchingFunds( tally.totalSpentVoiceCredits.spent, tally.totalSpentVoiceCredits.salt, newResultCommitment.toString(), diff --git a/contracts/package.json b/contracts/package.json index a30a7a920..3f94b73c9 100644 --- a/contracts/package.json +++ b/contracts/package.json @@ -22,7 +22,7 @@ "clean": "rm -rf cache && rm -rf build" }, "dependencies": { - "@clrfund/maci-contracts": "^1.1.7", + "@clrfund/maci-contracts": "^1.1.9", "@openzeppelin/contracts": "4.9.0", "dotenv": "^8.2.0", "solidity-rlp": "2.0.8" @@ -33,7 +33,7 @@ "@clrfund/maci-cli": "^1.1.7", "@ethereum-waffle/mock-contract": "^3.4.4", "@kleros/gtcr-encoder": "^1.4.0", - "@nomiclabs/hardhat-ethers": "^2.2.1", + "@nomiclabs/hardhat-ethers": "^2.2.3", "@nomiclabs/hardhat-etherscan": "^3.1.4", "@nomiclabs/hardhat-ganache": "^2.0.1", "@nomiclabs/hardhat-waffle": "^2.0.3", @@ -47,12 +47,12 @@ "eslint-config-prettier": "^8.5.0", "ethereum-waffle": "^3.4.4", "ethers": "^5.7.2", - "hardhat": "^2.12.5", + "hardhat": "^2.19.1", "hardhat-contract-sizer": "^2.6.1", "ipfs-only-hash": "^2.0.1", "solhint": "^3.3.2", "ts-generator": "^0.0.8", - "ts-node": "^8.8.1", + "ts-node": "^10.9.1", "typescript": "^4.9.3" } } diff --git a/contracts/scripts/claim.ts b/contracts/scripts/claim.ts deleted file mode 100644 index 1085d0bec..000000000 --- a/contracts/scripts/claim.ts +++ /dev/null @@ -1,47 +0,0 @@ -import fs from 'fs' -import { ethers } from 'hardhat' - -import { getEventArg } from '../utils/contracts' -import { getRecipientClaimData } from '../utils/maci' - -async function main() { - const [, , , recipient1, recipient2] = await ethers.getSigners() - const state = JSON.parse(fs.readFileSync('state.json').toString()) - const tally = JSON.parse(fs.readFileSync('tally.json').toString()) - - const fundingRound = await ethers.getContractAt( - 'FundingRound', - state.fundingRound - ) - const maciAddress = await fundingRound.maci() - const maci = await ethers.getContractAt('MACI', maciAddress) - const recipientTreeDepth = (await maci.treeDepths()).voteOptionTreeDepth - - // Claim funds - for (const recipientIndex of [1, 2]) { - const recipient = recipientIndex === 1 ? recipient1 : recipient2 - const recipientClaimData = getRecipientClaimData( - recipientIndex, - recipientTreeDepth, - tally - ) - const fundingRoundAsRecipient = fundingRound.connect(recipient) - const claimTx = await fundingRoundAsRecipient.claimFunds( - ...recipientClaimData - ) - const claimedAmount = await getEventArg( - claimTx, - fundingRound, - 'FundsClaimed', - '_amount' - ) - console.log(`Recipient ${recipientIndex} claimed ${claimedAmount} tokens.`) - } -} - -main() - .then(() => process.exit(0)) - .catch((error) => { - console.error(error) - process.exit(1) - }) diff --git a/contracts/scripts/contribute.ts b/contracts/scripts/contribute.ts deleted file mode 100644 index 2aef9b2a6..000000000 --- a/contracts/scripts/contribute.ts +++ /dev/null @@ -1,66 +0,0 @@ -import fs from 'fs' -import { ethers } from 'hardhat' -import { Keypair } from '@clrfund/common' - -import { UNIT } from '../utils/constants' -import { getEventArg } from '../utils/contracts' - -async function main() { - const [, , , , , , , , , , , , contributor1, contributor2] = - await ethers.getSigners() - const state = JSON.parse(fs.readFileSync('state.json').toString()) - const fundingRound = await ethers.getContractAt( - 'FundingRound', - state.fundingRound - ) - const tokenAddress = await fundingRound.nativeToken() - const token = await ethers.getContractAt('AnyOldERC20Token', tokenAddress) - const maciAddress = await fundingRound.maci() - const maci = await ethers.getContractAt('MACI', maciAddress) - - const contributionAmount = UNIT.mul(16).div(10) - state.contributors = {} - - for (const contributor of [contributor1, contributor2]) { - const contributorAddress = await contributor.getAddress() - const contributorKeypair = new Keypair() - const tokenAsContributor = token.connect(contributor) - await tokenAsContributor.approve(fundingRound.address, contributionAmount) - const fundingRoundAsContributor = fundingRound.connect(contributor) - const contributionTx = await fundingRoundAsContributor.contribute( - contributorKeypair.pubKey.asContractParam(), - contributionAmount - ) - const stateIndex = await getEventArg( - contributionTx, - maci, - 'SignUp', - '_stateIndex' - ) - const voiceCredits = await getEventArg( - contributionTx, - maci, - 'SignUp', - '_voiceCreditBalance' - ) - state.contributors[contributorAddress] = { - privKey: contributorKeypair.privKey.serialize(), - pubKey: contributorKeypair.pubKey.serialize(), - stateIndex: parseInt(stateIndex), - voiceCredits: voiceCredits.toString(), - } - console.log( - `Contributor ${contributorAddress} registered. State index: ${stateIndex}. Voice credits: ${voiceCredits.toString()}.` - ) - } - - // Update state file - fs.writeFileSync('state.json', JSON.stringify(state)) -} - -main() - .then(() => process.exit(0)) - .catch((error) => { - console.error(error) - process.exit(1) - }) diff --git a/contracts/scripts/deploy.ts b/contracts/scripts/deploy.ts deleted file mode 100644 index e036e62fe..000000000 --- a/contracts/scripts/deploy.ts +++ /dev/null @@ -1,142 +0,0 @@ -import { ethers } from 'hardhat' -import { Contract, Wallet } from 'ethers' - -import { UNIT } from '../utils/constants' -import { - deployMaciFactory, - deployUserRegistry, - getBrightIdParams, -} from '../utils/deployment' -import { Keypair, PrivKey } from '@clrfund/common' - -// Number.MAX_SAFE_INTEGER - 1 -const challengePeriodSeconds = 9007199254740990 - -/** - * Set the coordinator address and maci public key in the funding round factory - * - * @param fundingRoundFactory funding round factory contract - * @param coordinatorAddress - * @param MaciPrivateKey - */ -async function setCoordinator( - fundingRoundFactory: Contract, - coordinatorAddress: string, - coordinatorKey?: string -) { - // Generate or use the passed in coordinator key - const privKey = coordinatorKey - ? PrivKey.unserialize(coordinatorKey) - : undefined - const keypair = new Keypair(privKey) - const coordinatorPubKey = keypair.pubKey - const serializedCoordinatorPrivKey = keypair.privKey.serialize() - const serializedCoordinatorPubKey = keypair.pubKey.serialize() - const setCoordinatorTx = await fundingRoundFactory.setCoordinator( - coordinatorAddress, - coordinatorPubKey.asContractParam() - ) - await setCoordinatorTx.wait() - console.log('coordinator address:', coordinatorAddress) - console.log('serializedCoordinatorPrivKey: ', serializedCoordinatorPrivKey) - console.log('serializedCoordinatorPubKey: ', serializedCoordinatorPubKey) -} - -async function main() { - const [deployer] = await ethers.getSigners() - console.log(`Deploying from address: ${deployer.address}`) - - const circuit = 'prod' - const maciFactory = await deployMaciFactory(deployer, circuit) - await maciFactory.deployTransaction.wait() - console.log(`MACIFactory deployed: ${maciFactory.address}`) - - const FundingRoundFactory = await ethers.getContractFactory( - 'FundingRoundFactory', - deployer - ) - const fundingRoundFactory = await FundingRoundFactory.deploy( - maciFactory.address - ) - await fundingRoundFactory.deployTransaction.wait() - console.log(`FundingRoundFactory deployed: ${fundingRoundFactory.address}`) - - const transferOwnershipTx = await maciFactory.transferOwnership( - fundingRoundFactory.address - ) - await transferOwnershipTx.wait() - - const userRegistryType = process.env.USER_REGISTRY_TYPE || 'simple' - const brightidParams = getBrightIdParams(userRegistryType) - const userRegistry: Contract = await deployUserRegistry( - userRegistryType, - deployer, - brightidParams - ) - console.log( - `User registry (${userRegistryType}) deployed: ${userRegistry.address}` - ) - - const setUserRegistryTx = await fundingRoundFactory.setUserRegistry( - userRegistry.address - ) - await setUserRegistryTx.wait() - - const recipientRegistryType = process.env.RECIPIENT_REGISTRY_TYPE || 'simple' - let recipientRegistry: Contract - if (recipientRegistryType === 'simple') { - const SimpleRecipientRegistry = await ethers.getContractFactory( - 'SimpleRecipientRegistry', - deployer - ) - recipientRegistry = await SimpleRecipientRegistry.deploy( - fundingRoundFactory.address - ) - } else if (recipientRegistryType === 'optimistic') { - const OptimisticRecipientRegistry = await ethers.getContractFactory( - 'OptimisticRecipientRegistry', - deployer - ) - recipientRegistry = await OptimisticRecipientRegistry.deploy( - UNIT.div(1000), - challengePeriodSeconds, - fundingRoundFactory.address - ) - } else { - throw new Error('unsupported recipient registry type') - } - await recipientRegistry.deployTransaction.wait() - console.log(`Recipient registry deployed: ${recipientRegistry.address}`) - - const setRecipientRegistryTx = await fundingRoundFactory.setRecipientRegistry( - recipientRegistry.address - ) - await setRecipientRegistryTx.wait() - - if (process.env.NATIVE_TOKEN_ADDRESS) { - const setTokenTx = await fundingRoundFactory.setToken( - process.env.NATIVE_TOKEN_ADDRESS - ) - await setTokenTx.wait() - console.log('Set token', process.env.NATIVE_TOKEN_ADDRESS) - } - - const coordinatorAddress = process.env.COORDINATOR_ETH_PK - ? new Wallet(process.env.COORDINATOR_ETH_PK).address - : await deployer.getAddress() - - await setCoordinator( - fundingRoundFactory, - coordinatorAddress, - process.env.COORDINATOR_PK - ) - - console.log(`Deployment complete!`) -} - -main() - .then(() => process.exit(0)) - .catch((error) => { - console.error(error) - process.exit(1) - }) diff --git a/contracts/scripts/deployUserRegistry.ts b/contracts/scripts/deployUserRegistry.ts deleted file mode 100644 index 2373d5451..000000000 --- a/contracts/scripts/deployUserRegistry.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { ethers } from 'hardhat' -import { deployUserRegistry, getBrightIdParams } from '../utils/deployment' - -async function main() { - console.log('*******************') - console.log('Deploying a user registry!') - console.log('*******************') - const [deployer] = await ethers.getSigners() - console.log('deployer.address: ', deployer.address) - - const fundingRoundFactoryAddress = process.env.FACTORY_ADDRESS - - if (!fundingRoundFactoryAddress) { - throw new Error('Environment variable FACTORY_ADDRESS is not setup') - } - const fundingRoundFactory = await ethers.getContractAt( - 'FundingRoundFactory', - fundingRoundFactoryAddress - ) - console.log('funding round factory address ', fundingRoundFactory.address) - - const userRegistryType = process.env.USER_REGISTRY_TYPE || 'simple' - const brightidParams = getBrightIdParams(userRegistryType) - const userRegistry = await deployUserRegistry( - userRegistryType, - deployer, - brightidParams - ) - console.log( - `deployed ${userRegistryType} user registry at ${userRegistry.address}` - ) - - const setUserRegistryTx = await fundingRoundFactory.setUserRegistry( - userRegistry.address - ) - await setUserRegistryTx.wait() - console.log( - 'set user registry in funding round factory at tx hash', - setUserRegistryTx.hash - ) - - console.log('*******************') - console.log('Deploy complete!') - console.log('*******************') -} - -main() - .then(() => process.exit(0)) - .catch((error) => { - console.error(error) - process.exit(1) - }) diff --git a/contracts/scripts/finalize.ts b/contracts/scripts/finalize.ts deleted file mode 100644 index 12f544aad..000000000 --- a/contracts/scripts/finalize.ts +++ /dev/null @@ -1,53 +0,0 @@ -import fs from 'fs' -import { Wallet } from 'ethers' -import { ethers, network } from 'hardhat' - -async function main() { - let factoryAddress, coordinator - if (network.name === 'localhost') { - const state = JSON.parse(fs.readFileSync('state.json').toString()) - factoryAddress = state.factory - - const signers = await ethers.getSigners() - coordinator = signers[0] - } else { - factoryAddress = process.env.FACTORY_ADDRESS || '' - // default to the first account - const coordinatorEthPrivKey = - process.env.COORDINATOR_ETH_PK || - '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80' - coordinator = new Wallet(coordinatorEthPrivKey, ethers.provider) - } - - const tally = JSON.parse(fs.readFileSync('tally.json').toString()) - const factory = await ethers.getContractAt( - 'FundingRoundFactory', - factoryAddress, - coordinator - ) - console.log('Funding round factory address', factory.address) - - const currentRoundAddress = await factory.getCurrentRound() - const fundingRound = await ethers.getContractAt( - 'FundingRound', - currentRoundAddress, - coordinator - ) - console.log('Current round', fundingRound.address) - - const totalSpent = parseInt(tally.totalVoiceCredits.spent) - const totalSpentSalt = tally.totalVoiceCredits.salt - const tx = await factory.transferMatchingFunds(totalSpent, totalSpentSalt) - const receipt = await tx.wait() - console.log( - 'Round finalized, totals verified. Gas used:', - receipt.gasUsed.toString() - ) -} - -main() - .then(() => process.exit(0)) - .catch((error) => { - console.error(error) - process.exit(1) - }) diff --git a/contracts/scripts/newRound.ts b/contracts/scripts/newRound.ts deleted file mode 100644 index 3cf0d6a43..000000000 --- a/contracts/scripts/newRound.ts +++ /dev/null @@ -1,90 +0,0 @@ -import { ethers } from 'hardhat' -import { utils, constants } from 'ethers' - -async function main() { - console.log('*******************') - console.log('Start a new funding round!') - console.log('*******************') - const [deployer] = await ethers.getSigners() - console.log('deployer.address: ', deployer.address) - - const fundingRoundFactoryAddress = process.env.FACTORY_ADDRESS - const userRegistryType = process.env.USER_REGISTRY_TYPE - const brightIdSponsor = process.env.BRIGHTID_SPONSOR - const brightIdVerifier = process.env.BRIGHTID_VERIFIER_ADDR - - if (!fundingRoundFactoryAddress) { - throw new Error('Environment variable FACTORY_ADDRESS is not setup') - } - - if (userRegistryType === 'brightid') { - if (!brightIdSponsor) { - throw new Error('Environment variable BRIGHTID_SPONSOR is not setup') - } - if (!brightIdVerifier) { - throw new Error( - 'Environment variable BRIGHTID_VERIFIER_ADDR is not setup' - ) - } - } - - const factory = await ethers.getContractAt( - 'FundingRoundFactory', - fundingRoundFactoryAddress - ) - console.log('funding round factory address ', factory.address) - - // check if the current round is finalized before starting a new round to avoid revert - const currentRoundAddress = await factory.getCurrentRound() - if (currentRoundAddress !== constants.AddressZero) { - const currentRound = await ethers.getContractAt( - 'FundingRound', - currentRoundAddress - ) - const isFinalized = await currentRound.isFinalized() - if (!isFinalized) { - throw new Error( - 'Cannot start a new round as the current round is not finalized' - ) - } - } - - // deploy a new BrightId user registry for each new round - // to force users to link with BrightId every round - if (userRegistryType === 'brightid') { - const BrightIdUserRegistry = await ethers.getContractFactory( - 'BrightIdUserRegistry', - deployer - ) - - const userRegistry = await BrightIdUserRegistry.deploy( - utils.formatBytes32String(process.env.BRIGHTID_CONTEXT || 'clr.fund'), - brightIdVerifier, - brightIdSponsor - ) - console.log('BrightId user registry address: ', userRegistry.address) - await userRegistry.deployTransaction.wait() - - const setUserRegistryTx = await factory.setUserRegistry( - userRegistry.address - ) - await setUserRegistryTx.wait() - console.log('Set user registry in factory', setUserRegistryTx.hash) - } - - const tx = await factory.deployNewRound() - console.log('Deployed new round, tx hash: ', tx.hash) - await tx.wait() - console.log('New funding round address: ', await factory.getCurrentRound()) - - console.log('*******************') - console.log('Script complete!') - console.log('*******************') -} - -main() - .then(() => process.exit(0)) - .catch((error) => { - console.error(error) - process.exit(1) - }) diff --git a/contracts/scripts/tally.ts b/contracts/scripts/tally.ts new file mode 100644 index 000000000..d94868c12 --- /dev/null +++ b/contracts/scripts/tally.ts @@ -0,0 +1,235 @@ +/** + * Tally votes for the specified funding round. This task can be rerun by + * passing in additional parameters: --maci-logs, --maci-state-file + * + * Make sure to set the following environment variables in the .env file + * if not running test using the localhost network + * 1) COORDINATOR_ETH_PK - coordinator's wallet private key to interact with contracts + * 2) COORDINATOR_PK - coordinator's MACI private key to decrypt messages + * + * Sample usage: + * + * yarn hardhat tally --round-address
--start-block --network + * + * To rerun: + * + * yarn hardhat tally --round-address
--network \ + * --maci-logs --maci-state-file + */ +import { ethers, network, config } from 'hardhat' +import { Contract, Signer } from 'ethers' + +import { DEFAULT_SR_QUEUE_OPS } from '../utils/constants' +import { getIpfsHash } from '../utils/ipfs' +import { JSONFile } from '../utils/JSONFile' +import { + deployContract, + deployPoseidonLibraries, + deployMessageProcesorAndTally, +} from '../utils/deployment' +import { + getGenProofArgs, + genProofs, + proveOnChain, + addTallyResultsBatch, + mergeMaciSubtrees, +} from '../utils/maci' +import { getTalyFilePath } from '../utils/misc' + +/** + * Read variables from the environment file needed + * to run the tally script + * + * @returns data used to run the tally script + */ +function readFromEnvironment(): { + clrfund: string + batchSize: number + circuit: string + circuitDirectory: string + maciTransactionHash?: string + rapidSnarkDirectory?: string + outputDir: string + stateFile?: string + coordinatorMacisk: string + numQueueOps: number +} { + if (!process.env.CLRFUND) { + console.log('process env', process.env) + throw Error('Env. variable CLRFUND not set') + } + + if (!process.env.CIRCUIT_DIRECTORY) { + throw Error('Env. variable CIRCUIT_DIRECTORY not set') + } + + if (!process.env.COORDINATOR_MACISK) { + throw Error('Env. variable COORDINATOR_MACISK not set') + } + + return { + clrfund: process.env.CLRFUND || '', + batchSize: Number(process.env.BATCH_SIZE || '20'), + circuit: process.env.CIRCUIT_TYPE || 'micro', + circuitDirectory: process.env.CIRCUIT_DIRECTORY || '', + maciTransactionHash: process.env.MACI_TRANSACTION_HASH, + rapidSnarkDirectory: process.env.RAPIDSNARK_DIRECTORY, + outputDir: process.env.OUTPUT_DIR || './output', + stateFile: process.env.STATE_FILE, + coordinatorMacisk: process.env.COORDINATOR_MACISK || '', + numQueueOps: Number(process.env.NUM_QUEUE_OPS || DEFAULT_SR_QUEUE_OPS), + } +} + +/** + * Main tally logic + */ +async function main() { + const { + clrfund, + batchSize, + stateFile, + outputDir, + circuit, + circuitDirectory, + rapidSnarkDirectory, + maciTransactionHash, + coordinatorMacisk, + numQueueOps, + } = readFromEnvironment() + + const [coordinator] = await ethers.getSigners() + console.log('Coordinator address: ', coordinator.address) + + const providerUrl = (network.config as any).url + console.log('providerUrl', providerUrl) + + let clrfundContract: Contract + try { + clrfundContract = await ethers.getContractAt( + 'ClrFund', + clrfund, + coordinator + ) + } catch (e) { + console.error('Error accessing ClrFund Contract at', clrfund) + throw e + } + + const fundingRound = await clrfundContract.getCurrentRound() + const fundingRoundContract = await ethers.getContractAt( + 'FundingRound', + fundingRound, + coordinator + ) + console.log('Funding round contract', fundingRoundContract.address) + + const publishedTallyHash = await fundingRoundContract.tallyHash() + console.log('publishedTallyHash', publishedTallyHash) + + let tally + if (!publishedTallyHash) { + const pollIdBN = await fundingRoundContract.pollId() + const pollId = pollIdBN.toString() + console.log('PollId', pollId) + + const maciAddress = await fundingRoundContract.maci() + console.log('MACI address', maciAddress) + + // Generate proof and tally file + const genProofArgs = getGenProofArgs({ + maciAddress, + providerUrl, + pollId, + coordinatorMacisk, + maciTxHash: maciTransactionHash, + rapidSnarkDirectory, + circuitType: circuit, + circuitDirectory, + outputDir, + }) + console.log('genProofsArg', genProofArgs) + + await mergeMaciSubtrees(maciAddress, pollId, numQueueOps) + console.log('Completed tree merge') + + await genProofs(genProofArgs) + console.log('Completed genProofs') + + tally = JSONFile.read(genProofArgs.tally_file) + if (stateFile) { + // Save tally file in the state + JSONFile.update(stateFile, { tallyFile: genProofArgs.tally_file }) + } + + // deploy the MessageProcessor and Tally contracts used by proveOnChain + const { mpContract, tallyContract } = await deployMessageProcesorAndTally({ + artifactsPath: config.paths.artifacts, + ethers, + signer: coordinator, + }) + console.log('MessageProcessor', mpContract.address) + console.log('Tally Contract', tallyContract.address) + + try { + // Submit proofs to MACI contract + await proveOnChain({ + contract: maciAddress, + poll_id: pollId, + mp: mpContract.address, + tally: tallyContract.address, + //subsidy: tallyContractAddress, // TODO: make subsidy optional + proof_dir: outputDir, + }) + } catch (e) { + console.error('proveOnChain failed') + throw e + } + + // set the Tally contract address for verifying tally result on chain + const setTallyTx = await fundingRoundContract.setTally( + tallyContract.address + ) + await setTallyTx.wait() + console.log('Tally contract set in funding round') + + // Publish tally hash + const tallyHash = await getIpfsHash(tally) + await fundingRoundContract.publishTallyHash(tallyHash) + console.log(`Tally hash is ${tallyHash}`) + } else { + // read the tally.json file + console.log(`Tally hash is ${publishedTallyHash}`) + try { + console.log(`Reading tally.json file...`) + const tallyFile = getTalyFilePath(outputDir) + tally = JSONFile.read(tallyFile) + } catch (err) { + console.log('Failed to get tally file', publishedTallyHash) + throw err + } + } + + // Submit results to the funding round contract + const startIndex = await fundingRoundContract.totalTallyResults() + const total = tally.results.tally.length + console.log('Uploading tally results in batches of', batchSize) + const addTallyGas = await addTallyResultsBatch( + fundingRoundContract, + 3, + tally, + batchSize, + startIndex.toNumber(), + (processed: number) => { + console.log(`Processed ${processed} / ${total}`) + } + ) + console.log('Tally results uploaded. Gas used:', addTallyGas.toString()) +} + +main() + .then(() => process.exit(0)) + .catch((error) => { + console.error(error) + process.exit(1) + }) diff --git a/contracts/scripts/vote.ts b/contracts/scripts/vote.ts deleted file mode 100644 index 11d51c272..000000000 --- a/contracts/scripts/vote.ts +++ /dev/null @@ -1,74 +0,0 @@ -import fs from 'fs' -import { ethers } from 'hardhat' -import { BigNumber } from 'ethers' -import { PrivKey, Keypair } from '@clrfund/common' - -import { createMessage } from '../utils/maci' - -async function main() { - const [, , , , , , , , , , , , contributor1, contributor2] = - await ethers.getSigners() - const state = JSON.parse(fs.readFileSync('state.json').toString()) - const coordinatorKeyPair = new Keypair( - PrivKey.unserialize(state.coordinatorPrivKey) - ) - - for (const contributor of [contributor1, contributor2]) { - const contributorAddress = await contributor.getAddress() - const contributorData = state.contributors[contributorAddress] - const contributorKeyPair = new Keypair( - PrivKey.unserialize(contributorData.privKey) - ) - const messages = [] - const encPubKeys = [] - let nonce = 1 - // Change key - const newContributorKeypair = new Keypair() - const [message, encPubKey] = createMessage( - contributorData.stateIndex, - contributorKeyPair, - newContributorKeypair, - coordinatorKeyPair.pubKey, - null, - null, - nonce - ) - messages.push(message.asContractParam()) - encPubKeys.push(encPubKey.asContractParam()) - nonce += 1 - // Vote - for (const recipientIndex of [1, 2]) { - const votes = BigNumber.from(contributorData.voiceCredits).div(4) - const [message, encPubKey] = createMessage( - contributorData.stateIndex, - newContributorKeypair, - null, - coordinatorKeyPair.pubKey, - recipientIndex, - votes, - nonce - ) - messages.push(message.asContractParam()) - encPubKeys.push(encPubKey.asContractParam()) - nonce += 1 - } - - const fundingRoundAsContributor = await ethers.getContractAt( - 'FundingRound', - state.fundingRound, - contributor - ) - await fundingRoundAsContributor.submitMessageBatch( - messages.reverse(), - encPubKeys.reverse() - ) - console.log(`Contributor ${contributorAddress} voted.`) - } -} - -main() - .then(() => process.exit(0)) - .catch((error) => { - console.error(error) - process.exit(1) - }) diff --git a/contracts/sh/runScriptTests.sh b/contracts/sh/runScriptTests.sh new file mode 100755 index 000000000..c3dfccd42 --- /dev/null +++ b/contracts/sh/runScriptTests.sh @@ -0,0 +1,91 @@ +#!/bin/bash +set -e + +# +# Run the hardhat scripts/tasks to simulate e2e testing +# + +# Test settings +NOW=$(date +%s) +OUTPUT_DIR="./proof_output/${NOW}" +CIRCUIT=micro +NETWORK=localhost +CIRCUIT_DIRECTORY=${CIRCUIT_DIRECTORY:-"./snark-params"} +STATE_FILE=${OUTPUT_DIR}/state.json + +# 20 mins +ROUND_DURATION=1800 + +mkdir -p ${OUTPUT_DIR} + +# A helper to extract field value from the JSON state file +# The pattern "field": "value" must be on 1 line +# Usage: extract 'clrfund' +function extract() { + val=$(cat "${STATE_FILE}" | grep "${1}" | grep -o "[^:]*$" | grep -o '[^",]*') + echo ${val} +} + +# create a ClrFund deployer +yarn hardhat new-deployer \ + --directory "${CIRCUIT_DIRECTORY}" \ + --state-file "${STATE_FILE}" \ + --network "${NETWORK}" +DEPLOYER=$(extract 'deployer') + +# create a new maci key for the coordinator +MACI_KEYPAIR=$(yarn hardhat new-maci-key) +MACI_SECRET_KEY=$(echo "${MACI_KEYPAIR}" | grep -o "macisk.*$") + +# create a new instance of ClrFund +yarn hardhat new-clrfund --deployer ${DEPLOYER} \ + --user-type simple \ + --recipient-type simple \ + --coordinator-macisk "${MACI_SECRET_KEY}" \ + --state-file "${STATE_FILE}" \ + --network "${NETWORK}" +CLRFUND=$(extract 'clrfund') + +# deploy a new funding round +yarn hardhat new-round \ + --clrfund ${CLRFUND} \ + --state-file "${STATE_FILE}" \ + --duration "${ROUND_DURATION}" \ + --network "${NETWORK}" +FUNDING_ROUND=$(extract 'fundingRound') + +yarn hardhat add-contributors --clrfund ${CLRFUND} --network "${NETWORK}" +yarn hardhat add-recipients --clrfund ${CLRFUND} --network "${NETWORK}" + +yarn hardhat contribute --state-file "${STATE_FILE}" --network "${NETWORK}" +yarn hardhat vote \ + --coordinator-macisk "${MACI_SECRET_KEY}" \ + --state-file "${STATE_FILE}" \ + --network "${NETWORK}" +yarn hardhat time-travel ${ROUND_DURATION} --network "${NETWORK}" + +# run the tally script +export CIRCUIT=micro +export CIRCUIT_DIRECTORY="${CIRCUIT_DIRECTORY}" +export CLRFUND="${CLRFUND}" +export STATE_FILE="${STATE_FILE}" +export TALLY_BATCH_SIZE=10 +export PROOF_OUTPUT_DIR="${PROOF_OUTPUT_DIR}" +export COORDINATOR_MACISK="${MACI_SECRET_KEY}" +export MACI_TRANSACTION_HASH=$(extract 'maciTxHash') +export OUTPUT_DIR="${OUTPUT_DIR}" +export NODE_OPTIONS=--max-old-space-size=4096 +yarn hardhat run scripts/tally.ts --network "${NETWORK}" + +# finalize the round +TALLY_FILE=$(extract 'tallyFile') +yarn hardhat finalize \ + --clrfund "${CLRFUND}" \ + --tally-file "${TALLY_FILE}" \ + --network "${NETWORK}" + +# claim funds +yarn hardhat claim \ + --funding-round ${FUNDING_ROUND} \ + --network "${NETWORK}" + diff --git a/contracts/tasks/addContributors.ts b/contracts/tasks/addContributors.ts new file mode 100644 index 000000000..2e4bee422 --- /dev/null +++ b/contracts/tasks/addContributors.ts @@ -0,0 +1,41 @@ +/** + * Add contributors for testing purposes + * + * Sample usage: + * + * yarn hardhat add-contributors --network \ + * --state-file + * + */ + +import { task } from 'hardhat/config' + +task('add-contributors', 'Add test contributors') + .addParam('clrfund', 'The ClrFund contract address') + .setAction(async ({ clrfund }, { ethers }) => { + const [signer, , , , , , , , , , , , contributor1, contributor2] = + await ethers.getSigners() + console.log('Adding contributors by', signer.address) + + const clrfundContract = await ethers.getContractAt( + 'ClrFund', + clrfund, + signer + ) + const userRegistryAddress = await clrfundContract.userRegistry() + console.log('User registry address', userRegistryAddress) + + const userRegistry = await ethers.getContractAt( + 'SimpleUserRegistry', + userRegistryAddress, + signer + ) + const users = [contributor1, contributor2] + let addUserTx + for (const account of users) { + addUserTx = await userRegistry.addUser(account.getAddress()) + addUserTx.wait() + } + + console.log(`Added ${users.length} contributors`) + }) diff --git a/contracts/tasks/addRecipients.ts b/contracts/tasks/addRecipients.ts new file mode 100644 index 000000000..0a42110ae --- /dev/null +++ b/contracts/tasks/addRecipients.ts @@ -0,0 +1,45 @@ +/** + * Add recipients for testing purposes + * + * Sample usage: + * + * yarn hardhat add-recipients --network --clrfund + * + */ + +import { task } from 'hardhat/config' + +task('add-recipients', 'Add test recipients') + .addParam('clrfund', 'The ClrFund contract address') + .setAction(async ({ clrfund }, { ethers }) => { + const [signer, ...recipients] = await ethers.getSigners() + console.log('Add recipients by', signer.address) + + const clrfundContract = await ethers.getContractAt( + 'ClrFund', + clrfund, + signer + ) + const recipientRegistryAddress = await clrfundContract.recipientRegistry() + console.log('Recipient registry', recipientRegistryAddress) + + const recipientRegistry = await ethers.getContractAt( + 'SimpleRecipientRegistry', + recipientRegistryAddress, + signer + ) + + for (let i = 6; i < 10; i++) { + const recipient = recipients[i] + const addRecipientTx = await recipientRegistry.addRecipient( + recipient.address, + JSON.stringify({ + name: `recipient ${i}`, + description: `recipient ${i}`, + }) + ) + addRecipientTx.wait() + } + + console.log('Added test recipients') + }) diff --git a/contracts/tasks/cancelRound.ts b/contracts/tasks/cancelRound.ts index f32aeabbe..f1cb010d5 100644 --- a/contracts/tasks/cancelRound.ts +++ b/contracts/tasks/cancelRound.ts @@ -1,17 +1,17 @@ import { task } from 'hardhat/config' task('cancel-round', 'Cancel the current round') - .addParam('factory', 'The funding round factory contract address') - .setAction(async ({ factory }, { ethers }) => { + .addParam('clrfund', 'The ClrFund contract address') + .setAction(async ({ clrfund }, { ethers }) => { const [deployer] = await ethers.getSigners() console.log('deployer', deployer.address) - const fundingRoundFactory = await ethers.getContractAt( - 'FundingRoundFactory', - factory, + const clrfundContract = await ethers.getContractAt( + 'ClrFund', + clrfund, deployer ) - const cancelTx = await fundingRoundFactory.cancelCurrentRound() + const cancelTx = await clrfundContract.cancelCurrentRound() await cancelTx.wait() console.log('Cancel transaction hash: ', cancelTx.hash) }) diff --git a/contracts/tasks/claim.ts b/contracts/tasks/claim.ts new file mode 100644 index 000000000..258e6d46b --- /dev/null +++ b/contracts/tasks/claim.ts @@ -0,0 +1,56 @@ +/** + * Claim funds. This script is mainly used by e2e testing + * + * Sample usage: + * yarn hardhat claim --funding-round --network + */ + +import { task } from 'hardhat/config' +import { getEventArg } from '../utils/contracts' +import { getRecipientClaimData } from '@clrfund/common' +import { JSONFile } from '../utils/JSONFile' +import { getTalyFilePath } from '../utils/misc' + +task('claim', 'Claim funnds for test recipients') + .addParam('fundingRound', 'The funding round contract address') + .addParam('tallyDirectory', 'The tally file directory') + .setAction(async ({ fundingRound, tallyDirectory }, { ethers }) => { + const [, , recipient0, recipient1, recipient2] = await ethers.getSigners() + const tallyFile = getTalyFilePath(tallyDirectory) + const tally = JSONFile.read(tallyFile) + + const fundingRoundContract = await ethers.getContractAt( + 'FundingRound', + fundingRound + ) + const pollAddress = await fundingRoundContract.poll() + console.log('pollAddress', pollAddress) + + const poll = await ethers.getContractAt('Poll', pollAddress) + const recipientTreeDepth = (await poll.treeDepths()).voteOptionTreeDepth + + // Claim funds + const recipients = [recipient0, recipient1, recipient2] + for (const recipientIndex of [1, 2]) { + const recipientClaimData = getRecipientClaimData( + recipientIndex, + recipientTreeDepth, + tally + ) + const fundingRoundAsRecipient = fundingRoundContract.connect( + recipients[recipientIndex] + ) + const claimTx = await fundingRoundAsRecipient.claimFunds( + ...recipientClaimData + ) + const claimedAmount = await getEventArg( + claimTx, + fundingRoundAsRecipient, + 'FundsClaimed', + '_amount' + ) + console.log( + `Recipient ${recipientIndex} claimed ${claimedAmount} tokens.` + ) + } + }) diff --git a/contracts/tasks/contribute.ts b/contracts/tasks/contribute.ts new file mode 100644 index 000000000..7417ecc78 --- /dev/null +++ b/contracts/tasks/contribute.ts @@ -0,0 +1,76 @@ +/** + * Contribute to a funding round. This script is mainly used by e2e testing + * All the input used by the script comes from the state.json file + * + * Sample usage: + * yarn hardhat contribute --state-file --network + */ + +import { task } from 'hardhat/config' +import { JSONFile } from '../utils/JSONFile' +import { Keypair } from '@clrfund/common' + +import { UNIT } from '../utils/constants' +import { getEventArg } from '../utils/contracts' + +task('contribute', 'Contribute to a funding round') + .addParam('stateFile', 'The file to store the state information') + .setAction(async ({ stateFile }, { ethers }) => { + const [, , , , , , , , , , , , contributor1, contributor2] = + await ethers.getSigners() + + const state = JSONFile.read(stateFile) + const fundingRound = await ethers.getContractAt( + 'FundingRound', + state.fundingRound + ) + const tokenAddress = await fundingRound.nativeToken() + const token = await ethers.getContractAt('AnyOldERC20Token', tokenAddress) + const maciAddress = await fundingRound.maci() + const maci = await ethers.getContractAt('MACI', maciAddress) + + const contributionAmount = UNIT.mul(16).div(10) + + state.contributors = {} + for (const contributor of [contributor1, contributor2]) { + const contributorAddress = await contributor.getAddress() + + // transfer token to contributor first + await token.transfer(contributorAddress, contributionAmount) + + const contributorKeypair = new Keypair() + const tokenAsContributor = token.connect(contributor) + await tokenAsContributor.approve(fundingRound.address, contributionAmount) + + const fundingRoundAsContributor = fundingRound.connect(contributor) + const contributionTx = await fundingRoundAsContributor.contribute( + contributorKeypair.pubKey.asContractParam(), + contributionAmount + ) + const stateIndex = await getEventArg( + contributionTx, + maci, + 'SignUp', + '_stateIndex' + ) + const voiceCredits = await getEventArg( + contributionTx, + maci, + 'SignUp', + '_voiceCreditBalance' + ) + console.log('saving states') + state.contributors[contributorAddress] = { + privKey: contributorKeypair.privKey.serialize(), + pubKey: contributorKeypair.pubKey.serialize(), + stateIndex: parseInt(stateIndex), + voiceCredits: voiceCredits.toString(), + } + console.log( + `Contributor ${contributorAddress} registered. State index: ${stateIndex}. Voice credits: ${voiceCredits.toString()}.` + ) + } + + // Update state file + JSONFile.update(stateFile, state) + }) diff --git a/contracts/tasks/finalize.ts b/contracts/tasks/finalize.ts new file mode 100644 index 000000000..62a061093 --- /dev/null +++ b/contracts/tasks/finalize.ts @@ -0,0 +1,65 @@ +/** + * Finalize a funding round + * + * Sample usage: + * yarn hardhat finalize \ + * --funding-round --network + */ + +import { task } from 'hardhat/config' +import { JSONFile } from '../utils/JSONFile' +import { genTallyResultCommitment } from '@clrfund/common' + +task('finalize', 'Finalize a funding round') + .addParam('clrfund', 'The ClrFund contract address') + .addParam('tallyFile', 'The tally file path') + .setAction(async ({ clrfund, tallyFile }, { ethers }) => { + const tally = JSONFile.read(tallyFile) + if (!tally.maci) { + throw Error('Bad tally file ' + tallyFile) + } + + const clrfundContract = await ethers.getContractAt('ClrFund', clrfund) + console.log('ClrFund address', clrfund) + + const currentRoundAddress = await clrfundContract.getCurrentRound() + const fundingRound = await ethers.getContractAt( + 'FundingRound', + currentRoundAddress + ) + console.log('Current round', fundingRound.address) + + const pollAddress = await fundingRound.poll() + const pollContract = await ethers.getContractAt('Poll', pollAddress) + console.log('Poll', pollAddress) + + const treeDepths = await pollContract.treeDepths() + console.log('voteOptionTreeDepth', treeDepths.voteOptionTreeDepth) + + const totalSpent = parseInt(tally.totalSpentVoiceCredits.spent) + const totalSpentSalt = tally.totalSpentVoiceCredits.salt + + const resultsCommitment = genTallyResultCommitment( + tally.results.tally.map((x: string) => BigInt(x)), + tally.results.salt, + treeDepths.voteOptionTreeDepth + ) + + const perVOVoiceCreditCommitment = genTallyResultCommitment( + tally.perVOSpentVoiceCredits.tally.map((x: string) => BigInt(x)), + tally.perVOSpentVoiceCredits.salt, + treeDepths.voteOptionTreeDepth + ) + + const tx = await clrfundContract.transferMatchingFunds( + totalSpent, + totalSpentSalt, + resultsCommitment, + perVOVoiceCreditCommitment + ) + const receipt = await tx.wait() + console.log( + 'Round finalized, totals verified. Gas used:', + receipt.gasUsed.toString() + ) + }) diff --git a/contracts/tasks/index.ts b/contracts/tasks/index.ts index 1988492ab..12beb4e12 100644 --- a/contracts/tasks/index.ts +++ b/contracts/tasks/index.ts @@ -1,20 +1,35 @@ +import './newDeployer' +import './newClrFund' +import './newMaciKey' +import './newRound' +import './setToken' +import './setCoordinator' +import './setUserRegistry' +import './setRecipientRegistry' +import './setMaciParameters' +import './setPollFactory' +import './cancelRound' +import './addContributors' +import './addRecipients' +import './contribute' +import './vote' +import './timeTravel' +import './finalize' +import './claim' + +import './verifyAll' import './verifyMaciFactory' -import './verifyRoundFactory' -//import './verifyRound' -//import './verifyMaci' -//import './verifyRecipientRegistry' -//import './verifyUserRegistry' -//import './verifyAll' -//import './cancelRound' -//import './evmIncreaseTime' -//import './auditTally' -//import './exportRound' -//import './mergeAllocations' -//import './setDurations' -//import './deploySponsor' -//import './loadUsers' -// TODO: make tally script work with MACI v1 -//import './tally' -//import './findStorageSlot' -//import './setStorageRoot' -//import './loadMerkleUsers' +import './verifyRound' +import './verifyMaci' +import './verifyRecipientRegistry' +import './verifyUserRegistry' +import './auditTally' +import './exportRound' +import './mergeAllocations' +import './deploySponsor' +import './loadUsers' +import './findStorageSlot' +import './setStorageRoot' +import './loadMerkleUsers' + +import './pubkey' diff --git a/contracts/tasks/newClrFund.ts b/contracts/tasks/newClrFund.ts new file mode 100644 index 000000000..54a5c18ca --- /dev/null +++ b/contracts/tasks/newClrFund.ts @@ -0,0 +1,144 @@ +/** + * Create a new instance of the ClrFund contract. + * If the coordinator ETH address is not provided, use the signer address + * If the coordinator MACI secret key is not provided, create a random one + * + * Sample usage: + * + * yarn hardhat new-clrfund --network \ + * --deployer \ + * --token \ + * [--coordinator ] \ + * [--coordinator-macisk ] \ + * [--user-type ] \ + * [--recipient-type ] + * + * + * If user registry address and recipient registry address are not provided, + * the registry types become mandatory as well as the other parameters needed + * to deploy the registries + * + * If token is not provided, a new ERC20 token will be created + */ + +import { task } from 'hardhat/config' +import { getEventArg } from '../utils/contracts' +import { challengePeriodSeconds } from '../utils/deployment' +import { JSONFile } from '../utils/JSONFile' + +task('new-clrfund', 'Deploy a new ClrFund instance') + .addParam('deployer', 'ClrFund deployer contract address') + .addOptionalParam('token', 'The token address') + .addOptionalParam('coordinator', 'The coordinator ETH address') + .addOptionalParam( + 'coordinatorMacisk', + 'The coordinator MACI serialized secret key' + ) + .addOptionalParam( + 'userType', + 'The user registry type, e.g brightid, simple, merkle, snapshot' + ) + .addOptionalParam('userRegistry', 'The user registry contract address') + .addOptionalParam('context', 'The BrightId context') + .addOptionalParam('verifier', 'The BrightId verifier address') + .addOptionalParam('sponsor', 'The BrightId sponsor contract address') + .addOptionalParam('recipientType', 'The recipient registry type') + .addOptionalParam('recipientRegistry', 'The recipient registry address') + .addOptionalParam( + 'deposit', + 'The deposit for optimistic recipient registry', + '0.01' + ) + .addOptionalParam( + 'challengePeriod', + 'The challenge period for optimistic recipient registry', + challengePeriodSeconds + ) + .addOptionalParam('stateFile', 'The state file to save the clrfund address') + .setAction( + async ( + { + deployer, + token, + coordinator, + coordinatorMacisk, + userType, + userRegistry, + context, + verifier, + sponsor, + recipientType, + recipientRegistry, + deposit, + challengePeriod, + stateFile, + }, + { run, ethers } + ) => { + const [signer] = await ethers.getSigners() + console.log(`Deploying from address: ${signer.address}`) + + const clrfundDeployer = await ethers.getContractAt( + 'ClrFundDeployer', + deployer + ) + console.log('ClrFundDeployer:', clrfundDeployer.address) + + const tx = await clrfundDeployer.deployClrFund() + const receipt = await tx.wait() + + let clrfund: string + try { + clrfund = await getEventArg( + tx, + clrfundDeployer, + 'NewInstance', + 'clrfund' + ) + console.log('ClrFund: ', clrfund) + } catch (e) { + console.log('receipt', receipt) + throw new Error( + 'Unable to get clrfund address after deployment. ' + + (e as Error).message + ) + } + + // set coordinator, use the coordinator address if available, + // otherwise use the signer address + // If the maci secret key is not provided, it will create a new key + const coordinatorAddress = coordinator ?? signer.address + await run('set-coordinator', { + clrfund, + coordinator: coordinatorAddress, + coordinatorMacisk, + stateFile, + }) + + // set token + await run('set-token', { clrfund, token }) + + // set user registry + await run('set-user-registry', { + clrfund, + type: userType, + registry: userRegistry, + context, + verifier, + sponsor, + }) + + // set recipient registry + await run('set-recipient-registry', { + clrfund, + type: recipientType, + registry: recipientRegistry, + deposit, + challengePeriod, + }) + + if (stateFile) { + JSONFile.update(stateFile, { clrfund }) + } + } + ) diff --git a/contracts/tasks/newDeployer.ts b/contracts/tasks/newDeployer.ts new file mode 100644 index 000000000..d14f499e2 --- /dev/null +++ b/contracts/tasks/newDeployer.ts @@ -0,0 +1,75 @@ +/** + * Create a new instance of the ClrFundDeployer + * + * Sample usage: + * + * yarn hardhat new-deployer --network + * + */ + +import { task } from 'hardhat/config' +import { + deployContract, + deployPoseidonLibraries, + deployMaciFactory, +} from '../utils/deployment' +import { DEFAULT_CIRCUIT } from '../utils/circuits' +import { JSONFile } from '../utils/JSONFile' + +task('new-deployer', 'Create the ClrFund deployer and its dependent contracts') + .addParam('circuit', 'The circuit type', DEFAULT_CIRCUIT) + .addParam('directory', 'The zkeys directory') + .addParam('stateFile', 'The file to save the deployer contract address') + .setAction( + async ({ circuit, directory, stateFile }, { ethers, config, run }) => { + const [signer] = await ethers.getSigners() + console.log(`Deploying from address: ${signer.address}`) + + const libraries = await deployPoseidonLibraries({ + artifactsPath: config.paths.artifacts, + signer, + ethers, + }) + console.log('Deployed Poseidons', libraries) + + const maciFactory = await deployMaciFactory({ libraries, ethers }) + console.log('Deployed MaciFactory at', maciFactory.address) + + await run('set-maci-parameters', { + maciFactory: maciFactory.address, + circuit, + directory, + }) + + const clrfundTemplate = await deployContract({ + name: 'ClrFund', + ethers, + }) + console.log('Deployed clrfundTemplate at', clrfundTemplate.address) + + const fundingRoundFactory = await deployContract({ + name: 'FundingRoundFactory', + libraries, + ethers, + }) + console.log( + 'Deployed FundingRoundFactory at', + fundingRoundFactory.address + ) + + const clrfundDeployer = await deployContract({ + name: 'ClrFundDeployer', + ethers, + contractArgs: [ + clrfundTemplate.address, + maciFactory.address, + fundingRoundFactory.address, + ], + }) + console.log('Deployed ClrfundDeployer at', clrfundDeployer.address) + + if (stateFile) { + JSONFile.update(stateFile, { deployer: clrfundDeployer.address }) + } + } + ) diff --git a/contracts/tasks/newMaciKey.ts b/contracts/tasks/newMaciKey.ts new file mode 100644 index 000000000..ff8152e25 --- /dev/null +++ b/contracts/tasks/newMaciKey.ts @@ -0,0 +1,19 @@ +/** + * Create a new MACI key pair + * + * Sample usage: + * + * yarn hardhat new-maci-key + */ + +import { task } from 'hardhat/config' +import { Keypair } from '@clrfund/maci-domainobjs' + +task('new-maci-key', 'Create a random maci key pair').setAction(async () => { + const keypair = new Keypair() + const SecretKey = keypair.privKey.serialize() + const PublicKey = keypair.pubKey.serialize() + + console.log(`SecretKey: ${SecretKey}`) + console.log(`PublicKey: ${PublicKey}`) +}) diff --git a/contracts/tasks/newRound.ts b/contracts/tasks/newRound.ts new file mode 100644 index 000000000..c58ff2b50 --- /dev/null +++ b/contracts/tasks/newRound.ts @@ -0,0 +1,77 @@ +/** + * Create a new instance of the ClrFundDeployer + * + * Sample usage: + * + * yarn hardhat new-round \ + * --network \ + * --clrfund \ + * --duration + * + */ +import { task, types } from 'hardhat/config' +import { JSONFile } from '../utils/JSONFile' + +task('new-round', 'Deploy a new funding round contract') + .addParam('clrfund', 'ClrFund contract address') + .addParam('duration', 'The funding round duration in seconds') + .addOptionalParam( + 'newBrightid', + 'Create a new BrightId user registry', + false, + types.boolean + ) + .addOptionalParam('context', 'BrightId context') + .addOptionalParam('verifier', 'BrightId verifier') + .addOptionalParam('sponsor', 'BrightId sponsor') + .addOptionalParam('stateFile', 'Save the state information in state file') + .setAction( + async ( + { clrfund, duration, newBrightid, context, verifier, sponsor, stateFile }, + { ethers, run } + ) => { + const [signer] = await ethers.getSigners() + console.log(`Deploying from address: ${signer.address}`) + + const clrfundContract = await ethers.getContractAt('ClrFund', clrfund) + + // check if the current round is finalized before starting a new round to avoid revert + const currentRoundAddress = await clrfundContract.getCurrentRound() + if (currentRoundAddress !== ethers.constants.AddressZero) { + const currentRound = await ethers.getContractAt( + 'FundingRound', + currentRoundAddress + ) + const isFinalized = await currentRound.isFinalized() + if (!isFinalized) { + throw new Error( + 'Cannot start a new round as the current round is not finalized' + ) + } + } + + if (newBrightid) { + await run('set-user-registry', { + clrfund, + type: 'brightid', + sponsor, + verifier, + context, + }) + } + + const tx = await clrfundContract.deployNewRound(duration) + await tx.wait() + const fundingRound = await clrfundContract.getCurrentRound() + console.log('New funding round address: ', fundingRound) + + if (stateFile) { + const pollId = 0 + const state = { fundingRound, pollId, maciTxHash: tx.hash } + JSONFile.update(stateFile, state) + } + console.log('*******************') + console.log('Script complete!') + console.log('*******************') + } + ) diff --git a/contracts/tasks/pubkey.ts b/contracts/tasks/pubkey.ts new file mode 100644 index 000000000..592bfd0f4 --- /dev/null +++ b/contracts/tasks/pubkey.ts @@ -0,0 +1,30 @@ +/** + * Print the serialized MACI public key given either the secret key or + * the x and y values of the public key + * + * Usage: hardhat pubkey --macisk + */ +import { utils } from 'ethers' +import { task } from 'hardhat/config' +import { PubKey, PrivKey, Keypair } from '@clrfund/maci-domainobjs' + +task('pubkey', 'Get the serialized MACI public key') + .addOptionalParam('x', 'MACI public key x') + .addOptionalParam('y', 'MACI public key y') + .addOptionalParam('macisk', 'MACI secret key') + .setAction(async ({ x, y, macisk }) => { + if (macisk) { + const keypair = new Keypair(PrivKey.unserialize(macisk)) + console.log(`Public Key: ${keypair.pubKey.serialize()}`) + } else { + if (!x || !y) { + console.error('Must provide either macisk or x y values') + return + } + const pubKey = new PubKey([BigInt(x), BigInt(y)]) + console.log(`Public Key: ${pubKey.serialize()}`) + + const id = utils.id(x + '.' + y) + console.log(`Subgraph id: ${id}`) + } + }) diff --git a/contracts/tasks/setCoordinator.ts b/contracts/tasks/setCoordinator.ts new file mode 100644 index 000000000..6d259b535 --- /dev/null +++ b/contracts/tasks/setCoordinator.ts @@ -0,0 +1,68 @@ +/** + * Set the coordinator in ClrFund, create the MACI key if not provided + * + * Sample usage: + * + * yarn hardhat set-coordinator --network \ + * --clrfund \ + * --coordinator \ + * [--coordinator-macisk ] + */ + +import { task } from 'hardhat/config' +import { PrivKey, Keypair } from '@clrfund/maci-domainobjs' +import { Contract } from 'ethers' + +/** + * Set the coordinator address and maci public key in the funding round factory + * + * @param fundingRoundFactory funding round factory contract + * @param coordinatorAddress + * @param MaciPrivateKey + */ +async function setCoordinator({ + clrfundContract, + coordinatorAddress, + coordinatorMacisk, +}: { + clrfundContract: Contract + coordinatorAddress: string + coordinatorMacisk?: string + stateFile?: string +}) { + // Generate or use the passed in coordinator key + const privKey = coordinatorMacisk + ? PrivKey.unserialize(coordinatorMacisk) + : undefined + + const keypair = new Keypair(privKey) + const coordinatorPubKey = keypair.pubKey + const SecretKey = keypair.privKey.serialize() + const PublicKey = keypair.pubKey.serialize() + + const setCoordinatorTx = await clrfundContract.setCoordinator( + coordinatorAddress, + coordinatorPubKey.asContractParam() + ) + await setCoordinatorTx.wait() + + console.log(`Coordinator address: ${coordinatorAddress}`) + console.log(`SecretKey: ${SecretKey}`) + console.log(`PublicKey: ${PublicKey}`) +} + +task('set-coordinator', 'Set the coordinator address and maci key') + .addParam('clrfund', 'The funding round factory contract address') + .addParam('coordinator', 'The coordinator ETH address') + .addOptionalParam('coordinatorMacisk', 'The coordinator maci secret key') + .setAction( + async ({ clrfund, coordinator, coordinatorMacisk }, { ethers }) => { + const clrfundContract = await ethers.getContractAt('ClrFund', clrfund) + + await setCoordinator({ + clrfundContract, + coordinatorAddress: coordinator, + coordinatorMacisk, + }) + } + ) diff --git a/contracts/tasks/setDurations.ts b/contracts/tasks/setDurations.ts deleted file mode 100644 index 29567f812..000000000 --- a/contracts/tasks/setDurations.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { task, types } from 'hardhat/config' -import { MaciParameters } from '../utils/maci' - -task('set-durations', 'Set the signup and voting durations for future rounds') - .addParam('factory', 'The funding round factory contract address') - .addParam('signup', 'Sign up duration in minutes', 60, types.int) - .addParam('voting', 'Voting duration in minutes', 10, types.int) - .setAction(async ({ factory, signup, voting }, { ethers }) => { - const signUpDuration = signup * 60 - const votingDuration = voting * 60 - - const fundingRoundFactory = await ethers.getContractAt( - 'FundingRoundFactory', - factory - ) - - const maciFactoryAddress = await fundingRoundFactory.maciFactory() - const maciFactory = await ethers.getContractAt( - 'MACIFactory', - maciFactoryAddress - ) - const maciParameters = await MaciParameters.read(maciFactory) - maciParameters.update({ - signUpDuration, - votingDuration, - }) - const setMaciParametersTx = await fundingRoundFactory.setMaciParameters( - ...maciParameters.values() - ) - await setMaciParametersTx.wait() - - const newParams = await MaciParameters.read(maciFactory) - console.log('New durations set', newParams) - }) diff --git a/contracts/tasks/setMaciParameters.ts b/contracts/tasks/setMaciParameters.ts new file mode 100644 index 000000000..ad4a3678a --- /dev/null +++ b/contracts/tasks/setMaciParameters.ts @@ -0,0 +1,33 @@ +/** + * Set the zkeys parameters in MACI factory + * Sample usage: + * + * yarn hardhat set-maci-parameters \ + * --circuit \ + * --maci-factory \ + * --network + * + * See utils/circuits.ts for the circuit type value + */ + +import { task } from 'hardhat/config' +import { DEFAULT_CIRCUIT } from '../utils/circuits' +import { MaciParameters } from '../utils/maciParameters' + +task('set-maci-parameters', 'Set the token in ClrFund') + .addParam('maciFactory', 'The MACIFactory contract address') + .addParam('circuit', 'The circuit type', DEFAULT_CIRCUIT) + .addParam('directory', 'The zkeys directory') + .setAction(async ({ maciFactory, circuit, directory }, { ethers }) => { + const factory = await ethers.getContractAt('MACIFactory', maciFactory) + + const maciParameters = await MaciParameters.fromConfig(circuit, directory) + const setMaciTx = await factory.setMaciParameters( + ...maciParameters.asContractParam() + ) + console.log('Set MACI parameters at ', setMaciTx.hash) + await setMaciTx.wait() + + const newParameters = await MaciParameters.fromContract(factory) + console.log(newParameters) + }) diff --git a/contracts/tasks/setPollFactory.ts b/contracts/tasks/setPollFactory.ts new file mode 100644 index 000000000..921872f6a --- /dev/null +++ b/contracts/tasks/setPollFactory.ts @@ -0,0 +1,39 @@ +/** + * Set the Poll factory in the MACI factory + * Usage: + * hardhat set-poll-factory \ + * --maci-factory \ + * [--poll-factory ] \ + * --network + */ +import { task } from 'hardhat/config' +import { deployPollFactory } from '../utils/deployment' + +task( + 'set-poll-factory', + 'Set (create if non-existent) the Poll factory address in the MACI factory' +) + .addParam('maciFactory', 'The MACI factory contract address') + .addOptionalParam('pollFactory', 'The poll factory contract address') + .setAction(async ({ maciFactory, pollFactory }, { ethers, config }) => { + const maciFactoryContract = await ethers.getContractAt( + 'MACIFactory', + maciFactory + ) + + let pollFactoryAddress = pollFactory + if (!pollFactoryAddress) { + const [signer] = await ethers.getSigners() + const pollFactoryContract = await deployPollFactory({ + signer, + ethers, + artifactPath: config.paths.artifacts, + }) + pollFactoryAddress = pollFactoryContract.address + } + + const tx = await maciFactoryContract.setPollFactory(pollFactoryAddress) + await tx.wait() + + console.log('Set poll factory at tx', tx.hash) + }) diff --git a/contracts/tasks/setRecipientRegistry.ts b/contracts/tasks/setRecipientRegistry.ts new file mode 100644 index 000000000..e92553933 --- /dev/null +++ b/contracts/tasks/setRecipientRegistry.ts @@ -0,0 +1,137 @@ +/** + * Set the recipient registry in the ClrFund contract. + * + * Sample usage: + * + * yarn hardhat set-recipient-registry --network \ + * --clrfund \ + * [--type ] \ + * [--registry ] \ + * [--context ] \ + * [--verifier ] \ + * [--sponsor ] + * + * Valid user registry types are simple, brightid, merkle, storage + * + * Verifier is the brightid node verifier address. + * Clrfund's brightId node is in the ethSigningAddress field from https://brightid.clr.fund + * + */ + +import { task } from 'hardhat/config' +import { BigNumber, Contract, utils } from 'ethers' +import { HardhatEthersHelpers } from '@nomiclabs/hardhat-ethers/types' +import { + deployRecipientRegistry, + challengePeriodSeconds, +} from '../utils/deployment' + +async function getDepositInUnits( + clrfundContract: Contract, + ethers: HardhatEthersHelpers, + deposit: string +): Promise { + let depositInUnits = BigNumber.from(0) + try { + const token = await clrfundContract.nativeToken() + const tokenContract = await ethers.getContractAt('ERC20', token) + const decimals = await tokenContract.decimals() + depositInUnits = utils.parseUnits(deposit, decimals) + } catch (e) { + console.log('Error formatting deposit amount ' + (e as Error).message) + console.log('Set deposit to 0') + } + + return depositInUnits +} + +/** + * Set the token address in the ClrFund contract + * + * @param clrfundContract ClrFund contract + * @param registryType The user registry type, e.g brightid, simple, merkle, snapshot + * @param registryAddress The user registry address to set in ClrFund + * @param ethers the hardhat ethers handle + */ +async function setRecipientRegistry({ + clrfundContract, + registryType, + registryAddress, + deposit, + challengePeriod, + ethers, +}: { + clrfundContract: Contract + registryType?: string + registryAddress?: string + deposit: string + challengePeriod: string + ethers: HardhatEthersHelpers +}) { + let recipientRegistryAddress = registryAddress + if (!recipientRegistryAddress) { + const recipientRegistryType = registryType || '' + const [signer] = await ethers.getSigners() + console.log(`Deploying recipient registry by: ${signer.address}`) + + const controller = clrfundContract.address + const depositInUnits = await getDepositInUnits( + clrfundContract, + ethers, + deposit + ) + const registry = await deployRecipientRegistry({ + type: recipientRegistryType, + controller, + deposit: depositInUnits, + challengePeriod, + ethers, + }) + recipientRegistryAddress = registry.address + } + + const tx = await clrfundContract.setRecipientRegistry( + recipientRegistryAddress + ) + await tx.wait() + + console.log( + `Recipient registry (${registryType}): ${recipientRegistryAddress}` + ) + console.log(`Recipient registry set at tx: ${tx.hash}`) +} + +task('set-recipient-registry', 'Set the recipient registry in ClrFund') + .addParam('clrfund', 'The ClrFund contract address') + .addOptionalParam( + 'type', + 'The recipient registry type, e.g simple, optimistic' + ) + .addOptionalParam('registry', 'The user registry contract address') + .addOptionalParam( + 'deposit', + 'The base deposit for the optimistic registry', + '0.001' + ) + .addOptionalParam( + 'challengePeriod', + 'The challenge period in seconds', + challengePeriodSeconds + ) + .setAction( + async ( + { clrfund, type, registry, deposit, challengePeriod }, + { ethers } + ) => { + const clrfundContract = await ethers.getContractAt('ClrFund', clrfund) + + await setRecipientRegistry({ + clrfundContract: clrfundContract, + registryType: type, + registryAddress: registry, + deposit, + challengePeriod, + ethers, + }) + } + ) diff --git a/contracts/tasks/setToken.ts b/contracts/tasks/setToken.ts new file mode 100644 index 000000000..f4096d175 --- /dev/null +++ b/contracts/tasks/setToken.ts @@ -0,0 +1,51 @@ +/** + * Set the native token in the ClrFund contract + * Sample usage: + * + * yarn hardhat set-token --token --clrfund --network arbitrum-goerli + */ + +import { task } from 'hardhat/config' +import { Contract, BigNumber } from 'ethers' +import { deployContract } from '../utils/deployment' +import { UNIT } from '../utils/constants' + +/** + * Set the token address in the ClrFund contract + * + * @param clrfundContract ClrFund contract + * @param tokenAddress The token address to set in ClrFund + */ +async function setToken(clrfundContract: Contract, tokenAddress: string) { + const tx = await clrfundContract.setToken(tokenAddress) + await tx.wait() + + console.log(`Token set at tx: ${tx.hash}`) +} + +task('set-token', 'Set the token in ClrFund') + .addParam('clrfund', 'The ClrFund contract address') + .addOptionalParam('token', 'The token address') + .addOptionalParam('tokenAmount', 'Initial token amount', '1000') + .setAction(async ({ clrfund, token, tokenAmount }, { ethers }) => { + const [signer] = await ethers.getSigners() + const clrfundContract = await ethers.getContractAt( + 'ClrFund', + clrfund, + signer + ) + console.log('Setting token by', signer.address) + + let tokenAddress: string = token || '' + if (!tokenAddress) { + const initialTokenSupply = BigNumber.from(tokenAmount).mul(UNIT) + const tokenContract = await deployContract({ + name: 'AnyOldERC20Token', + contractArgs: [initialTokenSupply], + ethers, + }) + tokenAddress = tokenContract.address + console.log('New token address', tokenAddress) + } + await setToken(clrfundContract, tokenAddress) + }) diff --git a/contracts/tasks/setUserRegistry.ts b/contracts/tasks/setUserRegistry.ts new file mode 100644 index 000000000..cc6db87b7 --- /dev/null +++ b/contracts/tasks/setUserRegistry.ts @@ -0,0 +1,115 @@ +/** + * Set the user registry in the ClrFund contract. + * + * Sample usage: + * + * yarn hardhat set-user-registry --network \ + * --clrfund \ + * [--type ] \ + * [--registry ] \ + * [--context ] \ + * [--verifier ] \ + * [--sponsor ] + * + * Valid user registry types are simple, brightid, merkle, storage + * + * Verifier is the brightid node verifier address. + * Clrfund's brightId node is in the ethSigningAddress field from https://brightid.clr.fund + * + * Context is the bright app id + * The context value can be found here: https://apps.brightid.org/#nodes + */ + +import { task } from 'hardhat/config' +import { Contract } from 'ethers' +import { HardhatEthersHelpers } from '@nomiclabs/hardhat-ethers/types' +import { BrightIdParams, deployUserRegistry } from '../utils/deployment' +/** + * Set the token address in the ClrFund contract + * + * @param clrfundContract ClrFund contract + * @param registryType The user registry type, e.g brightid, simple, merkle, snapshot + * @param registryAddress The user registry address to set in ClrFund + */ +async function setUserRegistry({ + clrfundContract, + registryType, + registryAddress, + brightIdParams, + ethers, +}: { + clrfundContract: Contract + registryType?: string + registryAddress?: string + brightIdParams?: BrightIdParams + ethers: HardhatEthersHelpers +}) { + let userRegistryAddress = registryAddress + if (!userRegistryAddress) { + const userRegistryType = registryType || '' + const [signer] = await ethers.getSigners() + console.log(`Deploying a user registry by: ${signer.address}`) + + const registry = await deployUserRegistry( + userRegistryType, + ethers, + brightIdParams + ) + userRegistryAddress = registry.address + } + + const tx = await clrfundContract.setUserRegistry(userRegistryAddress) + await tx.wait() + + console.log(`User registry (${registryType}): ${userRegistryAddress}`) + console.log(`User registry set at tx ${tx.hash}`) +} + +task('set-user-registry', 'Set the user registry in ClrFund') + .addParam('clrfund', 'The ClrFund contract address') + .addOptionalParam( + 'type', + 'The user registry type, e.g brightid, simple, merkle, snapshot' + ) + .addOptionalParam('registry', 'The user registry contract address') + .addOptionalParam('context', 'The BrightId context') + .addOptionalParam('verifier', 'The BrightId verifier address') + .addOptionalParam('sponsor', 'The BrightId sponsor contract address') + .setAction( + async ( + { clrfund, type, registry, context, verifier, sponsor }, + { ethers } + ) => { + const clrfundContract = await ethers.getContractAt('ClrFund', clrfund) + + let brightIdParams: BrightIdParams | undefined = undefined + + if (type === 'brightid') { + if (!context) { + throw Error('BrightId context is required') + } + + if (!verifier) { + throw Error('BrightId node verifier address is required') + } + + if (!sponsor) { + throw Error('BrightId sponsor contract address is required') + } + + brightIdParams = { + context, + verifierAddress: verifier, + sponsor, + } + } + + await setUserRegistry({ + clrfundContract: clrfundContract, + registryType: type, + registryAddress: registry, + brightIdParams, + ethers, + }) + } + ) diff --git a/contracts/tasks/tally.ts b/contracts/tasks/tally.ts deleted file mode 100644 index a058b853e..000000000 --- a/contracts/tasks/tally.ts +++ /dev/null @@ -1,257 +0,0 @@ -import { task, types } from 'hardhat/config' -import fs from 'fs' -import { Contract, Wallet } from 'ethers' -import { genProofs, proveOnChain } from 'maci-cli' - -import { getIpfsHash } from '../utils/ipfs' -import { addTallyResultsBatch } from '../utils/maci' - -/** - * Tally votes for the specified funding round. This task can be rerun by - * passing in additional parameters: --maci-logs, --maci-state-file - * - * Make sure to set the following environment variables in the .env file - * if not running test using the localhost network - * 1) COORDINATOR_ETH_PK - coordinator's wallet private key to interact with contracts - * 2) COORDINATOR_PK - coordinator's MACI private key to decrypt messages - * - * Sample usage: - * - * yarn hardhat tally --round-address
--start-block --network - * - * To rerun: - * - * yarn hardhat tally --round-address
--network \ - * --maci-logs --maci-state-file - */ - -type TallyArgs = { - fundingRound: Contract - coordinatorMaciPrivKey: string - coordinator: Wallet - startBlock: number - numBlocksPerRequest: number - batchSize: number - logsFile: string - maciStateFile: string - providerUrl: string - voteOptionTreeDepth: number - shouldFetchLogs: boolean -} - -async function main(args: TallyArgs) { - const { - fundingRound, - coordinatorMaciPrivKey, - coordinator, - batchSize, - logsFile, - maciStateFile, - providerUrl, - voteOptionTreeDepth, - shouldFetchLogs, - startBlock, - numBlocksPerRequest, - } = args - - console.log('funding round address', fundingRound.address) - const maciAddress = await fundingRound.maci() - console.log('maci address', maciAddress) - - const publishedTallyHash = await fundingRound.tallyHash() - console.log('publishedTallyHash', publishedTallyHash) - - let tally - if (!publishedTallyHash) { - const maciAddress = await fundingRound.maci() - console.log('maci address', maciAddress) - - /* TODO: fix this, fetchLog is not available in v1 - if (shouldFetchLogs) { - // Fetch Maci logs - console.log('Fetching MACI logs from block', startBlock) - try { - await fetchLogs({ - contract: maciAddress, - eth_provider: providerUrl, - privkey: coordinatorMaciPrivKey, - start_block: startBlock, - num_blocks_per_request: numBlocksPerRequest, - output: logsFile, - }) - console.log('MACI logs generated at', logsFile) - } catch (err) { - console.log('Failed to fetchLogs', err) - throw err - } - }*/ - - // Process messages and tally votes - const results = await genProofs({ - contract: maciAddress, - eth_provider: providerUrl, - privkey: coordinatorMaciPrivKey, - tally_file: 'tally.json', - output: 'proofs.json', - logs_file: logsFile, - macistate: maciStateFile, - }) - if (!results) { - throw new Error('generation of proofs failed') - } - const { proofs } = results - tally = results.tally - - // Submit proofs to MACI contract - await proveOnChain({ - contract: maciAddress, - eth_privkey: coordinator.privateKey, - eth_provider: providerUrl, - privkey: coordinatorMaciPrivKey, - proof_file: proofs, - }) - - // Publish tally hash - const tallyHash = await getIpfsHash(tally) - await fundingRound.publishTallyHash(tallyHash) - console.log(`Tally hash is ${tallyHash}`) - } else { - // read the tally.json file - console.log(`Tally hash is ${publishedTallyHash}`) - try { - console.log(`Reading tally.json file...`) - const tallyStr = fs.readFileSync('tally.json').toString() - tally = JSON.parse(tallyStr) - } catch (err) { - console.log('Failed to get tally file', publishedTallyHash, err) - throw err - } - } - - // Submit results to the funding round contract - const startIndex = await fundingRound.totalTallyResults() - const total = tally.results.tally.length - console.log('Uploading tally results in batches of', batchSize) - const addTallyGas = await addTallyResultsBatch( - fundingRound, - voteOptionTreeDepth, - tally, - batchSize, - startIndex.toNumber(), - (processed: number) => { - console.log(`Processed ${processed} / ${total}`) - } - ) - console.log('Tally results uploaded. Gas used:', addTallyGas.toString()) -} - -task('tally', 'Tally votes for the current round') - .addParam( - 'roundAddress', - 'The funding round contract address', - '', - types.string - ) - .addParam( - 'batchSize', - 'Number of tally result to submit on chain per batch', - 20, - types.int - ) - .addParam( - 'numBlocksPerRequest', - 'The number of blocks to fetch for each get log request', - 200000, - types.int - ) - .addParam( - 'startBlock', - 'The first block containing the MACI events', - 0, - types.int - ) - .addOptionalParam('maciLogs', 'The file path containing the MACI logs') - .addOptionalParam( - 'maciStateFile', - 'The MACI state file, genProof will continue from it last run' - ) - .setAction( - async ( - { - roundAddress, - maciLogs, - maciStateFile, - batchSize, - startBlock, - numBlocksPerRequest, - }, - { ethers, network } - ) => { - let fundingRoundAddress = roundAddress - let coordinatorMaciPrivKey = process.env.COORDINATOR_PK || '' - let coordinatorEthPrivKey = - process.env.COORDINATOR_ETH_PK || process.env.WALLET_PRIVATE_KEY || '' - const providerUrl = (network.config as any).url - - if (network.name === 'localhost') { - const stateStr = fs.readFileSync('state.json').toString() - const state = JSON.parse(stateStr) - fundingRoundAddress = state.fundingRound - coordinatorMaciPrivKey = state.coordinatorPrivKey - // default to the first account - coordinatorEthPrivKey = coordinatorEthPrivKey - ? coordinatorEthPrivKey - : '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80' - } else { - if (!coordinatorEthPrivKey) { - throw Error( - `Please set the environment variable COORDINATOR_ETH_PK, the coordinator's wallet private key` - ) - } - - if (!coordinatorMaciPrivKey) { - throw Error( - `Please set the environment variable COORDINATOR_PK, the coordinator's MACI private key` - ) - } - } - - if (!fundingRoundAddress) { - throw Error(`The '--round-address' parameter is required`) - } - - console.log('Funding round address: ', fundingRoundAddress) - const coordinator = new Wallet(coordinatorEthPrivKey, ethers.provider) - console.log('Coordinator address: ', coordinator.address) - - const fundingRound = await ethers.getContractAt( - 'FundingRound', - fundingRoundAddress, - coordinator - ) - - const maciAddress = await fundingRound.maci() - const maci = await ethers.getContractAt('MACI', maciAddress, coordinator) - const [, , voteOptionTreeDepth] = await maci.treeDepths() - console.log('Vote option tree depth', voteOptionTreeDepth) - - const timeMs = new Date().getTime() - const logsFile = maciLogs ? maciLogs : `maci_logs_${timeMs}.json` - - await main({ - fundingRound, - coordinatorMaciPrivKey, - coordinator, - startBlock, - numBlocksPerRequest, - batchSize, - voteOptionTreeDepth: Number(voteOptionTreeDepth), - logsFile, - providerUrl, - shouldFetchLogs: !maciLogs, - maciStateFile: maciStateFile - ? maciStateFile - : `maci_state_${timeMs}.json`, - }) - } - ) diff --git a/contracts/tasks/evmIncreaseTime.ts b/contracts/tasks/timeTravel.ts similarity index 73% rename from contracts/tasks/evmIncreaseTime.ts rename to contracts/tasks/timeTravel.ts index 7ee995fcf..6854dade3 100644 --- a/contracts/tasks/evmIncreaseTime.ts +++ b/contracts/tasks/timeTravel.ts @@ -1,9 +1,9 @@ import { task, types } from 'hardhat/config' -task('evm-increase-time', 'Increase block timestamp by seconds') +task('time-travel', 'Travel to block timestamp in seconds') .addPositionalParam( 'seconds', - 'The number of seconds to increase', + 'The number of seconds to travel to', undefined, types.int, false diff --git a/contracts/tasks/verifyAll.ts b/contracts/tasks/verifyAll.ts index bef27e87c..2b9da8ac3 100644 --- a/contracts/tasks/verifyAll.ts +++ b/contracts/tasks/verifyAll.ts @@ -8,22 +8,41 @@ type Result = { status: string } -async function verifyMaciFactory(factory: Contract, run: any): Promise { +async function verifyDeployer(deployer: Contract, run: any): Promise { try { - const address = await factory.maciFactory() + const { address } = deployer + const constructorArguments = await Promise.all([ + deployer.clrfundTemplate(), + deployer.maciFactory(), + deployer.roundFactory(), + ]) + + await run('verify:verify', { address, constructorArguments }) + return SUCCESS + } catch (error) { + return (error as Error).message + } +} + +async function verifyMaciFactory( + deployer: Contract, + run: any +): Promise { + try { + const address = await deployer.maciFactory() await run('verify-maci-factory', { address }) return SUCCESS } catch (error) { - return error.message + return (error as Error).message } } -async function verifyRoundFactory(address: string, run: any): Promise { +async function verifyClrFund(clrfund: Contract, run: any): Promise { try { - await run('verify-round-factory', { address }) + await run('verify', { address: clrfund.address }) return SUCCESS } catch (error) { - return error.message + return (error as Error).message } } @@ -36,7 +55,7 @@ async function verifyRecipientRegistry( await run('verify-recipient-registry', { address }) return SUCCESS } catch (error) { - return error.message + return (error as Error).message } } @@ -49,7 +68,7 @@ async function verifyUserRegistry( await run('verify-user-registry', { address }) return SUCCESS } catch (error) { - return error.message + return (error as Error).message } } @@ -58,7 +77,7 @@ async function verifyRound(address: string, run: any): Promise { await run('verify-round', { address }) return SUCCESS } catch (error) { - return error.message + return (error as Error).message } } @@ -67,54 +86,58 @@ async function verifyMaci(maciAddress: string, run: any): Promise { await run('verify-maci', { maciAddress }) return SUCCESS } catch (error) { - return error.message + return (error as Error).message } } -async function verifyStateTreeVerifier( - maciAddress: string, - run: any, - ethers: any -): Promise { +async function verifyTally(tally: Contract, run: any): Promise { try { - const rawAddress = await ethers.provider.getStorageAt(maciAddress, 1) - const address = ethers.utils.hexDataSlice(rawAddress, 12) - await run('verify:verify', { address }) + const constructorArguments = await Promise.all([tally.verifier()]) + await run('verify:verify', { address: tally.address, constructorArguments }) return SUCCESS } catch (error) { - return error.message + return (error as Error).message } } -async function verifyTallyVerifier( - maciAddress: string, - run: any, - ethers: any -): Promise { +async function verifyPoll(pollContract: Contract, run: any): Promise { try { - const rawAddress = await ethers.provider.getStorageAt(maciAddress, 2) - const address = ethers.utils.hexDataSlice(rawAddress, 12) - await run('verify:verify', { address }) + const constructorArguments = await Promise.all([ + pollContract.duration(), + pollContract.maxValues(), + pollContract.treeDepths(), + pollContract.batchSizes(), + pollContract.coordinatorPubKey(), + pollContract.extContracts(), + ]) + const { address } = pollContract + await run('verify:verify', { address, constructorArguments }) return SUCCESS } catch (error) { - return error.message + return (error as Error).message } } -async function verifySponsor(address: string, run: any): Promise { +async function verifyContract( + name: string, + address: string, + run: any, + results: Result[] +) { + let result = SUCCESS try { await run('verify:verify', { address }) - return SUCCESS } catch (error) { - return error.message + result = (error as Error).message } + results.push({ name, status: result }) } async function getBrightIdSponsor( - factory: Contract, + clrfund: Contract, ethers: any ): Promise { - const userRegistryAddress = await factory.userRegistry() + const userRegistryAddress = await clrfund.userRegistry() const userRegistry = await ethers.getContractAt( 'BrightIdUserRegistry', userRegistryAddress @@ -131,42 +154,89 @@ async function getBrightIdSponsor( * Verifies all the contracts created for clrfund app */ task('verify-all', 'Verify all clrfund contracts') - .addPositionalParam('address', 'Funding round factory contract address') - .setAction(async ({ address }, { run, ethers }) => { - const factory = await ethers.getContractAt('FundingRoundFactory', address) - const roundAddress = await factory.getCurrentRound() + .addParam('deployer', 'ClrFundDeployer contract address') + .addOptionalParam('clrfund', 'ClrFund contract address') + .setAction(async ({ deployer, clrfund }, { run, ethers }) => { + const deployerContract = await ethers.getContractAt( + 'ClrFundDeployer', + deployer + ) + const maciFactoryAddress = await deployerContract.maciFactory() + const maciFactory = await ethers.getContractAt( + 'MACIFactory', + maciFactoryAddress + ) const results: Result[] = [] - let status = await verifyMaciFactory(factory, run) + let status = await verifyDeployer(deployerContract, run) + results.push({ name: 'ClrFund Deployer', status }) + status = await verifyMaciFactory(deployerContract, run) results.push({ name: 'Maci facotry', status }) - status = await verifyRoundFactory(address, run) - results.push({ name: 'Funding round factory', status }) - status = await verifyRecipientRegistry(factory, run) - results.push({ name: 'Recipient registry', status }) - status = await verifyUserRegistry(factory, run) - results.push({ name: 'User factory', status }) - - const sponsor = await getBrightIdSponsor(factory, ethers) - if (sponsor) { - status = await verifySponsor(sponsor, run) - results.push({ name: 'BrightId sponsor', status }) - } - - if (roundAddress !== ethers.constants.AddressZero) { - const round = await ethers.getContractAt('FundingRound', roundAddress) - const maciAddress = await round.maci() - status = await verifyRound(roundAddress, run) - results.push({ name: 'Funding round', status }) - status = await verifyMaci(maciAddress, run) - results.push({ name: 'MACI', status }) - status = await verifyStateTreeVerifier(maciAddress, run, ethers) - results.push({ name: 'BatchUpdateStateTreeVerifier', status }) - - status = await verifyTallyVerifier(maciAddress, run, ethers) - results.push({ name: 'QuadVoteTallyVerifier', status }) + if (clrfund) { + const clrfundContract = await ethers.getContractAt('ClrFund', clrfund) + status = await verifyClrFund(clrfundContract, run) + results.push({ name: 'ClrFund', status }) + status = await verifyRecipientRegistry(clrfundContract, run) + results.push({ name: 'Recipient registry', status }) + status = await verifyUserRegistry(clrfundContract, run) + results.push({ name: 'User factory', status }) + const sponsor = await getBrightIdSponsor(clrfundContract, ethers) + if (sponsor) { + await verifyContract('Sponsor', sponsor, run, results) + } + + const roundAddress = await clrfundContract.getCurrentRound() + if (roundAddress !== ethers.constants.AddressZero) { + const round = await ethers.getContractAt('FundingRound', roundAddress) + const maciAddress = await round.maci() + status = await verifyRound(roundAddress, run) + results.push({ name: 'Funding round', status }) + status = await verifyMaci(maciAddress, run) + results.push({ name: 'MACI', status }) + + const poll = await round.poll() + if (poll !== ethers.constants.AddressZero) { + const pollContract = await ethers.getContractAt('Poll', poll) + status = await verifyPoll(pollContract, run) + results.push({ name: 'Poll', status }) + } + + const tally = await round.tally() + if (tally !== ethers.constants.AddressZero) { + const tallyContract = await ethers.getContractAt('Tally', tally) + status = await verifyTally(tallyContract, run) + results.push({ name: 'Tally', status }) + } + + await verifyContract( + 'TopupToken', + await round.topupToken(), + run, + results + ) + } } + await verifyContract( + 'clrfundTemplate', + await deployerContract.clrfundTemplate(), + run, + results + ) + await verifyContract( + 'VkRegistry', + await maciFactory.vkRegistry(), + run, + results + ) + await verifyContract( + 'PollFactory', + await maciFactory.pollFactory(), + run, + results + ) + results.forEach(({ name, status }, i) => { const color = status === SUCCESS ? '32' : '31' console.log(`${i} ${name}: \x1b[%sm%s\x1b[0m`, color, status) diff --git a/contracts/tasks/verifyMaciFactory.ts b/contracts/tasks/verifyMaciFactory.ts index 31761119f..54fdcf86f 100644 --- a/contracts/tasks/verifyMaciFactory.ts +++ b/contracts/tasks/verifyMaciFactory.ts @@ -1,53 +1,12 @@ import { task } from 'hardhat/config' import { Contract } from 'ethers' -type ProvidedArgs = { - signupDuration?: string - votingDuration?: string -} - -async function getConstructorArguments( - maciFactory: Contract, - provided: ProvidedArgs = {} -): Promise { - const signupPromise = provided.signupDuration - ? Promise.resolve(provided.signupDuration) - : maciFactory.signUpDuration() - - const votingPromise = provided.votingDuration - ? Promise.resolve(provided.votingDuration) - : maciFactory.votingDuration() - - const [ - treeDepths, - batchSizes, - batchUstVerifier, - qvtVerifier, - signUpDuration, - votingDuration, - ] = await Promise.all([ - maciFactory.treeDepths(), - maciFactory.batchSizes(), - maciFactory.batchUstVerifier(), - maciFactory.qvtVerifier(), - signupPromise, - votingPromise, +async function getConstructorArguments(maciFactory: Contract): Promise { + const result = await Promise.all([ + maciFactory.vkRegistry(), + maciFactory.pollFactory(), ]) - - const [stateTreeDepth, messageTreeDepth, voteOptionTreeDepth] = treeDepths - const [tallyBatchSize, messageBatchSize] = batchSizes - - return [ - stateTreeDepth, - messageTreeDepth, - voteOptionTreeDepth, - tallyBatchSize, - messageBatchSize, - batchUstVerifier, - qvtVerifier, - signUpDuration, - votingDuration, - ] + return result } /** @@ -57,21 +16,14 @@ async function getConstructorArguments( */ task('verify-maci-factory', 'Verify a MACI factory contract') .addParam('address', 'MACI factory contract address') - .addOptionalParam('signupDuration', 'Signup duration in seconds') - .addOptionalParam('votingDuration', 'Voting duration in seconds') - .setAction( - async ({ address, signupDuration, votingDuration }, { run, ethers }) => { - const maciFactory = await ethers.getContractAt('MACIFactory', address) + .setAction(async ({ address }, { run, ethers }) => { + const maciFactory = await ethers.getContractAt('MACIFactory', address) - const constructorArguments = await getConstructorArguments(maciFactory, { - signupDuration, - votingDuration, - }) - console.log('Constructor arguments', constructorArguments) + const constructorArguments = await getConstructorArguments(maciFactory) + console.log('Constructor arguments', constructorArguments) - await run('verify:verify', { - address, - constructorArguments, - }) - } - ) + await run('verify:verify', { + address, + constructorArguments, + }) + }) diff --git a/contracts/tasks/verifyRoundFactory.ts b/contracts/tasks/verifyRoundFactory.ts deleted file mode 100644 index ccc768361..000000000 --- a/contracts/tasks/verifyRoundFactory.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { task } from 'hardhat/config' - -task('verify-round-factory', 'Verify a funding round factory contract') - .addPositionalParam('address', 'Funding round factory contract address') - .setAction(async ({ address }, { run, ethers }) => { - const fundingRoundFactory = await ethers.getContractAt( - 'FundingRoundFactory', - address - ) - const maciFactoryAddress = await fundingRoundFactory.maciFactory() - - const constructorArguments = [maciFactoryAddress] - - console.log('Constructor arguments', constructorArguments) - - await run('verify:verify', { - address, - constructorArguments, - }) - }) diff --git a/contracts/tasks/vote.ts b/contracts/tasks/vote.ts new file mode 100644 index 000000000..0e423b032 --- /dev/null +++ b/contracts/tasks/vote.ts @@ -0,0 +1,84 @@ +/** + * Contribute to a funding round. This script is mainly used by e2e testing + * All the input used by the script comes from the state.json file + * + * Sample usage: + * yarn hardhat contribute \ + * --coordinator-macisk \ + * --state-file + * --network + */ + +import { task } from 'hardhat/config' +import { JSONFile } from '../utils/JSONFile' +import { PrivKey, Keypair, createMessage } from '@clrfund/common' +import { BigNumber } from 'ethers' + +task('vote', 'Cast votes for test users') + .addParam('coordinatorMacisk', 'The coordinator MACI secret key') + .addParam('stateFile', 'The file to store the state information') + .setAction(async ({ coordinatorMacisk, stateFile }, { ethers }) => { + const [, , , , , , , , , , , , contributor1, contributor2] = + await ethers.getSigners() + + const state = JSONFile.read(stateFile) + const coordinatorKeyPair = new Keypair( + PrivKey.unserialize(coordinatorMacisk) + ) + + const pollId = state.pollId + for (const contributor of [contributor1, contributor2]) { + const contributorAddress = await contributor.getAddress() + const contributorData = state.contributors[contributorAddress] + const contributorKeyPair = new Keypair( + PrivKey.unserialize(contributorData.privKey) + ) + + const messages: { msgType: any; data: string[] }[] = [] + const encPubKeys: any[] = [] + let nonce = 1 + // Change key + const newContributorKeypair = new Keypair() + const [message, encPubKey] = createMessage( + contributorData.stateIndex, + contributorKeyPair, + newContributorKeypair, + coordinatorKeyPair.pubKey, + null, + null, + nonce, + pollId + ) + messages.push(message.asContractParam()) + encPubKeys.push(encPubKey.asContractParam()) + nonce += 1 + // Vote + for (const recipientIndex of [1, 2]) { + const votes = BigNumber.from(contributorData.voiceCredits).div(4) + const [message, encPubKey] = createMessage( + contributorData.stateIndex, + newContributorKeypair, + null, + coordinatorKeyPair.pubKey, + recipientIndex, + votes, + nonce, + pollId + ) + messages.push(message.asContractParam()) + encPubKeys.push(encPubKey.asContractParam()) + nonce += 1 + } + + const fundingRoundAsContributor = await ethers.getContractAt( + 'FundingRound', + state.fundingRound, + contributor + ) + await fundingRoundAsContributor.submitMessageBatch( + messages.reverse(), + encPubKeys.reverse() + ) + console.log(`Contributor ${contributorAddress} voted.`) + } + }) diff --git a/contracts/tests/deployer.ts b/contracts/tests/deployer.ts index e86b06356..1f708fade 100644 --- a/contracts/tests/deployer.ts +++ b/contracts/tests/deployer.ts @@ -1,7 +1,7 @@ -import { ethers, waffle } from 'hardhat' +import { ethers, waffle, config } from 'hardhat' import { use, expect } from 'chai' import { solidity } from 'ethereum-waffle' -import { Signer, Contract, ContractTransaction } from 'ethers' +import { Signer, Contract, ContractTransaction, constants } from 'ethers' import { genRandomSalt } from 'maci-crypto' import { Keypair } from '@clrfund/common' @@ -9,29 +9,37 @@ import { ZERO_ADDRESS, UNIT } from '../utils/constants' import { getGasUsage, getEventArg } from '../utils/contracts' import { deployContract, - deployContractWithLinkedLibraries, - deployMaciFactory, deployPoseidonLibraries, + deployMaciFactory, } from '../utils/deployment' -import { MaciParameters } from '../utils/maci' +import { MaciParameters } from '../utils/maciParameters' +import { DEFAULT_CIRCUIT } from '../utils/circuits' use(solidity) const roundDuration = 10000 -const circuit = 'micro' +const circuit = DEFAULT_CIRCUIT async function setRoundTally( clrfund: Contract, coordinator: Signer ): Promise { - const libraries = await deployPoseidonLibraries(coordinator) - const verifier = await deployContract(coordinator, 'MockVerifier') - const tally = await deployContractWithLinkedLibraries( - coordinator, - 'Tally', + const libraries = await deployPoseidonLibraries({ + artifactsPath: config.paths.artifacts, + ethers, + }) + const verifier = await deployContract({ + name: 'MockVerifier', + ethers, + signer: coordinator, + }) + const tally = await deployContract({ + name: 'Tally', libraries, - [verifier.address] - ) + contractArgs: [verifier.address], + signer: coordinator, + ethers, + }) const roundAddress = await clrfund.getCurrentRound() const round = await ethers.getContractAt( 'FundingRound', @@ -49,7 +57,7 @@ describe('Clr fund deployer', () => { let userRegistry: Contract let recipientRegistry: Contract let factoryTemplate: Contract - let factory: Contract + let clrfund: Contract let clrFundDeployer: Contract let token: Contract const coordinatorPubKey = new Keypair().pubKey.asContractParam() @@ -57,35 +65,55 @@ describe('Clr fund deployer', () => { beforeEach(async () => { if (!poseidonContracts) { - poseidonContracts = await deployPoseidonLibraries(deployer) + poseidonContracts = await deployPoseidonLibraries({ + artifactsPath: config.paths.artifacts, + ethers, + }) } - maciFactory = await deployMaciFactory(deployer, poseidonContracts) + + maciFactory = await deployMaciFactory({ + libraries: poseidonContracts, + signer: deployer, + ethers, + }) const params = MaciParameters.mock(circuit) await maciFactory.setMaciParameters(...params.asContractParam()) - factoryTemplate = await deployContractWithLinkedLibraries( - deployer, - 'ClrFund', - poseidonContracts - ) + factoryTemplate = await deployContract({ + name: 'ClrFund', + ethers, + signer: deployer, + }) expect(factoryTemplate.address).to.properAddress expect(await getGasUsage(factoryTemplate.deployTransaction)).lessThan( 5400000 ) - clrFundDeployer = await deployContract(deployer, 'ClrFundDeployer', [ - factoryTemplate.address, - ]) + const roundFactory = await deployContract({ + name: 'FundingRoundFactory', + libraries: poseidonContracts, + ethers, + }) + expect(await getGasUsage(roundFactory.deployTransaction)).lessThan(4000000) + + clrFundDeployer = await deployContract({ + name: 'ClrFundDeployer', + contractArgs: [ + factoryTemplate.address, + maciFactory.address, + roundFactory.address, + ], + ethers, + signer: deployer, + }) expect(clrFundDeployer.address).to.properAddress expect(await getGasUsage(clrFundDeployer.deployTransaction)).lessThan( 5400000 ) - const newInstanceTx = await clrFundDeployer.deployClrFund( - maciFactory.address - ) + const newInstanceTx = await clrFundDeployer.deployClrFund() const instanceAddress = await getEventArg( newInstanceTx, clrFundDeployer, @@ -93,7 +121,7 @@ describe('Clr fund deployer', () => { 'clrfund' ) - factory = await ethers.getContractAt('ClrFund', instanceAddress, deployer) + clrfund = await ethers.getContractAt('ClrFund', instanceAddress, deployer) const SimpleUserRegistry = await ethers.getContractFactory( 'SimpleUserRegistry', @@ -104,7 +132,7 @@ describe('Clr fund deployer', () => { 'SimpleRecipientRegistry', deployer ) - recipientRegistry = await SimpleRecipientRegistry.deploy(factory.address) + recipientRegistry = await SimpleRecipientRegistry.deploy(clrfund.address) // Deploy token contract and transfer tokens to contributor @@ -116,85 +144,86 @@ describe('Clr fund deployer', () => { }) it('can only be initialized once', async () => { - await expect(factory.init(maciFactory.address)).to.be.revertedWith( - 'Initializable: contract is already initialized' - ) + const dummyRoundFactory = constants.AddressZero + await expect( + clrfund.init(maciFactory.address, dummyRoundFactory) + ).to.be.revertedWith('Initializable: contract is already initialized') }) it('can register with the subgraph', async () => { await expect( clrFundDeployer.registerInstance( - factory.address, + clrfund.address, '{name:dead,title:beef}' ) ) .to.emit(clrFundDeployer, 'Register') - .withArgs(factory.address, '{name:dead,title:beef}') + .withArgs(clrfund.address, '{name:dead,title:beef}') }) it('cannot register with the subgraph twice', async () => { await expect( clrFundDeployer.registerInstance( - factory.address, + clrfund.address, '{name:dead,title:beef}' ) ) .to.emit(clrFundDeployer, 'Register') - .withArgs(factory.address, '{name:dead,title:beef}') + .withArgs(clrfund.address, '{name:dead,title:beef}') await expect( clrFundDeployer.registerInstance( - factory.address, + clrfund.address, '{name:dead,title:beef}' ) ).to.be.revertedWith('ClrFundAlreadyRegistered') }) - it('initializes factory', async () => { - expect(await factory.coordinator()).to.equal(ZERO_ADDRESS) - expect(await factory.nativeToken()).to.equal(ZERO_ADDRESS) - expect(await factory.maciFactory()).to.equal(maciFactory.address) - expect(await factory.userRegistry()).to.equal(ZERO_ADDRESS) - expect(await factory.recipientRegistry()).to.equal(ZERO_ADDRESS) + it('initializes clrfund', async () => { + expect(await clrfund.coordinator()).to.equal(ZERO_ADDRESS) + expect(await clrfund.nativeToken()).to.equal(ZERO_ADDRESS) + expect(await clrfund.maciFactory()).to.equal(maciFactory.address) + expect(await clrfund.userRegistry()).to.equal(ZERO_ADDRESS) + expect(await clrfund.recipientRegistry()).to.equal(ZERO_ADDRESS) }) it('transfers ownership to another address', async () => { - await expect(factory.transferOwnership(coordinator.address)) - .to.emit(factory, 'OwnershipTransferred') + await expect(clrfund.transferOwnership(coordinator.address)) + .to.emit(clrfund, 'OwnershipTransferred') .withArgs(deployer.address, coordinator.address) }) describe('changing user registry', () => { it('allows owner to set user registry', async () => { - await factory.setUserRegistry(userRegistry.address) - expect(await factory.userRegistry()).to.equal(userRegistry.address) + await clrfund.setUserRegistry(userRegistry.address) + expect(await clrfund.userRegistry()).to.equal(userRegistry.address) }) it('allows only owner to set user registry', async () => { await expect( - factory.connect(contributor).setUserRegistry(userRegistry.address) + clrfund.connect(contributor).setUserRegistry(userRegistry.address) ).to.be.revertedWith('Ownable: caller is not the owner') }) it('allows owner to change recipient registry', async () => { - await factory.setRecipientRegistry(recipientRegistry.address) + await clrfund.setRecipientRegistry(recipientRegistry.address) const SimpleUserRegistry = await ethers.getContractFactory( 'SimpleUserRegistry', deployer ) const anotherUserRegistry = await SimpleUserRegistry.deploy() - await factory.setUserRegistry(anotherUserRegistry.address) - expect(await factory.userRegistry()).to.equal(anotherUserRegistry.address) + await clrfund.setUserRegistry(anotherUserRegistry.address) + expect(await clrfund.userRegistry()).to.equal(anotherUserRegistry.address) }) }) describe('changing recipient registry', () => { it('allows owner to set recipient registry', async () => { - await factory.setCoordinator(coordinator.address, coordinatorPubKey) - await factory.setRecipientRegistry(recipientRegistry.address) - expect(await factory.recipientRegistry()).to.equal( + await clrfund.setCoordinator(coordinator.address, coordinatorPubKey) + await clrfund.setRecipientRegistry(recipientRegistry.address) + expect(await clrfund.recipientRegistry()).to.equal( recipientRegistry.address ) - expect(await recipientRegistry.controller()).to.equal(factory.address) + expect(await recipientRegistry.controller()).to.equal(clrfund.address) const params = MaciParameters.mock(circuit) expect(await recipientRegistry.maxRecipients()).to.equal( 5 ** params.voteOptionTreeDepth @@ -203,23 +232,23 @@ describe('Clr fund deployer', () => { it('allows only owner to set recipient registry', async () => { await expect( - factory + clrfund .connect(contributor) .setRecipientRegistry(recipientRegistry.address) ).to.be.revertedWith('Ownable: caller is not the owner') }) it('allows owner to change recipient registry', async () => { - await factory.setRecipientRegistry(recipientRegistry.address) + await clrfund.setRecipientRegistry(recipientRegistry.address) const SimpleRecipientRegistry = await ethers.getContractFactory( 'SimpleRecipientRegistry', deployer ) const anotherRecipientRegistry = await SimpleRecipientRegistry.deploy( - factory.address + clrfund.address ) - await factory.setRecipientRegistry(anotherRecipientRegistry.address) - expect(await factory.recipientRegistry()).to.equal( + await clrfund.setRecipientRegistry(anotherRecipientRegistry.address) + expect(await clrfund.recipientRegistry()).to.equal( anotherRecipientRegistry.address ) }) @@ -227,71 +256,71 @@ describe('Clr fund deployer', () => { describe('managing funding sources', () => { it('allows owner to add funding source', async () => { - await expect(factory.addFundingSource(contributor.address)) - .to.emit(factory, 'FundingSourceAdded') + await expect(clrfund.addFundingSource(contributor.address)) + .to.emit(clrfund, 'FundingSourceAdded') .withArgs(contributor.address) }) it('allows only owner to add funding source', async () => { await expect( - factory.connect(contributor).addFundingSource(contributor.address) + clrfund.connect(contributor).addFundingSource(contributor.address) ).to.be.revertedWith('Ownable: caller is not the owner') }) it('reverts if funding source is already added', async () => { - await factory.addFundingSource(contributor.address) + await clrfund.addFundingSource(contributor.address) await expect( - factory.addFundingSource(contributor.address) + clrfund.addFundingSource(contributor.address) ).to.be.revertedWith('FundingSourceAlreadyAdded') }) it('allows owner to remove funding source', async () => { - await factory.addFundingSource(contributor.address) - await expect(factory.removeFundingSource(contributor.address)) - .to.emit(factory, 'FundingSourceRemoved') + await clrfund.addFundingSource(contributor.address) + await expect(clrfund.removeFundingSource(contributor.address)) + .to.emit(clrfund, 'FundingSourceRemoved') .withArgs(contributor.address) }) it('allows only owner to remove funding source', async () => { - await factory.addFundingSource(contributor.address) + await clrfund.addFundingSource(contributor.address) await expect( - factory.connect(contributor).removeFundingSource(contributor.address) + clrfund.connect(contributor).removeFundingSource(contributor.address) ).to.be.revertedWith('Ownable: caller is not the owner') }) it('reverts if funding source is already removed', async () => { - await factory.addFundingSource(contributor.address) - await factory.removeFundingSource(contributor.address) + await clrfund.addFundingSource(contributor.address) + await clrfund.removeFundingSource(contributor.address) await expect( - factory.removeFundingSource(contributor.address) + clrfund.removeFundingSource(contributor.address) ).to.be.revertedWith('FundingSourceNotFound') }) }) it('allows direct contributions to the matching pool', async () => { const contributionAmount = UNIT.mul(10) - await factory.setToken(token.address) + await clrfund.setToken(token.address) await expect( - token.connect(contributor).transfer(factory.address, contributionAmount) + token.connect(contributor).transfer(clrfund.address, contributionAmount) ) .to.emit(token, 'Transfer') - .withArgs(contributor.address, factory.address, contributionAmount) - expect(await token.balanceOf(factory.address)).to.equal(contributionAmount) + .withArgs(contributor.address, clrfund.address, contributionAmount) + expect(await token.balanceOf(clrfund.address)).to.equal(contributionAmount) }) describe('deploying funding round', () => { it('deploys funding round', async () => { - await factory.setUserRegistry(userRegistry.address) - await factory.setRecipientRegistry(recipientRegistry.address) - await factory.setToken(token.address) - await factory.setCoordinator(coordinator.address, coordinatorPubKey) - const deployed = factory.deployNewRound(roundDuration) - await expect(deployed).to.emit(factory, 'RoundStarted') + await clrfund.setUserRegistry(userRegistry.address) + await clrfund.setRecipientRegistry(recipientRegistry.address) + await clrfund.setToken(token.address) + await clrfund.setCoordinator(coordinator.address, coordinatorPubKey) + const deployed = clrfund.deployNewRound(roundDuration) + await expect(deployed).to.emit(clrfund, 'RoundStarted') const deployTx = await deployed // TODO: fix gas usage for deployNewRound() expect(await getGasUsage(deployTx)).lessThan(20000000) - const fundingRoundAddress = await factory.getCurrentRound() + const fundingRoundAddress = await clrfund.getCurrentRound() expect(fundingRoundAddress).to.properAddress expect(fundingRoundAddress).to.not.equal(ZERO_ADDRESS) @@ -299,7 +328,7 @@ describe('Clr fund deployer', () => { 'FundingRound', fundingRoundAddress ) - expect(await fundingRound.owner()).to.equal(factory.address) + expect(await fundingRound.owner()).to.equal(clrfund.address) expect(await fundingRound.nativeToken()).to.equal(token.address) const maciAddress = await getEventArg( @@ -324,79 +353,79 @@ describe('Clr fund deployer', () => { }) it('reverts if user registry is not set', async () => { - await factory.setRecipientRegistry(recipientRegistry.address) - await factory.setToken(token.address) - await factory.setCoordinator(coordinator.address, coordinatorPubKey) + await clrfund.setRecipientRegistry(recipientRegistry.address) + await clrfund.setToken(token.address) + await clrfund.setCoordinator(coordinator.address, coordinatorPubKey) - await expect(factory.deployNewRound(roundDuration)).to.be.revertedWith( + await expect(clrfund.deployNewRound(roundDuration)).to.be.revertedWith( 'NoUserRegistry' ) }) it('reverts if recipient registry is not set', async () => { - await factory.setUserRegistry(userRegistry.address) - await factory.setToken(token.address) - await factory.setCoordinator(coordinator.address, coordinatorPubKey) + await clrfund.setUserRegistry(userRegistry.address) + await clrfund.setToken(token.address) + await clrfund.setCoordinator(coordinator.address, coordinatorPubKey) - await expect(factory.deployNewRound(roundDuration)).to.be.revertedWith( + await expect(clrfund.deployNewRound(roundDuration)).to.be.revertedWith( 'NoRecipientRegistry' ) }) it('reverts if native token is not set', async () => { - await factory.setUserRegistry(userRegistry.address) - await factory.setRecipientRegistry(recipientRegistry.address) - await factory.setCoordinator(coordinator.address, coordinatorPubKey) + await clrfund.setUserRegistry(userRegistry.address) + await clrfund.setRecipientRegistry(recipientRegistry.address) + await clrfund.setCoordinator(coordinator.address, coordinatorPubKey) - await expect(factory.deployNewRound(roundDuration)).to.be.revertedWith( + await expect(clrfund.deployNewRound(roundDuration)).to.be.revertedWith( 'NoToken' ) }) it('reverts if coordinator is not set', async () => { - await factory.setUserRegistry(userRegistry.address) - await factory.setRecipientRegistry(recipientRegistry.address) - await factory.setToken(token.address) - await expect(factory.deployNewRound(roundDuration)).to.be.revertedWith( + await clrfund.setUserRegistry(userRegistry.address) + await clrfund.setRecipientRegistry(recipientRegistry.address) + await clrfund.setToken(token.address) + await expect(clrfund.deployNewRound(roundDuration)).to.be.revertedWith( 'NoCoordinator' ) }) it('reverts if current round is not finalized', async () => { - await factory.setUserRegistry(userRegistry.address) - await factory.setRecipientRegistry(recipientRegistry.address) - await factory.setToken(token.address) - await factory.setCoordinator(coordinator.address, coordinatorPubKey) + await clrfund.setUserRegistry(userRegistry.address) + await clrfund.setRecipientRegistry(recipientRegistry.address) + await clrfund.setToken(token.address) + await clrfund.setCoordinator(coordinator.address, coordinatorPubKey) - await factory.deployNewRound(roundDuration) - await expect(factory.deployNewRound(roundDuration)).to.be.revertedWith( + await clrfund.deployNewRound(roundDuration) + await expect(clrfund.deployNewRound(roundDuration)).to.be.revertedWith( 'NotFinalized' ) }) it('deploys new funding round after previous round has been finalized', async () => { - await factory.setUserRegistry(userRegistry.address) - await factory.setRecipientRegistry(recipientRegistry.address) - await factory.setToken(token.address) - await factory.setCoordinator(coordinator.address, coordinatorPubKey) - - await factory.deployNewRound(roundDuration) - await factory.cancelCurrentRound() - await expect(factory.deployNewRound(roundDuration)).to.emit( - factory, + await clrfund.setUserRegistry(userRegistry.address) + await clrfund.setRecipientRegistry(recipientRegistry.address) + await clrfund.setToken(token.address) + await clrfund.setCoordinator(coordinator.address, coordinatorPubKey) + + await clrfund.deployNewRound(roundDuration) + await clrfund.cancelCurrentRound() + await expect(clrfund.deployNewRound(roundDuration)).to.emit( + clrfund, 'RoundStarted' ) }) it('only owner can deploy funding round', async () => { - await factory.setUserRegistry(userRegistry.address) - await factory.setRecipientRegistry(recipientRegistry.address) - await factory.setToken(token.address) - await factory.setCoordinator(coordinator.address, coordinatorPubKey) + await clrfund.setUserRegistry(userRegistry.address) + await clrfund.setRecipientRegistry(recipientRegistry.address) + await clrfund.setToken(token.address) + await clrfund.setCoordinator(coordinator.address, coordinatorPubKey) - const factoryAsContributor = factory.connect(contributor) + const clrfundAsContributor = clrfund.connect(contributor) await expect( - factoryAsContributor.deployNewRound(roundDuration) + clrfundAsContributor.deployNewRound(roundDuration) ).to.be.revertedWith('Ownable: caller is not the owner') }) }) @@ -409,28 +438,28 @@ describe('Clr fund deployer', () => { const perVOVoiceCreditCommitment = genRandomSalt().toString() beforeEach(async () => { - await factory.setUserRegistry(userRegistry.address) - await factory.setRecipientRegistry(recipientRegistry.address) - await factory.setToken(token.address) - await factory.setCoordinator(coordinator.address, coordinatorPubKey) + await clrfund.setUserRegistry(userRegistry.address) + await clrfund.setRecipientRegistry(recipientRegistry.address) + await clrfund.setToken(token.address) + await clrfund.setCoordinator(coordinator.address, coordinatorPubKey) }) it('returns the amount of available matching funding', async () => { - await factory.addFundingSource(deployer.address) - await factory.addFundingSource(contributor.address) + await clrfund.addFundingSource(deployer.address) + await clrfund.addFundingSource(contributor.address) // Allowance is more than available balance - await token.connect(deployer).approve(factory.address, contributionAmount) + await token.connect(deployer).approve(clrfund.address, contributionAmount) // Allowance is less than available balance await token .connect(contributor) - .approve(factory.address, contributionAmount) + .approve(clrfund.address, contributionAmount) // Direct contribution await token .connect(contributor) - .transfer(factory.address, contributionAmount) + .transfer(clrfund.address, contributionAmount) - await factory.deployNewRound(roundDuration) - expect(await factory.getMatchingFunds(token.address)).to.equal( + await clrfund.deployNewRound(roundDuration) + expect(await clrfund.getMatchingFunds(token.address)).to.equal( contributionAmount.mul(2) ) }) @@ -438,12 +467,12 @@ describe('Clr fund deployer', () => { it('allows owner to finalize round', async () => { await token .connect(contributor) - .transfer(factory.address, contributionAmount) - await factory.deployNewRound(roundDuration) + .transfer(clrfund.address, contributionAmount) + await clrfund.deployNewRound(roundDuration) await provider.send('evm_increaseTime', [roundDuration]) - await setRoundTally(factory, coordinator) + await setRoundTally(clrfund, coordinator) await expect( - factory.transferMatchingFunds( + clrfund.transferMatchingFunds( totalSpent, totalSpentSalt, resultsCommitment, @@ -453,11 +482,11 @@ describe('Clr fund deployer', () => { }) it('allows owner to finalize round even without matching funds', async () => { - await factory.deployNewRound(roundDuration) + await clrfund.deployNewRound(roundDuration) await provider.send('evm_increaseTime', [roundDuration]) - await setRoundTally(factory, coordinator) + await setRoundTally(clrfund, coordinator) await expect( - factory.transferMatchingFunds( + clrfund.transferMatchingFunds( totalSpent, totalSpentSalt, resultsCommitment, @@ -467,14 +496,14 @@ describe('Clr fund deployer', () => { }) it('pulls funds from funding source', async () => { - await factory.addFundingSource(contributor.address) - token.connect(contributor).approve(factory.address, contributionAmount) - await factory.addFundingSource(deployer.address) // Doesn't have tokens - await factory.deployNewRound(roundDuration) + await clrfund.addFundingSource(contributor.address) + token.connect(contributor).approve(clrfund.address, contributionAmount) + await clrfund.addFundingSource(deployer.address) // Doesn't have tokens + await clrfund.deployNewRound(roundDuration) await provider.send('evm_increaseTime', [roundDuration]) - await setRoundTally(factory, coordinator) + await setRoundTally(clrfund, coordinator) await expect( - factory.transferMatchingFunds( + clrfund.transferMatchingFunds( totalSpent, totalSpentSalt, resultsCommitment, @@ -484,15 +513,15 @@ describe('Clr fund deployer', () => { }) it('pulls funds from funding source if allowance is greater than balance', async () => { - await factory.addFundingSource(contributor.address) + await clrfund.addFundingSource(contributor.address) token .connect(contributor) - .approve(factory.address, contributionAmount.mul(2)) - await factory.deployNewRound(roundDuration) + .approve(clrfund.address, contributionAmount.mul(2)) + await clrfund.deployNewRound(roundDuration) await provider.send('evm_increaseTime', [roundDuration]) - await setRoundTally(factory, coordinator) + await setRoundTally(clrfund, coordinator) await expect( - factory.transferMatchingFunds( + clrfund.transferMatchingFunds( totalSpent, totalSpentSalt, resultsCommitment, @@ -502,11 +531,11 @@ describe('Clr fund deployer', () => { }) it('allows only owner to finalize round', async () => { - await factory.deployNewRound(roundDuration) + await clrfund.deployNewRound(roundDuration) await provider.send('evm_increaseTime', [roundDuration]) - await setRoundTally(factory, coordinator) + await setRoundTally(clrfund, coordinator) await expect( - factory + clrfund .connect(contributor) .transferMatchingFunds( totalSpent, @@ -519,7 +548,7 @@ describe('Clr fund deployer', () => { it('reverts if round has not been deployed', async () => { await expect( - factory.transferMatchingFunds( + clrfund.transferMatchingFunds( totalSpent, totalSpentSalt, resultsCommitment, @@ -531,72 +560,72 @@ describe('Clr fund deployer', () => { describe('cancelling round', () => { beforeEach(async () => { - await factory.setUserRegistry(userRegistry.address) - await factory.setRecipientRegistry(recipientRegistry.address) - await factory.setToken(token.address) - await factory.setCoordinator(coordinator.address, coordinatorPubKey) + await clrfund.setUserRegistry(userRegistry.address) + await clrfund.setRecipientRegistry(recipientRegistry.address) + await clrfund.setToken(token.address) + await clrfund.setCoordinator(coordinator.address, coordinatorPubKey) }) it('allows owner to cancel round', async () => { - await factory.deployNewRound(roundDuration) - const fundingRoundAddress = await factory.getCurrentRound() + await clrfund.deployNewRound(roundDuration) + const fundingRoundAddress = await clrfund.getCurrentRound() const fundingRound = await ethers.getContractAt( 'FundingRound', fundingRoundAddress ) - await expect(factory.cancelCurrentRound()) - .to.emit(factory, 'RoundFinalized') + await expect(clrfund.cancelCurrentRound()) + .to.emit(clrfund, 'RoundFinalized') .withArgs(fundingRoundAddress) expect(await fundingRound.isCancelled()).to.equal(true) }) it('allows only owner to cancel round', async () => { - await factory.deployNewRound(roundDuration) + await clrfund.deployNewRound(roundDuration) await expect( - factory.connect(contributor).cancelCurrentRound() + clrfund.connect(contributor).cancelCurrentRound() ).to.be.revertedWith('Ownable: caller is not the owner') }) it('reverts if round has not been deployed', async () => { - await expect(factory.cancelCurrentRound()).to.be.revertedWith( + await expect(clrfund.cancelCurrentRound()).to.be.revertedWith( 'NoCurrentRound' ) }) it('reverts if round is finalized', async () => { - await factory.deployNewRound(roundDuration) - await factory.cancelCurrentRound() - await expect(factory.cancelCurrentRound()).to.be.revertedWith( + await clrfund.deployNewRound(roundDuration) + await clrfund.cancelCurrentRound() + await expect(clrfund.cancelCurrentRound()).to.be.revertedWith( 'AlreadyFinalized' ) }) }) it('allows owner to set native token', async () => { - await expect(factory.setToken(token.address)) - .to.emit(factory, 'TokenChanged') + await expect(clrfund.setToken(token.address)) + .to.emit(clrfund, 'TokenChanged') .withArgs(token.address) - expect(await factory.nativeToken()).to.equal(token.address) + expect(await clrfund.nativeToken()).to.equal(token.address) }) it('only owner can set native token', async () => { - const factoryAsContributor = factory.connect(contributor) + const clrfundAsContributor = clrfund.connect(contributor) await expect( - factoryAsContributor.setToken(token.address) + clrfundAsContributor.setToken(token.address) ).to.be.revertedWith('Ownable: caller is not the owner') }) it('allows owner to change coordinator', async () => { - await expect(factory.setCoordinator(coordinator.address, coordinatorPubKey)) - .to.emit(factory, 'CoordinatorChanged') + await expect(clrfund.setCoordinator(coordinator.address, coordinatorPubKey)) + .to.emit(clrfund, 'CoordinatorChanged') .withArgs(coordinator.address) - expect(await factory.coordinator()).to.eq(coordinator.address) + expect(await clrfund.coordinator()).to.eq(coordinator.address) }) it('allows only the owner to set a new coordinator', async () => { - const factoryAsContributor = factory.connect(contributor) + const clrfundAsContributor = clrfund.connect(contributor) await expect( - factoryAsContributor.setCoordinator( + clrfundAsContributor.setCoordinator( coordinator.address, coordinatorPubKey ) @@ -604,34 +633,34 @@ describe('Clr fund deployer', () => { }) it('allows coordinator to call coordinatorQuit and sets coordinator to null', async () => { - await factory.setCoordinator(coordinator.address, coordinatorPubKey) - const factoryAsCoordinator = factory.connect(coordinator) - await expect(factoryAsCoordinator.coordinatorQuit()) - .to.emit(factory, 'CoordinatorChanged') + await clrfund.setCoordinator(coordinator.address, coordinatorPubKey) + const clrfundAsCoordinator = clrfund.connect(coordinator) + await expect(clrfundAsCoordinator.coordinatorQuit()) + .to.emit(clrfund, 'CoordinatorChanged') .withArgs(ZERO_ADDRESS) - expect(await factory.coordinator()).to.equal(ZERO_ADDRESS) + expect(await clrfund.coordinator()).to.equal(ZERO_ADDRESS) }) it('only coordinator can call coordinatorQuit', async () => { - await factory.setCoordinator(coordinator.address, coordinatorPubKey) - await expect(factory.coordinatorQuit()).to.be.revertedWith('NotAuthorized') + await clrfund.setCoordinator(coordinator.address, coordinatorPubKey) + await expect(clrfund.coordinatorQuit()).to.be.revertedWith('NotAuthorized') }) it('should cancel current round when coordinator quits', async () => { - await factory.setUserRegistry(userRegistry.address) - await factory.setRecipientRegistry(recipientRegistry.address) - await factory.setToken(token.address) - await factory.setCoordinator(coordinator.address, coordinatorPubKey) - await factory.deployNewRound(roundDuration) - const fundingRoundAddress = await factory.getCurrentRound() + await clrfund.setUserRegistry(userRegistry.address) + await clrfund.setRecipientRegistry(recipientRegistry.address) + await clrfund.setToken(token.address) + await clrfund.setCoordinator(coordinator.address, coordinatorPubKey) + await clrfund.deployNewRound(roundDuration) + const fundingRoundAddress = await clrfund.getCurrentRound() const fundingRound = await ethers.getContractAt( 'FundingRound', fundingRoundAddress ) - const factoryAsCoordinator = factory.connect(coordinator) - await expect(factoryAsCoordinator.coordinatorQuit()) - .to.emit(factory, 'RoundFinalized') + const clrfundAsCoordinator = clrfund.connect(coordinator) + await expect(clrfundAsCoordinator.coordinatorQuit()) + .to.emit(clrfund, 'RoundFinalized') .withArgs(fundingRoundAddress) expect(await fundingRound.isCancelled()).to.equal(true) }) diff --git a/contracts/tests/maciFactory.ts b/contracts/tests/maciFactory.ts index b43a589bc..f3baa4c2d 100644 --- a/contracts/tests/maciFactory.ts +++ b/contracts/tests/maciFactory.ts @@ -1,4 +1,4 @@ -import { waffle, artifacts, ethers } from 'hardhat' +import { waffle, artifacts, ethers, config } from 'hardhat' import { Contract } from 'ethers' import { use, expect } from 'chai' import { solidity } from 'ethereum-waffle' @@ -7,7 +7,8 @@ import { Keypair } from '@clrfund/common' import { getEventArg, getGasUsage } from '../utils/contracts' import { deployMaciFactory, deployPoseidonLibraries } from '../utils/deployment' -import { MaciParameters } from '../utils/maci' +import { MaciParameters } from '../utils/maciParameters' +import { DEFAULT_CIRCUIT } from '../utils/circuits' use(solidity) @@ -26,12 +27,20 @@ describe('MACI factory', () => { beforeEach(async () => { if (!poseidonContracts) { - poseidonContracts = await deployPoseidonLibraries(deployer) + poseidonContracts = await deployPoseidonLibraries({ + artifactsPath: config.paths.artifacts, + ethers, + signer: deployer, + }) } - maciFactory = await deployMaciFactory(deployer, poseidonContracts) + maciFactory = await deployMaciFactory({ + ethers, + signer: deployer, + libraries: poseidonContracts, + }) expect(await getGasUsage(maciFactory.deployTransaction)).lessThan(5600000) - maciParameters = MaciParameters.mock('micro') + maciParameters = MaciParameters.mock(DEFAULT_CIRCUIT) const SignUpGatekeeperArtifact = await artifacts.readArtifact('SignUpGatekeeper') @@ -68,17 +77,6 @@ describe('MACI factory', () => { expect(messageTreeDepth).to.equal(maciParameters.messageTreeDepth) }) - it('does not allow to decrease the vote option tree depth', async () => { - await expect( - maciFactory.setMaciParameters(...maciParameters.asContractParam()) - ).to.emit(maciFactory, 'MaciParametersChanged') - - maciParameters.voteOptionTreeDepth = 1 - await expect( - maciFactory.setMaciParameters(...maciParameters.asContractParam()) - ).to.be.revertedWith('CannotDecreaseVoteOptionDepth') - }) - it('allows only owner to set MACI parameters', async () => { const coordinatorMaciFactory = maciFactory.connect(coordinator) await expect( diff --git a/contracts/tests/recipientRegistry.ts b/contracts/tests/recipientRegistry.ts index 180a8bca6..398d747c1 100644 --- a/contracts/tests/recipientRegistry.ts +++ b/contracts/tests/recipientRegistry.ts @@ -551,11 +551,12 @@ describe('Optimistic recipient registry', () => { } beforeEach(async () => { - registry = await deployContract(deployer, 'OptimisticRecipientRegistry', [ - baseDeposit, - challengePeriodDuration, - controller.address, - ]) + registry = await deployContract({ + name: 'OptimisticRecipientRegistry', + contractArgs: [baseDeposit, challengePeriodDuration, controller.address], + ethers, + signer: deployer, + }) }) it('initializes correctly', async () => { @@ -981,11 +982,16 @@ describe('Optimistic recipient registry', () => { '_recipientId' ) - const anotherRegistry = await deployContract( - deployer, - 'OptimisticRecipientRegistry', - [baseDeposit, challengePeriodDuration, controller.address] - ) + const anotherRegistry = await deployContract({ + name: 'OptimisticRecipientRegistry', + contractArgs: [ + baseDeposit, + challengePeriodDuration, + controller.address, + ], + ethers, + signer: deployer, + }) const txTwo = await anotherRegistry.addRecipient( recipientAddress, metadata, diff --git a/contracts/tests/round.ts b/contracts/tests/round.ts index ed61cbc2c..ff822b871 100644 --- a/contracts/tests/round.ts +++ b/contracts/tests/round.ts @@ -1,4 +1,4 @@ -import { ethers, waffle, artifacts } from 'hardhat' +import { ethers, waffle, artifacts, config } from 'hardhat' import { use, expect } from 'chai' import { solidity } from 'ethereum-waffle' import { deployMockContract } from '@ethereum-waffle/mock-contract' @@ -15,9 +15,9 @@ import { } from '../utils/constants' import { getEventArg, getGasUsage } from '../utils/contracts' import { + deployContract, deployPoseidonLibraries, deployMaciFactory, - deployContractWithLinkedLibraries, } from '../utils/deployment' import { bnSqrt, @@ -25,9 +25,10 @@ import { addTallyResultsBatch, getRecipientClaimData, getRecipientTallyResultsBatch, - MaciParameters, } from '../utils/maci' import { sha256 } from 'ethers/lib/utils' +import { MaciParameters } from '../utils/maciParameters' +import { DEFAULT_CIRCUIT } from '../utils/circuits' use(solidity) @@ -134,21 +135,30 @@ describe('Funding Round', () => { IRecipientRegistryArtifact.abi ) - const libraries = await deployPoseidonLibraries(deployer) - fundingRound = await deployContractWithLinkedLibraries( - deployer, - 'FundingRound', + const libraries = await deployPoseidonLibraries({ + artifactsPath: config.paths.artifacts, + ethers, + signer: deployer, + }) + fundingRound = await deployContract({ + name: 'FundingRound', libraries, - [ + contractArgs: [ token.address, userRegistry.address, recipientRegistry.address, coordinator.address, - ] - ) - const maciFactory = await deployMaciFactory(deployer, libraries) + ], + ethers, + signer: deployer, + }) + const maciFactory = await deployMaciFactory({ + ethers, + signer: deployer, + libraries, + }) - const maciParams = MaciParameters.mock('micro') + const maciParams = MaciParameters.mock(DEFAULT_CIRCUIT) await maciFactory.setMaciParameters(...maciParams.asContractParam()) const maciDeployed = await maciFactory.deployMaci( diff --git a/contracts/tsconfig.json b/contracts/tsconfig.json index f5597e526..b178c1bd5 100644 --- a/contracts/tsconfig.json +++ b/contracts/tsconfig.json @@ -1,6 +1,6 @@ { "compilerOptions": { - "target": "es2018", + "target": "es2020", "module": "commonjs", "strict": true, "esModuleInterop": true, diff --git a/contracts/utils/JSONFile.ts b/contracts/utils/JSONFile.ts new file mode 100644 index 000000000..cf1a1eb95 --- /dev/null +++ b/contracts/utils/JSONFile.ts @@ -0,0 +1,27 @@ +import fs from 'fs' + +export class JSONFile { + /** + * Read the content of the JSON file + * + * @param path The path of the JSON file + * @returns + */ + static read(path: string) { + try { + return JSON.parse(fs.readFileSync(path).toString()) + } catch { + return {} + } + } + + /** + * Update the JSON file with the data + * @param path The path of the file + * @param data The new data to add to the JSON content + */ + static update(path: string, data: any) { + const state = JSONFile.read(path) + fs.writeFileSync(path, JSON.stringify({ ...state, ...data }, null, 2)) + } +} diff --git a/contracts/utils/circuits.ts b/contracts/utils/circuits.ts index c12108426..2d1a56691 100644 --- a/contracts/utils/circuits.ts +++ b/contracts/utils/circuits.ts @@ -4,6 +4,8 @@ const TREE_ARITY = 5 +export const DEFAULT_CIRCUIT = 'micro' + export const CIRCUITS: { [name: string]: any } = { micro: { processMessagesZkey: 'processmessages_6-8-2-3_final.zkey', diff --git a/contracts/utils/constants.ts b/contracts/utils/constants.ts index c7777989e..ed588f0e7 100644 --- a/contracts/utils/constants.ts +++ b/contracts/utils/constants.ts @@ -5,6 +5,7 @@ export const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000' export const UNIT = BigNumber.from(10).pow(BigNumber.from(18)) export const VOICE_CREDIT_FACTOR = BigNumber.from(10).pow(4 + 18 - 9) export const ALPHA_PRECISION = BigNumber.from(10).pow(18) +export const DEFAULT_SR_QUEUE_OPS = 4 export enum RecipientState { Registered = 'Registered', diff --git a/contracts/utils/deployment.ts b/contracts/utils/deployment.ts index 8c5ee48d8..611013a11 100644 --- a/contracts/utils/deployment.ts +++ b/contracts/utils/deployment.ts @@ -1,17 +1,16 @@ -import { ethers, config } from 'hardhat' -import { Signer, Contract, utils } from 'ethers' +import { Signer, Contract, utils, BigNumber } from 'ethers' import { link } from 'ethereum-waffle' import path from 'path' -import { - mergeMessages, - mergeSignups, - genProofs, - proveOnChain, -} from '@clrfund/maci-cli' import { readFileSync } from 'fs' -import { MaciParameters } from './maci' +import { HardhatEthersHelpers } from '@nomiclabs/hardhat-ethers/types' +// Number.MAX_SAFE_INTEGER - 1 +export const challengePeriodSeconds = '9007199254740990' + +export type Libraries = { [name: string]: string } + +// Mapping of the user registry type and the contract name const userRegistryNames: Record = { simple: 'SimpleUserRegistry', brightid: 'BrightIdUserRegistry', @@ -19,44 +18,20 @@ const userRegistryNames: Record = { merkle: 'MerkleUserRegistry', } +// Mapping of recipient registry type to the contract name +const recipientRegistries: Record = { + simple: 'SimpleRecipientRegistry', + optimistic: 'OptimisticRecipientRegistry', +} + +// BrightId contract deployment parameters export interface BrightIdParams { context: string verifierAddress: string sponsor: string } -/** - * Return the brightid user registry contructor parameter values - * @param userRegistryType user registry type - * @returns BrightIdParams or null - */ -export function getBrightIdParams( - userRegistryType: string -): BrightIdParams | null { - if (userRegistryType === 'brightid') { - const verifierAddress = process.env.BRIGHTID_VERIFIER_ADDR - const sponsor = process.env.BRIGHTID_SPONSOR - if (!verifierAddress) { - throw new Error('Missing environment variable BRIGHTID_VERIFIER_ADDR') - } - if (!sponsor) { - throw new Error('Missing environment variable BRIGHTID_SPONSOR') - } - - return { - context: process.env.BRIGHTID_CONTEXT || 'clr.fund', - verifierAddress, - sponsor, - } - } else { - return null - } -} - -export function linkBytecode( - bytecode: string, - libraries: { [name: string]: string } -): string { +export function linkBytecode(bytecode: string, libraries: Libraries): string { // Workarounds for https://github.com/nomiclabs/buidler/issues/611 const linkable = { evm: { bytecode: { object: bytecode } } } for (const [libraryName, libraryAddress] of Object.entries(libraries)) { @@ -68,7 +43,7 @@ export function linkBytecode( type PoseidonName = 'PoseidonT3' | 'PoseidonT4' | 'PoseidonT5' | 'PoseidonT6' /** - * Deploy the PoseidonT3 or PoseidonT6 contracts. These 2 contracts + * Deploy the Poseidon contracts. These contracts * have a custom artifact location that the hardhat library cannot * retrieve using the standard getContractFactory() function, so, we manually * read the artifact content and pass to the getContractFactory function @@ -78,95 +53,85 @@ type PoseidonName = 'PoseidonT3' | 'PoseidonT4' | 'PoseidonT5' | 'PoseidonT6' * only has the library interface. If the wrong bytecode is used to deploy the contract, * the hash functions will always return 0. * - * @param account the account that deploys the contract - * @param contractName PoseidonT3 or PoseidonT6 + * @param name PoseidonT3, PoseidonT4, PoseidonT5, PoseidonT6 + * @param ethers + * @param signer the account that deploys the contract * @returns contract object */ -export async function deployPoseidon( - account: Signer, - contractName: PoseidonName -): Promise { +export async function deployPoseidon({ + name, + artifactsPath, + ethers, + signer, +}: { + name: PoseidonName + artifactsPath: string + ethers: HardhatEthersHelpers + signer?: Signer +}): Promise { const artifact = JSON.parse( - readFileSync( - path.join(config.paths.artifacts, `${contractName}.json`) - ).toString() + readFileSync(path.join(artifactsPath, `${name}.json`)).toString() ) const Poseidon = await ethers.getContractFactory( artifact.abi, artifact.bytecode, - account + signer ) return Poseidon.deploy() } -export async function deployContractWithLinkedLibraries( - signer: Signer, - contractName: string, - libraries: { [name: string]: string }, - contractArgs: any[] = [] -): Promise { - const contractFactory = await ethers.getContractFactory(contractName, { +export type deployContractOptions = { + name: string + libraries?: Libraries + contractArgs?: any[] + // hardhat ethers handle + ethers: HardhatEthersHelpers + // if signer is not provided, use the default signer from ethers + signer?: Signer +} + +export async function deployContract({ + name, + libraries, + contractArgs = [], + ethers, + signer, +}: deployContractOptions): Promise { + const contractFactory = await ethers.getContractFactory(name, { signer, libraries, }) - const contract = await contractFactory.deploy(...contractArgs) - return await contract.deployed() -} -export async function deployContract( - account: Signer, - contractName: string, - contractArgs: any[] = [] -): Promise { - const contractFactory = await ethers.getContractFactory(contractName, account) const contract = await contractFactory.deploy(...contractArgs) return await contract.deployed() } -export async function deployMaciFactory( - account: Signer, - poseidonContracts: { [name: string]: string } -): Promise { - const pollFactoryCreator = await deployContractWithLinkedLibraries( - account, - 'PollFactoryCreator', - { ...poseidonContracts } - ) - - const vkRegistry = await deployContract(account, 'VkRegistry') - const MACIFactory = await ethers.getContractFactory('MACIFactory', { - signer: account, - libraries: { - ...poseidonContracts, - PollFactoryCreator: pollFactoryCreator.address, - }, - }) - - const maciFactory = await MACIFactory.deploy(vkRegistry.address) - await maciFactory.deployTransaction.wait() - - const transferTx = await vkRegistry.transferOwnership(maciFactory.address) - await transferTx.wait() - - return maciFactory -} - +/** + * Deploy a user registry + * @param userRegistryType user registry type, e.g. brightid, simple, etc + * @param ethers Hardhat ethers handle + * @param brightid Brightid parameters for the BrightID user registry + * @returns the newly deployed user registry contract + */ export async function deployUserRegistry( userRegistryType: string, - deployer: Signer, - brightid: BrightIdParams | null + ethers: HardhatEthersHelpers, + brightid?: BrightIdParams ): Promise { let userRegistry: Contract - if (userRegistryType === 'brightid') { + const [signer] = await ethers.getSigners() + + const lowercaseType = (userRegistryType || '').toLowerCase() + if (lowercaseType === 'brightid') { if (!brightid) { throw new Error('Missing BrightId parameter') } const BrightIdUserRegistry = await ethers.getContractFactory( 'BrightIdUserRegistry', - deployer + signer ) userRegistry = await BrightIdUserRegistry.deploy( @@ -175,14 +140,14 @@ export async function deployUserRegistry( brightid.sponsor ) } else { - const userRegistryName = userRegistryNames[userRegistryType] + const userRegistryName = userRegistryNames[lowercaseType] if (!userRegistryName) { - throw new Error('unsupported user registry type: ' + userRegistryType) + throw new Error('unsupported user registry type: ' + lowercaseType) } const UserRegistry = await ethers.getContractFactory( userRegistryName, - deployer + signer ) userRegistry = await UserRegistry.deploy() } @@ -191,19 +156,98 @@ export async function deployUserRegistry( return userRegistry } +/** + * Deploy a recipient registry + * @param type recipient registry type, e.g. simple, optimistic, etc + * @param controller the controller address of the registry + * @param ethers Hardhat ethers handle + * @returns the newly deployed registry contract + */ +export async function deployRecipientRegistry({ + type, + controller, + deposit, + challengePeriod, + ethers, + signer, +}: { + type: string + controller: string + deposit?: BigNumber + challengePeriod?: string + ethers: HardhatEthersHelpers + signer?: Signer +}): Promise { + const lowercaseType = (type || '').toLowerCase() + const registryName = recipientRegistries[lowercaseType] + if (!registryName) { + throw new Error('Unsupported recipient registry type: ' + type) + } + + if (lowercaseType === 'optimistic') { + if (!deposit) { + throw new Error('Missing base deposit amount') + } + if (!challengePeriod) { + throw new Error('Missing challenge period') + } + } + + const args = + lowercaseType === 'simple' + ? [controller] + : [deposit, challengePeriod, controller] + + const factory = await ethers.getContractFactory(registryName, signer) + const recipientRegistry = await factory.deploy(...args) + + return await recipientRegistry.deployed() +} + /** * Deploy all the poseidon contracts * * @param signer The signer for the deployment transaction + * @param ethers Hardhat ethers handle + * @param artifactsPath Contract artifacts path * @returns the deployed poseidon contracts */ -export async function deployPoseidonLibraries( - signer: Signer -): Promise<{ [name: string]: string }> { - const PoseidonT3Contract = await deployPoseidon(signer, 'PoseidonT3') - const PoseidonT4Contract = await deployPoseidon(signer, 'PoseidonT4') - const PoseidonT5Contract = await deployPoseidon(signer, 'PoseidonT5') - const PoseidonT6Contract = await deployPoseidon(signer, 'PoseidonT6') +export async function deployPoseidonLibraries({ + signer, + ethers, + artifactsPath, +}: { + signer?: Signer + ethers: HardhatEthersHelpers + artifactsPath: string +}): Promise<{ [name: string]: string }> { + const PoseidonT3Contract = await deployPoseidon({ + name: 'PoseidonT3', + artifactsPath, + ethers, + signer, + }) + + const PoseidonT4Contract = await deployPoseidon({ + name: 'PoseidonT4', + artifactsPath, + ethers, + signer, + }) + + const PoseidonT5Contract = await deployPoseidon({ + name: 'PoseidonT5', + artifactsPath, + signer, + ethers, + }) + + const PoseidonT6Contract = await deployPoseidon({ + name: 'PoseidonT6', + artifactsPath, + ethers, + signer, + }) const libraries = { PoseidonT3: PoseidonT3Contract.address, @@ -214,4 +258,149 @@ export async function deployPoseidonLibraries( return libraries } -export { mergeMessages, mergeSignups, proveOnChain, genProofs } +/** + * Deploy the poll factory + * @param signer Contract creator + * @param ethers Hardhat ethers handle + * @param libraries Poseidon libraries + * @param artifactPath Poseidon contract artifacts path + * + */ +export async function deployPollFactory({ + signer, + ethers, + libraries, + artifactsPath, +}: { + signer: Signer + ethers: HardhatEthersHelpers + libraries?: Libraries + artifactsPath?: string +}): Promise { + let poseidonLibraries = libraries + if (!libraries) { + if (!artifactsPath) { + throw Error('Failed to dpeloy PollFactory, artifact path is missing') + } + poseidonLibraries = await deployPoseidonLibraries({ + artifactsPath: artifactsPath || '', + ethers, + signer, + }) + } + + return deployContract({ + name: 'PollFactory', + libraries: poseidonLibraries, + signer, + ethers, + }) +} + +/** + * Deploy the contracts needed to run the proveOnChain script. + * If the poseidon contracts are not provided, it will create them + * using the byte codes in the artifactsPath + * + * libraries - poseidon libraries + * artifactsPath - path that contacts the poseidon abi and bytecode + * + * @returns the MessageProcessor and Tally contracts + */ +export async function deployMessageProcesorAndTally({ + artifactsPath, + libraries, + ethers, + signer, +}: { + libraries?: Libraries + artifactsPath?: string + signer?: Signer + ethers: HardhatEthersHelpers +}): Promise<{ + mpContract: Contract + tallyContract: Contract +}> { + if (!libraries) { + if (!artifactsPath) { + throw Error('Need the artifacts path to create the poseidon contracts') + } + libraries = await deployPoseidonLibraries({ + artifactsPath, + ethers, + signer, + }) + } + + const verifierContract = await deployContract({ + name: 'Verifier', + signer, + ethers, + }) + const tallyContract = await deployContract({ + name: 'Tally', + contractArgs: [verifierContract.address], + libraries, + ethers, + signer, + }) + + // deploy the message processing contract + const mpContract = await deployContract({ + name: 'MessageProcessor', + contractArgs: [verifierContract.address], + signer, + libraries, + ethers, + }) + + return { + mpContract, + tallyContract, + } +} + +/** + * Deploy an instance of MACI factory + * + * libraries - poseidon contracts + * ethers - hardhat ethers handle + * signer - if signer is not provided, use default signer in ethers + * + * @returns MACI factory contract + */ +export async function deployMaciFactory({ + libraries, + ethers, + signer, +}: { + libraries: Libraries + ethers: HardhatEthersHelpers + signer?: Signer +}): Promise { + const pollFactory = await deployContract({ + name: 'PollFactory', + libraries, + ethers, + signer, + }) + + const vkRegistry = await deployContract({ + name: 'VkRegistry', + ethers, + signer, + }) + + const maciFactory = await deployContract({ + name: 'MACIFactory', + libraries, + contractArgs: [vkRegistry.address, pollFactory.address], + ethers, + signer, + }) + + const transferTx = await vkRegistry.transferOwnership(maciFactory.address) + await transferTx.wait() + + return maciFactory +} diff --git a/contracts/utils/maci.ts b/contracts/utils/maci.ts index d5bdc359a..2447ec55f 100644 --- a/contracts/utils/maci.ts +++ b/contracts/utils/maci.ts @@ -8,15 +8,26 @@ import { hash3, hashLeftRight, LEAVES_PER_NODE, + genTallyResultCommitment, } from '@clrfund/common' import * as os from 'os' +import { + mergeMessages, + mergeSignups, + genProofs, + proveOnChain, +} from '@clrfund/maci-cli' -import { genTallyResultCommitment } from '@clrfund/common' -import { VerifyingKey } from 'maci-domainobjs' -import { extractVk } from '@clrfund/maci-circuits' +import { getTalyFilePath } from './misc' import { CIRCUITS } from './circuits' import path from 'path' +interface TallyResult { + recipientIndex: number + result: string + proof: any[] +} + export interface ZkFiles { processZkFile: string processWitness: string @@ -28,158 +39,11 @@ export interface ZkFiles { export const isOsArm = os.arch().includes('arm') -/** - * Get the zkey file path - * @param name zkey file name - * @returns zkey file path - */ -export function getCircuitFiles(circuit: string, directory: string): ZkFiles { - const params = CIRCUITS[circuit] - return { - processZkFile: path.join(directory, params.processMessagesZkey), - processWitness: path.join(directory, params.processWitness), - processWasm: path.join(directory, params.processWasm), - tallyZkFile: path.join(directory, params.tallyVotesZkey), - tallyWitness: path.join(directory, params.tallyWitness), - tallyWasm: path.join(directory, params.tallyWasm), - } -} - -export class MaciParameters { - stateTreeDepth: number - intStateTreeDepth: number - messageTreeSubDepth: number - messageTreeDepth: number - voteOptionTreeDepth: number - maxMessages: number - maxVoteOptions: number - messageBatchSize: number - processVk: VerifyingKey - tallyVk: VerifyingKey - - constructor(parameters: { [name: string]: any } = {}) { - this.stateTreeDepth = parameters.stateTreeDepth - this.intStateTreeDepth = parameters.intStateTreeDepth - this.messageTreeSubDepth = parameters.messageTreeSubDepth - this.messageTreeDepth = parameters.messageTreeDepth - this.voteOptionTreeDepth = parameters.voteOptionTreeDepth - this.maxMessages = parameters.maxMessages - this.maxVoteOptions = parameters.maxVoteOptions - this.messageBatchSize = parameters.messageBatchSize - this.processVk = parameters.processVk - this.tallyVk = parameters.tallyVk - } - - asContractParam(): any[] { - return [ - this.stateTreeDepth, - { - intStateTreeDepth: this.intStateTreeDepth, - messageTreeSubDepth: this.messageTreeSubDepth, - messageTreeDepth: this.messageTreeDepth, - voteOptionTreeDepth: this.voteOptionTreeDepth, - }, - { maxMessages: this.maxMessages, maxVoteOptions: this.maxVoteOptions }, - this.messageBatchSize, - this.processVk.asContractParam(), - this.tallyVk.asContractParam(), - ] - } - - static async fromConfig( - circuit: string, - directory: string - ): Promise { - const params = CIRCUITS[circuit] - const { processZkFile, tallyZkFile } = getCircuitFiles(circuit, directory) - const processVk: VerifyingKey = VerifyingKey.fromObj( - await extractVk(processZkFile) - ) - const tallyVk: VerifyingKey = VerifyingKey.fromObj( - await extractVk(tallyZkFile) - ) - - return new MaciParameters({ - ...params.maxValues, - ...params.treeDepths, - ...params.batchSizes, - processVk, - tallyVk, - }) - } - - static async fromContract(maciFactory: Contract): Promise { - const stateTreeDepth = await maciFactory.stateTreeDepth() - const { - intStateTreeDepth, - messageTreeSubDepth, - messageTreeDepth, - voteOptionTreeDepth, - } = await maciFactory.treeDepths() - const { maxMessages, maxVoteOptions } = await maciFactory.maxValues() - const messageBatchSize = await maciFactory.messageBatchSize() - const vkRegistry = await maciFactory.vkRegistry() - - const processVk = await vkRegistry.getProcessVk( - stateTreeDepth, - messageTreeDepth, - voteOptionTreeDepth, - messageBatchSize - ) - - const tallyVk = await vkRegistry.getTallyVk( - stateTreeDepth, - intStateTreeDepth, - voteOptionTreeDepth - ) - - return new MaciParameters({ - stateTreeDepth, - intStateTreeDepth, - messageTreeSubDepth, - messageTreeDepth, - voteOptionTreeDepth, - maxMessages, - maxVoteOptions, - messageBatchSize, - processVk: VerifyingKey.fromContract(processVk), - tallyVk: VerifyingKey.fromContract(tallyVk), - }) - } - - static mock(circuit: string): MaciParameters { - const processVk = VerifyingKey.fromObj({ - vk_alpha_1: [1, 2], - vk_beta_2: [ - [1, 2], - [1, 2], - ], - vk_gamma_2: [ - [1, 2], - [1, 2], - ], - vk_delta_2: [ - [1, 2], - [1, 2], - ], - IC: [[1, 2]], - }) - const params = CIRCUITS[circuit] - return new MaciParameters({ - ...params.maxValues, - ...params.treeDepths, - ...params.batchSizes, - processVk, - tallyVk: processVk.copy(), - }) - } -} - export function getRecipientTallyResult( recipientIndex: number, recipientTreeDepth: number, tally: any -): { recipientIndex: number; result: string; proof: any[] } { +): TallyResult { // Create proof for tally result const result = tally.results.tally[recipientIndex] const resultTree = new IncrementalQuinTree( @@ -210,7 +74,7 @@ export function getRecipientTallyResultsBatch( throw new Error('Recipient index out of bound') } - const tallyData = [] + const tallyData: TallyResult[] = [] const lastIndex = recipientStartIndex + batchSize > tallyCount ? tallyCount @@ -295,18 +159,36 @@ export async function addTallyResultsBatch( return totalGasUsed } +/** + * Get the zkey file path + * @param name zkey file name + * @returns zkey file path + */ +export function getCircuitFiles(circuit: string, directory: string): ZkFiles { + const params = CIRCUITS[circuit] + return { + processZkFile: path.join(directory, params.processMessagesZkey), + processWitness: path.join(directory, params.processWitness), + processWasm: path.join(directory, params.processWasm), + tallyZkFile: path.join(directory, params.tallyVotesZkey), + tallyWitness: path.join(directory, params.tallyWitness), + tallyWasm: path.join(directory, params.tallyWasm), + } +} + /* Input to getGenProofArgs() */ type getGenProofArgsInput = { maciAddress: string providerUrl: string pollId: string - serializedCoordinatorPrivKey: string + // coordinator's MACI serialized secret key + coordinatorMacisk: string // the transaction hash of the creation of the MACI contract maciTxHash?: string // the key get zkeys file mapping, see utils/circuits.ts circuitType: string circuitDirectory: string - rapidSnarkDirectory: string + rapidSnarkDirectory?: string // where the proof will be produced outputDir: string } @@ -339,16 +221,16 @@ export function getGenProofArgs( maciAddress, providerUrl, pollId, - serializedCoordinatorPrivKey, + coordinatorMacisk, maciTxHash, circuitType, circuitDirectory, rapidSnarkDirectory, outputDir, } = args - const tallyFile = path.join(outputDir, `tally.json`) + const tallyFile = getTalyFilePath(outputDir) const maciStateFile = path.join(outputDir, `macistate`) - const rapidSnarkExe = path.join(rapidSnarkDirectory, 'prover') + const rapidSnarkExe = path.join(rapidSnarkDirectory || '', 'prover') const { processZkFile, @@ -371,7 +253,7 @@ export function getGenProofArgs( tally_wasm: tallyWasm, transaction_hash: maciTxHash, output: outputDir, - privkey: serializedCoordinatorPrivKey, + privkey: coordinatorMacisk, macistate: maciStateFile, } : { @@ -386,9 +268,35 @@ export function getGenProofArgs( tally_zkey: tallyZkFile, transaction_hash: maciTxHash, output: outputDir, - privkey: serializedCoordinatorPrivKey, + privkey: coordinatorMacisk, macistate: maciStateFile, } } -export { createMessage, getRecipientClaimData, bnSqrt } +/** + * Merge MACI message and signups subtrees + * Must merge the subtrees before calling genProofs + * + * @param maciAddress MACI contract address + * @param pollId Poll id + * @param numOperations Number of operations to perform for the merge + */ +export async function mergeMaciSubtrees( + maciAddress: string, + pollId: string, + numOperations: number +) { + await mergeMessages({ + contract: maciAddress, + poll_id: pollId, + num_queue_ops: numOperations, + }) + + await mergeSignups({ + contract: maciAddress, + poll_id: pollId, + num_queue_ops: numOperations, + }) +} + +export { createMessage, getRecipientClaimData, bnSqrt, proveOnChain, genProofs } diff --git a/contracts/utils/maciParameters.ts b/contracts/utils/maciParameters.ts new file mode 100644 index 000000000..6f169b10b --- /dev/null +++ b/contracts/utils/maciParameters.ts @@ -0,0 +1,146 @@ +import { Contract } from 'ethers' + +import { VerifyingKey } from 'maci-domainobjs' +import { extractVk } from '@clrfund/maci-circuits' +import { CIRCUITS } from './circuits' +import path from 'path' + +export interface ZkFiles { + processZkFile: string + processWitness: string + processWasm: string + tallyZkFile: string + tallyWitness: string + tallyWasm: string +} + +/** + * Get the zkey file path + * @param name zkey file name + * @returns zkey file path + */ +export function getCircuitFiles(circuit: string, directory: string): ZkFiles { + const params = CIRCUITS[circuit] + return { + processZkFile: path.join(directory, params.processMessagesZkey), + processWitness: path.join(directory, params.processWitness), + processWasm: path.join(directory, params.processWasm), + tallyZkFile: path.join(directory, params.tallyVotesZkey), + tallyWitness: path.join(directory, params.tallyWitness), + tallyWasm: path.join(directory, params.tallyWasm), + } +} + +export class MaciParameters { + stateTreeDepth: number + intStateTreeDepth: number + messageTreeSubDepth: number + messageTreeDepth: number + voteOptionTreeDepth: number + maxMessages: number + maxVoteOptions: number + messageBatchSize: number + processVk: VerifyingKey + tallyVk: VerifyingKey + + constructor(parameters: { [name: string]: any } = {}) { + this.stateTreeDepth = parameters.stateTreeDepth + this.intStateTreeDepth = parameters.intStateTreeDepth + this.messageTreeSubDepth = parameters.messageTreeSubDepth + this.messageTreeDepth = parameters.messageTreeDepth + this.voteOptionTreeDepth = parameters.voteOptionTreeDepth + this.maxMessages = parameters.maxMessages + this.maxVoteOptions = parameters.maxVoteOptions + this.messageBatchSize = parameters.messageBatchSize + this.processVk = parameters.processVk + this.tallyVk = parameters.tallyVk + } + + asContractParam(): any[] { + return [ + this.stateTreeDepth, + { + intStateTreeDepth: this.intStateTreeDepth, + messageTreeSubDepth: this.messageTreeSubDepth, + messageTreeDepth: this.messageTreeDepth, + voteOptionTreeDepth: this.voteOptionTreeDepth, + }, + { maxMessages: this.maxMessages, maxVoteOptions: this.maxVoteOptions }, + this.messageBatchSize, + this.processVk.asContractParam(), + this.tallyVk.asContractParam(), + ] + } + + static async fromConfig( + circuit: string, + directory: string + ): Promise { + const params = CIRCUITS[circuit] + const { processZkFile, tallyZkFile } = getCircuitFiles(circuit, directory) + const processVk: VerifyingKey = VerifyingKey.fromObj( + await extractVk(processZkFile) + ) + const tallyVk: VerifyingKey = VerifyingKey.fromObj( + await extractVk(tallyZkFile) + ) + + return new MaciParameters({ + ...params.maxValues, + ...params.treeDepths, + ...params.batchSizes, + processVk, + tallyVk, + }) + } + + static async fromContract(maciFactory: Contract): Promise { + const stateTreeDepth = await maciFactory.stateTreeDepth() + const { + intStateTreeDepth, + messageTreeSubDepth, + messageTreeDepth, + voteOptionTreeDepth, + } = await maciFactory.treeDepths() + const { maxMessages, maxVoteOptions } = await maciFactory.maxValues() + const messageBatchSize = await maciFactory.messageBatchSize() + + return new MaciParameters({ + stateTreeDepth, + intStateTreeDepth, + messageTreeSubDepth, + messageTreeDepth, + voteOptionTreeDepth, + maxMessages, + maxVoteOptions, + messageBatchSize, + }) + } + + static mock(circuit: string): MaciParameters { + const processVk = VerifyingKey.fromObj({ + vk_alpha_1: [1, 2], + vk_beta_2: [ + [1, 2], + [1, 2], + ], + vk_gamma_2: [ + [1, 2], + [1, 2], + ], + vk_delta_2: [ + [1, 2], + [1, 2], + ], + IC: [[1, 2]], + }) + const params = CIRCUITS[circuit] + return new MaciParameters({ + ...params.maxValues, + ...params.treeDepths, + ...params.batchSizes, + processVk, + tallyVk: processVk.copy(), + }) + } +} diff --git a/contracts/utils/misc.ts b/contracts/utils/misc.ts new file mode 100644 index 000000000..6eafc1586 --- /dev/null +++ b/contracts/utils/misc.ts @@ -0,0 +1,11 @@ +import path from 'path' + +/** + * Get the tally file path + * + * @param outputDir The output directory + * @returns The tally file path + */ +export function getTalyFilePath(outputDir: string) { + return path.join(outputDir, 'tally.json') +} diff --git a/yarn.lock b/yarn.lock index d825f089b..6e53fe0c1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -55,12 +55,12 @@ dependencies: node-fetch "^2.6.1" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.22.13": - version "7.22.13" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e" - integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.22.13", "@babel/code-frame@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.4.tgz#03ae5af150be94392cb5c7ccd97db5a19a5da6aa" + integrity sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA== dependencies: - "@babel/highlight" "^7.22.13" + "@babel/highlight" "^7.23.4" chalk "^2.4.2" "@babel/compat-data@^7.20.5", "@babel/compat-data@^7.22.9": @@ -89,12 +89,12 @@ json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@^7.14.0", "@babel/generator@^7.18.13", "@babel/generator@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.3.tgz#86e6e83d95903fbe7613f448613b8b319f330a8e" - integrity sha512-keeZWAV4LU3tW0qRi19HRpabC/ilM0HRBBzf9/k8FFiG4KVpiv0FIy4hHfLfFQZNhziCTPTmd59zoyv6DNISzg== +"@babel/generator@^7.14.0", "@babel/generator@^7.18.13", "@babel/generator@^7.23.3", "@babel/generator@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.4.tgz#4a41377d8566ec18f807f42962a7f3551de83d1c" + integrity sha512-esuS49Cga3HcThFNebGhlgsrVLkvhqvYDTzgjfFFlHJcIfLe5jFmRRfCQ1KuBfc4Jrtn3ndLgKWAKjBE+IraYQ== dependencies: - "@babel/types" "^7.23.3" + "@babel/types" "^7.23.4" "@jridgewell/gen-mapping" "^0.3.2" "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" @@ -219,10 +219,10 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-string-parser@^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== +"@babel/helper-string-parser@^7.22.5", "@babel/helper-string-parser@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz#9478c707febcbbe1ddb38a3d91a2e054ae622d83" + integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ== "@babel/helper-validator-identifier@^7.22.19", "@babel/helper-validator-identifier@^7.22.20": version "7.22.20" @@ -235,27 +235,27 @@ integrity sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA== "@babel/helpers@^7.23.2": - version "7.23.2" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.2.tgz#2832549a6e37d484286e15ba36a5330483cac767" - integrity sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ== + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.4.tgz#7d2cfb969aa43222032193accd7329851facf3c1" + integrity sha512-HfcMizYz10cr3h29VqyfGL6ZWIjTwWfvYBMsBVGwpcbhNGe3wQ1ZXZRPzZoAHhd9OqHadHqjQ89iVKINXnbzuw== dependencies: "@babel/template" "^7.22.15" - "@babel/traverse" "^7.23.2" - "@babel/types" "^7.23.0" + "@babel/traverse" "^7.23.4" + "@babel/types" "^7.23.4" -"@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/highlight@^7.23.4": + version "7.23.4" + 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.14.0", "@babel/parser@^7.16.8", "@babel/parser@^7.21.8", "@babel/parser@^7.22.15", "@babel/parser@^7.22.5", "@babel/parser@^7.23.0", "@babel/parser@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.3.tgz#0ce0be31a4ca4f1884b5786057cadcb6c3be58f9" - integrity sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw== +"@babel/parser@^7.14.0", "@babel/parser@^7.16.8", "@babel/parser@^7.21.8", "@babel/parser@^7.22.15", "@babel/parser@^7.22.5", "@babel/parser@^7.23.0", "@babel/parser@^7.23.3", "@babel/parser@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.4.tgz#409fbe690c333bb70187e2de4021e1e47a026661" + integrity sha512-vf3Xna6UEprW+7t6EtOmFpHNAuxw3xqPZghy+brsnusscJRW5BMUzzHZc5ICjULee81WeUV2jjakG09MDglJXQ== "@babel/plugin-proposal-class-properties@^7.0.0": version "7.18.6" @@ -297,7 +297,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.22.5": +"@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz#8f2e4f8a9b5f9aa16067e142c1ac9cd9f810f473" integrity sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg== @@ -326,9 +326,9 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-block-scoping@^7.0.0": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.3.tgz#e99a3ff08f58edd28a8ed82481df76925a4ffca7" - integrity sha512-QPZxHrThbQia7UdvfpaRRlq/J9ciz1J4go0k+lPBXbgaNeY7IQrBj/9ceWjvMMI07/ZBzHl/F0R/2K0qH7jCVw== + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz#b2d38589531c6c80fbe25e6b58e763622d2d3cf5" + integrity sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" @@ -439,15 +439,15 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-react-jsx@^7.0.0": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.15.tgz#7e6266d88705d7c49f11c98db8b9464531289cd6" - integrity sha512-oKckg2eZFa8771O/5vi7XeTvmM6+O9cxZu+kanTU7tD4sin5nO/G8jGJhq8Hvt2Z0kUoEDRayuZLaUlYl8QuGA== + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.23.4.tgz#393f99185110cea87184ea47bcb4a7b0c2e39312" + integrity sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" "@babel/helper-module-imports" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-jsx" "^7.22.5" - "@babel/types" "^7.22.15" + "@babel/plugin-syntax-jsx" "^7.23.3" + "@babel/types" "^7.23.4" "@babel/plugin-transform-shorthand-properties@^7.0.0": version "7.23.3" @@ -472,9 +472,9 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/runtime@^7.0.0": - version "7.23.2" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.2.tgz#062b0ac103261d68a966c4c7baf2ae3e62ec3885" - integrity sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg== + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.4.tgz#36fa1d2b36db873d25ec631dcc4923fdc1cf2e2e" + integrity sha512-2Yv65nlWnWlSpe3fXEyX5i7fx5kIKo4Qbcj+hMO0odwaneFjfXw5fdum+4yL20O0QiaHpia0cYQ9xpNMqrBwHg== dependencies: regenerator-runtime "^0.14.0" @@ -487,19 +487,19 @@ "@babel/parser" "^7.22.15" "@babel/types" "^7.22.15" -"@babel/traverse@^7.14.0", "@babel/traverse@^7.16.8", "@babel/traverse@^7.23.2", "@babel/traverse@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.3.tgz#26ee5f252e725aa7aca3474aa5b324eaf7908b5b" - integrity sha512-+K0yF1/9yR0oHdE0StHuEj3uTPzwwbrLGfNOndVJVV2TqA5+j3oljJUb4nmB954FLGjNem976+B+eDuLIjesiQ== +"@babel/traverse@^7.14.0", "@babel/traverse@^7.16.8", "@babel/traverse@^7.23.3", "@babel/traverse@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.4.tgz#c2790f7edf106d059a0098770fe70801417f3f85" + integrity sha512-IYM8wSUwunWTB6tFC2dkKZhxbIjHoWemdK+3f8/wq8aKhbUscxD5MX72ubd90fxvFknaLPeGw5ycU84V1obHJg== dependencies: - "@babel/code-frame" "^7.22.13" - "@babel/generator" "^7.23.3" + "@babel/code-frame" "^7.23.4" + "@babel/generator" "^7.23.4" "@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.3" - "@babel/types" "^7.23.3" + "@babel/parser" "^7.23.4" + "@babel/types" "^7.23.4" debug "^4.1.0" globals "^11.1.0" @@ -512,21 +512,21 @@ "@babel/helper-validator-identifier" "^7.22.19" to-fast-properties "^2.0.0" -"@babel/types@7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.0.tgz#8c1f020c9df0e737e4e247c0619f58c68458aaeb" - integrity sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg== +"@babel/types@7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.3.tgz#d5ea892c07f2ec371ac704420f4dcdb07b5f9598" + integrity sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw== dependencies: "@babel/helper-string-parser" "^7.22.5" "@babel/helper-validator-identifier" "^7.22.20" to-fast-properties "^2.0.0" -"@babel/types@^7.0.0", "@babel/types@^7.16.8", "@babel/types@^7.18.13", "@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.3.tgz#d5ea892c07f2ec371ac704420f4dcdb07b5f9598" - integrity sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw== +"@babel/types@^7.0.0", "@babel/types@^7.16.8", "@babel/types@^7.18.13", "@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.3", "@babel/types@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.4.tgz#7206a1810fc512a7f7f7d4dace4cb4c1c9dbfb8e" + integrity sha512-7uIFwVYpoplT5jp/kVv6EF93VaJ8H+Yn5IczYiaAi98ajzjfoZfslet/e0sLh+wVBjb2qqIut1b0S26VSafsSQ== 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" @@ -562,9 +562,9 @@ "@bugsnag/node" "^7.19.0" "@bugsnag/js@^7.0.0", "@bugsnag/js@^7.20.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@bugsnag/js/-/js-7.21.0.tgz#0a8a9a61a43cf9b552dc70341ed49ee9da46a8f3" - integrity sha512-fFTR7cRBSlLtwa1wPTse92igZUEX2V95KyGGCXq2qb2F2w6hJ6oJDxA0BMPS8qqsciYXRjbfn8HX+TFgO1oErg== + version "7.22.2" + resolved "https://registry.yarnpkg.com/@bugsnag/js/-/js-7.22.2.tgz#4cd91c77e9e4657b8a952fad34eee40382753c81" + integrity sha512-HgKzjkwzMQKyokIFnyRMChONxM9AoR24Sk76tWcqIdFagE0bhnTgSn3qYT2bRVNODtWyQHiW6qjOOpgOM3Mjlw== dependencies: "@bugsnag/browser" "^7.21.0" "@bugsnag/node" "^7.19.0" @@ -660,10 +660,10 @@ xmlhttprequest "1.8.0" zkey-manager "^0.1.1" -"@clrfund/maci-contracts@^1.1.7": - version "1.1.7" - resolved "https://registry.yarnpkg.com/@clrfund/maci-contracts/-/maci-contracts-1.1.7.tgz#8a35678cf76607c480ff164a70154c7bdc8b8c3c" - integrity sha512-m68HH6KEP64WBWhJmUdiwk3kKSLfC+sIpE+vp4awBkCstFaEEgGQNEdikxKo2rFFSGpn7XPegb6oCeDXQvWxgg== +"@clrfund/maci-contracts@^1.1.7", "@clrfund/maci-contracts@^1.1.9": + version "1.1.9" + resolved "https://registry.yarnpkg.com/@clrfund/maci-contracts/-/maci-contracts-1.1.9.tgz#baaa07c586d7851bfdefe6124fe048f0140c53f8" + integrity sha512-X6JQApedLX+LHsLz2bl1FdtMht8jP4pAhhGUSTJyW8mpwksKYINQt/EsJuaD2RPoyC2arp/VhpvSh5FHtZ2X2w== dependencies: "@clrfund/maci-core" "^1.1.7" "@clrfund/maci-crypto" "^1.1.7" @@ -767,10 +767,10 @@ resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.4.tgz#74752a09301b8c6b9a415fbda9fb71406a62a7b7" integrity sha512-mRsi2vJsk4Bx/AFsNBqOH2fqedxn5L/moT58xgg51DjX1la64Z3Npicut2VbhvDFO26qjWtPMsVxCd80YTFVeg== -"@esbuild/android-arm64@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.5.tgz#276c5f99604054d3dbb733577e09adae944baa90" - integrity sha512-5d1OkoJxnYQfmC+Zd8NBFjkhyCNYwM4n9ODrycTFY6Jk1IGiZ+tjVJDDSwDt77nK+tfpGP4T50iMtVi4dEGzhQ== +"@esbuild/android-arm64@0.19.6": + version "0.19.6" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.6.tgz#13d98a34bbbde4237867cc232307a20ded139b6f" + integrity sha512-KQ/hbe9SJvIJ4sR+2PcZ41IBV+LPJyYp6V1K1P1xcMRup9iYsBoQn4MzE3mhMLOld27Au2eDcLlIREeKGUXpHQ== "@esbuild/android-arm@0.18.20": version "0.18.20" @@ -782,10 +782,10 @@ resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.4.tgz#c27363e1e280e577d9b5c8fa7c7a3be2a8d79bf5" integrity sha512-uBIbiYMeSsy2U0XQoOGVVcpIktjLMEKa7ryz2RLr7L/vTnANNEsPVAh4xOv7ondGz6ac1zVb0F8Jx20rQikffQ== -"@esbuild/android-arm@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.5.tgz#4a3cbf14758166abaae8ba9c01a80e68342a4eec" - integrity sha512-bhvbzWFF3CwMs5tbjf3ObfGqbl/17ict2/uwOSfr3wmxDE6VdS2GqY/FuzIPe0q0bdhj65zQsvqfArI9MY6+AA== +"@esbuild/android-arm@0.19.6": + version "0.19.6" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.6.tgz#68898d949672c56f10451f540fd92301dc713fb3" + integrity sha512-muPzBqXJKCbMYoNbb1JpZh/ynl0xS6/+pLjrofcR3Nad82SbsCogYzUE6Aq9QT3cLP0jR/IVK/NHC9b90mSHtg== "@esbuild/android-x64@0.18.20": version "0.18.20" @@ -797,10 +797,10 @@ resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.4.tgz#6c9ee03d1488973d928618100048b75b147e0426" integrity sha512-4iPufZ1TMOD3oBlGFqHXBpa3KFT46aLl6Vy7gwed0ZSYgHaZ/mihbYb4t7Z9etjkC9Al3ZYIoOaHrU60gcMy7g== -"@esbuild/android-x64@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.5.tgz#21a3d11cd4613d2d3c5ccb9e746c254eb9265b0a" - integrity sha512-9t+28jHGL7uBdkBjL90QFxe7DVA+KGqWlHCF8ChTKyaKO//VLuoBricQCgwhOjA1/qOczsw843Fy4cbs4H3DVA== +"@esbuild/android-x64@0.19.6": + version "0.19.6" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.6.tgz#51a0ab83680dedc6dd1ae26133def26b178ed3a1" + integrity sha512-VVJVZQ7p5BBOKoNxd0Ly3xUM78Y4DyOoFKdkdAe2m11jbh0LEU4bPles4e/72EMl4tapko8o915UalN/5zhspg== "@esbuild/darwin-arm64@0.18.20": version "0.18.20" @@ -812,10 +812,10 @@ resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.4.tgz#64e2ee945e5932cd49812caa80e8896e937e2f8b" integrity sha512-Lviw8EzxsVQKpbS+rSt6/6zjn9ashUZ7Tbuvc2YENgRl0yZTktGlachZ9KMJUsVjZEGFVu336kl5lBgDN6PmpA== -"@esbuild/darwin-arm64@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.5.tgz#714cb839f467d6a67b151ee8255886498e2b9bf6" - integrity sha512-mvXGcKqqIqyKoxq26qEDPHJuBYUA5KizJncKOAf9eJQez+L9O+KfvNFu6nl7SCZ/gFb2QPaRqqmG0doSWlgkqw== +"@esbuild/darwin-arm64@0.19.6": + version "0.19.6" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.6.tgz#2883f14197111febb118c0463c080930a30883e5" + integrity sha512-91LoRp/uZAKx6ESNspL3I46ypwzdqyDLXZH7x2QYCLgtnaU08+AXEbabY2yExIz03/am0DivsTtbdxzGejfXpA== "@esbuild/darwin-x64@0.18.20": version "0.18.20" @@ -827,10 +827,10 @@ resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.4.tgz#d8e26e1b965df284692e4d1263ba69a49b39ac7a" integrity sha512-YHbSFlLgDwglFn0lAO3Zsdrife9jcQXQhgRp77YiTDja23FrC2uwnhXMNkAucthsf+Psr7sTwYEryxz6FPAVqw== -"@esbuild/darwin-x64@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.5.tgz#2c553e97a6d2b4ae76a884e35e6cbab85a990bbf" - integrity sha512-Ly8cn6fGLNet19s0X4unjcniX24I0RqjPv+kurpXabZYSXGM4Pwpmf85WHJN3lAgB8GSth7s5A0r856S+4DyiA== +"@esbuild/darwin-x64@0.19.6": + version "0.19.6" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.6.tgz#400bf20f9a35a7d68a17f5898c0f9ecb099f062b" + integrity sha512-QCGHw770ubjBU1J3ZkFJh671MFajGTYMZumPs9E/rqU52md6lIil97BR0CbPq6U+vTh3xnTNDHKRdR8ggHnmxQ== "@esbuild/freebsd-arm64@0.18.20": version "0.18.20" @@ -842,10 +842,10 @@ resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.4.tgz#29751a41b242e0a456d89713b228f1da4f45582f" integrity sha512-vz59ijyrTG22Hshaj620e5yhs2dU1WJy723ofc+KUgxVCM6zxQESmWdMuVmUzxtGqtj5heHyB44PjV/HKsEmuQ== -"@esbuild/freebsd-arm64@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.5.tgz#d554f556718adb31917a0da24277bf84b6ee87f3" - integrity sha512-GGDNnPWTmWE+DMchq1W8Sd0mUkL+APvJg3b11klSGUDvRXh70JqLAO56tubmq1s2cgpVCSKYywEiKBfju8JztQ== +"@esbuild/freebsd-arm64@0.19.6": + version "0.19.6" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.6.tgz#8af07bd848afa2470b8a2339b203ce29a721152b" + integrity sha512-J53d0jGsDcLzWk9d9SPmlyF+wzVxjXpOH7jVW5ae7PvrDst4kiAz6sX+E8btz0GB6oH12zC+aHRD945jdjF2Vg== "@esbuild/freebsd-x64@0.18.20": version "0.18.20" @@ -857,10 +857,10 @@ resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.4.tgz#873edc0f73e83a82432460ea59bf568c1e90b268" integrity sha512-3sRbQ6W5kAiVQRBWREGJNd1YE7OgzS0AmOGjDmX/qZZecq8NFlQsQH0IfXjjmD0XtUYqr64e0EKNFjMUlPL3Cw== -"@esbuild/freebsd-x64@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.5.tgz#288f7358a3bb15d99e73c65c9adaa3dabb497432" - integrity sha512-1CCwDHnSSoA0HNwdfoNY0jLfJpd7ygaLAp5EHFos3VWJCRX9DMwWODf96s9TSse39Br7oOTLryRVmBoFwXbuuQ== +"@esbuild/freebsd-x64@0.19.6": + version "0.19.6" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.6.tgz#ae0230860e27df204a616671e028ff8fdffa009a" + integrity sha512-hn9qvkjHSIB5Z9JgCCjED6YYVGCNpqB7dEGavBdG6EjBD8S/UcNUIlGcB35NCkMETkdYwfZSvD9VoDJX6VeUVA== "@esbuild/linux-arm64@0.18.20": version "0.18.20" @@ -872,10 +872,10 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.4.tgz#659f2fa988d448dbf5010b5cc583be757cc1b914" integrity sha512-ZWmWORaPbsPwmyu7eIEATFlaqm0QGt+joRE9sKcnVUG3oBbr/KYdNE2TnkzdQwX6EDRdg/x8Q4EZQTXoClUqqA== -"@esbuild/linux-arm64@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.5.tgz#95933ae86325c93cb6b5e8333d22120ecfdc901b" - integrity sha512-o3vYippBmSrjjQUCEEiTZ2l+4yC0pVJD/Dl57WfPwwlvFkrxoSO7rmBZFii6kQB3Wrn/6GwJUPLU5t52eq2meA== +"@esbuild/linux-arm64@0.19.6": + version "0.19.6" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.6.tgz#3042bc423a978deab44a72244b863f743fd9fda1" + integrity sha512-HQCOrk9XlH3KngASLaBfHpcoYEGUt829A9MyxaI8RMkfRA8SakG6YQEITAuwmtzFdEu5GU4eyhKcpv27dFaOBg== "@esbuild/linux-arm@0.18.20": version "0.18.20" @@ -887,10 +887,10 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.4.tgz#d5b13a7ec1f1c655ce05c8d319b3950797baee55" integrity sha512-z/4ArqOo9EImzTi4b6Vq+pthLnepFzJ92BnofU1jgNlcVb+UqynVFdoXMCFreTK7FdhqAzH0vmdwW5373Hm9pg== -"@esbuild/linux-arm@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.5.tgz#0acef93aa3e0579e46d33b666627bddb06636664" - integrity sha512-lrWXLY/vJBzCPC51QN0HM71uWgIEpGSjSZZADQhq7DKhPcI6NH1IdzjfHkDQws2oNpJKpR13kv7/pFHBbDQDwQ== +"@esbuild/linux-arm@0.19.6": + version "0.19.6" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.6.tgz#50a537de609315979509120b0181882978294db1" + integrity sha512-G8IR5zFgpXad/Zp7gr7ZyTKyqZuThU6z1JjmRyN1vSF8j0bOlGzUwFSMTbctLAdd7QHpeyu0cRiuKrqK1ZTwvQ== "@esbuild/linux-ia32@0.18.20": version "0.18.20" @@ -902,10 +902,10 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.4.tgz#878cd8bf24c9847c77acdb5dd1b2ef6e4fa27a82" integrity sha512-EGc4vYM7i1GRUIMqRZNCTzJh25MHePYsnQfKDexD8uPTCm9mK56NIL04LUfX2aaJ+C9vyEp2fJ7jbqFEYgO9lQ== -"@esbuild/linux-ia32@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.5.tgz#b6e5c9e80b42131cbd6b1ddaa48c92835f1ed67f" - integrity sha512-MkjHXS03AXAkNp1KKkhSKPOCYztRtK+KXDNkBa6P78F8Bw0ynknCSClO/ztGszILZtyO/lVKpa7MolbBZ6oJtQ== +"@esbuild/linux-ia32@0.19.6": + version "0.19.6" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.6.tgz#f99c48b597facf9cbf8e1a2522ce379b2ad7b0c4" + integrity sha512-22eOR08zL/OXkmEhxOfshfOGo8P69k8oKHkwkDrUlcB12S/sw/+COM4PhAPT0cAYW/gpqY2uXp3TpjQVJitz7w== "@esbuild/linux-loong64@0.18.20": version "0.18.20" @@ -917,10 +917,10 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.4.tgz#df890499f6e566b7de3aa2361be6df2b8d5fa015" integrity sha512-WVhIKO26kmm8lPmNrUikxSpXcgd6HDog0cx12BUfA2PkmURHSgx9G6vA19lrlQOMw+UjMZ+l3PpbtzffCxFDRg== -"@esbuild/linux-loong64@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.5.tgz#e5f0cf95a180158b01ff5f417da796a1c09dfbea" - integrity sha512-42GwZMm5oYOD/JHqHska3Jg0r+XFb/fdZRX+WjADm3nLWLcIsN27YKtqxzQmGNJgu0AyXg4HtcSK9HuOk3v1Dw== +"@esbuild/linux-loong64@0.19.6": + version "0.19.6" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.6.tgz#9fe79be31ce305564aa62da190f38e199d6d26b7" + integrity sha512-82RvaYAh/SUJyjWA8jDpyZCHQjmEggL//sC7F3VKYcBMumQjUL3C5WDl/tJpEiKtt7XrWmgjaLkrk205zfvwTA== "@esbuild/linux-mips64el@0.18.20": version "0.18.20" @@ -932,10 +932,10 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.4.tgz#76eae4e88d2ce9f4f1b457e93892e802851b6807" integrity sha512-keYY+Hlj5w86hNp5JJPuZNbvW4jql7c1eXdBUHIJGTeN/+0QFutU3GrS+c27L+NTmzi73yhtojHk+lr2+502Mw== -"@esbuild/linux-mips64el@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.5.tgz#ae36fb86c7d5f641f3a0c8472e83dcb6ea36a408" - integrity sha512-kcjndCSMitUuPJobWCnwQ9lLjiLZUR3QLQmlgaBfMX23UEa7ZOrtufnRds+6WZtIS9HdTXqND4yH8NLoVVIkcg== +"@esbuild/linux-mips64el@0.19.6": + version "0.19.6" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.6.tgz#5a922dad90fc8a83fd0631c136b46128153ffb6f" + integrity sha512-8tvnwyYJpR618vboIv2l8tK2SuK/RqUIGMfMENkeDGo3hsEIrpGldMGYFcWxWeEILe5Fi72zoXLmhZ7PR23oQA== "@esbuild/linux-ppc64@0.18.20": version "0.18.20" @@ -947,10 +947,10 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.4.tgz#c49032f4abbcfa3f747b543a106931fe3dce41ff" integrity sha512-tQ92n0WMXyEsCH4m32S21fND8VxNiVazUbU4IUGVXQpWiaAxOBvtOtbEt3cXIV3GEBydYsY8pyeRMJx9kn3rvw== -"@esbuild/linux-ppc64@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.5.tgz#7960cb1666f0340ddd9eef7b26dcea3835d472d0" - integrity sha512-yJAxJfHVm0ZbsiljbtFFP1BQKLc8kUF6+17tjQ78QjqjAQDnhULWiTA6u0FCDmYT1oOKS9PzZ2z0aBI+Mcyj7Q== +"@esbuild/linux-ppc64@0.19.6": + version "0.19.6" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.6.tgz#a7fccf924824999b301546843adb4f51051965e8" + integrity sha512-Qt+D7xiPajxVNk5tQiEJwhmarNnLPdjXAoA5uWMpbfStZB0+YU6a3CtbWYSy+sgAsnyx4IGZjWsTzBzrvg/fMA== "@esbuild/linux-riscv64@0.18.20": version "0.18.20" @@ -962,10 +962,10 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.4.tgz#0f815a090772138503ee0465a747e16865bf94b1" integrity sha512-tRRBey6fG9tqGH6V75xH3lFPpj9E8BH+N+zjSUCnFOX93kEzqS0WdyJHkta/mmJHn7MBaa++9P4ARiU4ykjhig== -"@esbuild/linux-riscv64@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.5.tgz#32207df26af60a3a9feea1783fc21b9817bade19" - integrity sha512-5u8cIR/t3gaD6ad3wNt1MNRstAZO+aNyBxu2We8X31bA8XUNyamTVQwLDA1SLoPCUehNCymhBhK3Qim1433Zag== +"@esbuild/linux-riscv64@0.19.6": + version "0.19.6" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.6.tgz#41d2db11550662d6c03902d9d8d26b0ed5bb8d55" + integrity sha512-lxRdk0iJ9CWYDH1Wpnnnc640ajF4RmQ+w6oHFZmAIYu577meE9Ka/DCtpOrwr9McMY11ocbp4jirgGgCi7Ls/g== "@esbuild/linux-s390x@0.18.20": version "0.18.20" @@ -977,10 +977,10 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.4.tgz#8d2cca20cd4e7c311fde8701d9f1042664f8b92b" integrity sha512-152aLpQqKZYhThiJ+uAM4PcuLCAOxDsCekIbnGzPKVBRUDlgaaAfaUl5NYkB1hgY6WN4sPkejxKlANgVcGl9Qg== -"@esbuild/linux-s390x@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.5.tgz#b38d5681db89a3723862dfa792812397b1510a7d" - integrity sha512-Z6JrMyEw/EmZBD/OFEFpb+gao9xJ59ATsoTNlj39jVBbXqoZm4Xntu6wVmGPB/OATi1uk/DB+yeDPv2E8PqZGw== +"@esbuild/linux-s390x@0.19.6": + version "0.19.6" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.6.tgz#d7a843a2620e73c5c9d65c482e2fbddc7e0f7753" + integrity sha512-MopyYV39vnfuykHanRWHGRcRC3AwU7b0QY4TI8ISLfAGfK+tMkXyFuyT1epw/lM0pflQlS53JoD22yN83DHZgA== "@esbuild/linux-x64@0.18.20": version "0.18.20" @@ -992,10 +992,10 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.4.tgz#f618bec2655de49bff91c588777e37b5e3169d4a" integrity sha512-Mi4aNA3rz1BNFtB7aGadMD0MavmzuuXNTaYL6/uiYIs08U7YMPETpgNn5oue3ICr+inKwItOwSsJDYkrE9ekVg== -"@esbuild/linux-x64@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.5.tgz#46feba2ad041a241379d150f415b472fe3885075" - integrity sha512-psagl+2RlK1z8zWZOmVdImisMtrUxvwereIdyJTmtmHahJTKb64pAcqoPlx6CewPdvGvUKe2Jw+0Z/0qhSbG1A== +"@esbuild/linux-x64@0.19.6": + version "0.19.6" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.6.tgz#d3f20f0c2bdaa1b9ed1c0df7db034771e7aa5234" + integrity sha512-UWcieaBzsN8WYbzFF5Jq7QULETPcQvlX7KL4xWGIB54OknXJjBO37sPqk7N82WU13JGWvmDzFBi1weVBajPovg== "@esbuild/netbsd-x64@0.18.20": version "0.18.20" @@ -1007,10 +1007,10 @@ resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.4.tgz#7889744ca4d60f1538d62382b95e90a49687cef2" integrity sha512-9+Wxx1i5N/CYo505CTT7T+ix4lVzEdz0uCoYGxM5JDVlP2YdDC1Bdz+Khv6IbqmisT0Si928eAxbmGkcbiuM/A== -"@esbuild/netbsd-x64@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.5.tgz#3b5c1fb068f26bfc681d31f682adf1bea4ef0702" - integrity sha512-kL2l+xScnAy/E/3119OggX8SrWyBEcqAh8aOY1gr4gPvw76la2GlD4Ymf832UCVbmuWeTf2adkZDK+h0Z/fB4g== +"@esbuild/netbsd-x64@0.19.6": + version "0.19.6" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.6.tgz#6108d7270599ee37cd57bb14e4516a83541885d5" + integrity sha512-EpWiLX0fzvZn1wxtLxZrEW+oQED9Pwpnh+w4Ffv8ZLuMhUoqR9q9rL4+qHW8F4Mg5oQEKxAoT0G+8JYNqCiR6g== "@esbuild/openbsd-x64@0.18.20": version "0.18.20" @@ -1022,10 +1022,10 @@ resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.4.tgz#c3e436eb9271a423d2e8436fcb120e3fd90e2b01" integrity sha512-MFsHleM5/rWRW9EivFssop+OulYVUoVcqkyOkjiynKBCGBj9Lihl7kh9IzrreDyXa4sNkquei5/DTP4uCk25xw== -"@esbuild/openbsd-x64@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.5.tgz#ca6830316ca68056c5c88a875f103ad3235e00db" - integrity sha512-sPOfhtzFufQfTBgRnE1DIJjzsXukKSvZxloZbkJDG383q0awVAq600pc1nfqBcl0ice/WN9p4qLc39WhBShRTA== +"@esbuild/openbsd-x64@0.19.6": + version "0.19.6" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.6.tgz#b1b5aaa2c9028e90a2bef6774a9c67451f53f164" + integrity sha512-fFqTVEktM1PGs2sLKH4M5mhAVEzGpeZJuasAMRnvDZNCV0Cjvm1Hu35moL2vC0DOrAQjNTvj4zWrol/lwQ8Deg== "@esbuild/sunos-x64@0.18.20": version "0.18.20" @@ -1037,10 +1037,10 @@ resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.4.tgz#f63f5841ba8c8c1a1c840d073afc99b53e8ce740" integrity sha512-6Xq8SpK46yLvrGxjp6HftkDwPP49puU4OF0hEL4dTxqCbfx09LyrbUj/D7tmIRMj5D5FCUPksBbxyQhp8tmHzw== -"@esbuild/sunos-x64@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.5.tgz#9efc4eb9539a7be7d5a05ada52ee43cda0d8e2dd" - integrity sha512-dGZkBXaafuKLpDSjKcB0ax0FL36YXCvJNnztjKV+6CO82tTYVDSH2lifitJ29jxRMoUhgkg9a+VA/B03WK5lcg== +"@esbuild/sunos-x64@0.19.6": + version "0.19.6" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.6.tgz#b51b648cea77c62b1934a4fdcfee7aaa9de174cb" + integrity sha512-M+XIAnBpaNvaVAhbe3uBXtgWyWynSdlww/JNZws0FlMPSBy+EpatPXNIlKAdtbFVII9OpX91ZfMb17TU3JKTBA== "@esbuild/win32-arm64@0.18.20": version "0.18.20" @@ -1052,10 +1052,10 @@ resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.4.tgz#80be69cec92da4da7781cf7a8351b95cc5a236b0" integrity sha512-PkIl7Jq4mP6ke7QKwyg4fD4Xvn8PXisagV/+HntWoDEdmerB2LTukRZg728Yd1Fj+LuEX75t/hKXE2Ppk8Hh1w== -"@esbuild/win32-arm64@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.5.tgz#29f8184afa7a02a956ebda4ed638099f4b8ff198" - integrity sha512-dWVjD9y03ilhdRQ6Xig1NWNgfLtf2o/STKTS+eZuF90fI2BhbwD6WlaiCGKptlqXlURVB5AUOxUj09LuwKGDTg== +"@esbuild/win32-arm64@0.19.6": + version "0.19.6" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.6.tgz#34e5665f239047c302c8d153406c87db22afd58a" + integrity sha512-2DchFXn7vp/B6Tc2eKdTsLzE0ygqKkNUhUBCNtMx2Llk4POIVMUq5rUYjdcedFlGLeRe1uLCpVvCmE+G8XYybA== "@esbuild/win32-ia32@0.18.20": version "0.18.20" @@ -1067,10 +1067,10 @@ resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.4.tgz#15dc0ed83d2794872b05d8edc4a358fecf97eb54" integrity sha512-ga676Hnvw7/ycdKB53qPusvsKdwrWzEyJ+AtItHGoARszIqvjffTwaaW3b2L6l90i7MO9i+dlAW415INuRhSGg== -"@esbuild/win32-ia32@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.5.tgz#f3de07afb292ecad651ae4bb8727789de2d95b05" - integrity sha512-4liggWIA4oDgUxqpZwrDhmEfAH4d0iljanDOK7AnVU89T6CzHon/ony8C5LeOdfgx60x5cnQJFZwEydVlYx4iw== +"@esbuild/win32-ia32@0.19.6": + version "0.19.6" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.6.tgz#f7aaebe325e67f44c0a738e80a98221504677b4a" + integrity sha512-PBo/HPDQllyWdjwAVX+Gl2hH0dfBydL97BAH/grHKC8fubqp02aL4S63otZ25q3sBdINtOBbz1qTZQfXbP4VBg== "@esbuild/win32-x64@0.18.20": version "0.18.20" @@ -1082,10 +1082,10 @@ resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.4.tgz#d46a6e220a717f31f39ae80f49477cc3220be0f0" integrity sha512-HP0GDNla1T3ZL8Ko/SHAS2GgtjOg+VmWnnYLhuTksr++EnduYB0f3Y2LzHsUwb2iQ13JGoY6G3R8h6Du/WG6uA== -"@esbuild/win32-x64@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.5.tgz#faad84c41ba12e3a0acb52571df9bff37bee75f6" - integrity sha512-czTrygUsB/jlM8qEW5MD8bgYU2Xg14lo6kBDXW6HdxKjh8M5PzETGiSHaz9MtbXBYDloHNUAUW2tMiKW4KM9Mw== +"@esbuild/win32-x64@0.19.6": + version "0.19.6" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.6.tgz#7134e5dea1f5943b013e96fc34f9638a5f3d7e3e" + integrity sha512-OE7yIdbDif2kKfrGa+V0vx/B3FJv2L4KnIiLlvtibPyO9UkgO3rzYE0HhpREo2vmJ1Ixq1zwm9/0er+3VOSZJA== "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.4.0" @@ -1119,10 +1119,10 @@ resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.48.0.tgz#642633964e217905436033a2bd08bf322849b7fb" integrity sha512-ZSjtmelB7IJfWD2Fvb7+Z+ChTIKWq6kjda95fLcQKNS5aheVHn4IkfgRQE3sIIzTcSLwLcLZUD9UBt+V7+h+Pw== -"@eslint/js@8.53.0": - version "8.53.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.53.0.tgz#bea56f2ed2b5baea164348ff4d5a879f6f81f20d" - integrity sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w== +"@eslint/js@8.54.0": + version "8.54.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.54.0.tgz#4fab9a2ff7860082c304f750e94acd644cf984cf" + integrity sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ== "@ethereum-waffle/chai@^3.4.4": version "3.4.4" @@ -2749,11 +2749,11 @@ semver "^7.3.8" "@netlify/functions-utils@^5.2.37": - version "5.2.40" - resolved "https://registry.yarnpkg.com/@netlify/functions-utils/-/functions-utils-5.2.40.tgz#093d6acc512c5dd0b5814ab4402d916ff5a44fb6" - integrity sha512-5mx23k4WW9R2WvBDa9mVCz0n3CAUUVbyoa7zOOjVRj2wuZAqnP9gTQa/g4Uhg3GvDxp90kHlDe5Amfc2K4j3MQ== + version "5.2.41" + resolved "https://registry.yarnpkg.com/@netlify/functions-utils/-/functions-utils-5.2.41.tgz#88bd31d0e8754724c1fffd5f687b3e78215e0d09" + integrity sha512-rvp11NquyVQ4d5rK6W6cP4M3iKyuOATqfEGlC7jLUZjMeNp4bQ5gPb5RaqqG5MHPY0KmdELMGGGgUxmCbh+Qxw== dependencies: - "@netlify/zip-it-and-ship-it" "9.26.1" + "@netlify/zip-it-and-ship-it" "9.26.2" cpy "^9.0.0" path-exists "^5.0.0" @@ -2869,9 +2869,9 @@ execa "^6.0.0" "@netlify/serverless-functions-api@^1.10.1", "@netlify/serverless-functions-api@^1.12.0": - version "1.12.0" - resolved "https://registry.yarnpkg.com/@netlify/serverless-functions-api/-/serverless-functions-api-1.12.0.tgz#b8ba310e6fdac9bf1f0e974856eb60f97d294e4d" - integrity sha512-LJt2gHzLQMgJLsLG9Chbu2Pxxi7Yzbj3Xcd9QlThvUlD7kf4nAr3lzzRJMZqo77rVNmfQX11W1uvGMSlduiKeA== + version "1.12.1" + resolved "https://registry.yarnpkg.com/@netlify/serverless-functions-api/-/serverless-functions-api-1.12.1.tgz#fb926f62377d84719c70f9a4493f3d04d6f6e7dc" + integrity sha512-+G9cTltqfH54dF4dLqoEOV2P4qTIY8dM9blUVqg+NtVTXyuadzgpHqtffhVeyeLytVnTx1238kWJUe+sV3bnlg== dependencies: "@netlify/node-cookies" "^0.1.0" urlpattern-polyfill "8.0.2" @@ -2914,13 +2914,13 @@ urlpattern-polyfill "8.0.2" yargs "^17.0.0" -"@netlify/zip-it-and-ship-it@9.26.1": - version "9.26.1" - resolved "https://registry.yarnpkg.com/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-9.26.1.tgz#fbd4380c25a1bc62fb4e138310fa1eba89033de1" - integrity sha512-1hJcNIqXU7y5TgAACaRZp4vu3Bknl2pD6Aq3WOdY4T1zuB/SyKOn8Im6wwYElpc4n5LDGIOPyJlLDNo+DOwoWA== +"@netlify/zip-it-and-ship-it@9.26.2": + version "9.26.2" + resolved "https://registry.yarnpkg.com/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-9.26.2.tgz#e531499922ed4e46fc5af603c5db2528ac3f6452" + integrity sha512-tsQbSfgOTEfZmSnUbCJiHDVyYDRN1gQQEWjAmJ90YI60ZloT4j7B4HlBt0gshU9pPCiDxoHhQMCk5pHg7//CSw== dependencies: "@babel/parser" "^7.22.5" - "@babel/types" "7.23.0" + "@babel/types" "7.23.3" "@netlify/binary-info" "^1.0.0" "@netlify/serverless-functions-api" "^1.12.0" "@vercel/nft" "^0.23.0" @@ -2928,7 +2928,7 @@ common-path-prefix "^3.0.0" cp-file "^10.0.0" es-module-lexer "^1.0.0" - esbuild "0.19.5" + esbuild "0.19.6" execa "^6.0.0" filter-obj "^5.0.0" find-up "^6.0.0" @@ -3211,7 +3211,7 @@ "@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.0.2", "@nomiclabs/hardhat-ethers@^2.2.1": +"@nomiclabs/hardhat-ethers@^2.0.0", "@nomiclabs/hardhat-ethers@^2.0.2", "@nomiclabs/hardhat-ethers@^2.2.3": version "2.2.3" resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-ethers/-/hardhat-ethers-2.2.3.tgz#b41053e360c31a32c2640c9a45ee981a7e603fe0" integrity sha512-YhzPdzb612X591FOe68q+qXVXGG2ANZRvDo0RRUtimev85rCrAlv/TLMEZw5c+kq9AbzocLTVX/h2jVIFPL9Xg== @@ -4483,9 +4483,9 @@ "@types/chai" "*" "@types/chai@*", "@types/chai@^4.2.11", "@types/chai@^4.3.4": - version "4.3.10" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.10.tgz#2ad2959d1767edee5b0e4efb1a0cd2b500747317" - integrity sha512-of+ICnbqjmFCiixUnqRulbylyXQrPqIGf/B3Jax1wIF3DvSheysQxAWvqHhZiW3IQrycvokcLcFQlveGp+vyNg== + 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/cli-progress@^3.11.0": version "3.11.5" @@ -4589,9 +4589,9 @@ integrity sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw== "@types/luxon@^3.1.0": - version "3.3.4" - resolved "https://registry.yarnpkg.com/@types/luxon/-/luxon-3.3.4.tgz#cda5c0709a0c4c01ba059c40e62d76610479049a" - integrity sha512-H9OXxv4EzJwE75aTPKpiGXJq+y4LFxjpsdgKwSmr503P5DkWc3AG7VAFYrFNVvqemT5DfgZJV9itYhqBHSGujA== + version "3.3.5" + resolved "https://registry.yarnpkg.com/@types/luxon/-/luxon-3.3.5.tgz#ffdcec196994998dbef6284523b3ac88a9e6c45f" + integrity sha512-1cyf6Ge/94zlaWIZA2ei1pE6SZ8xpad2hXaYa5JEFiaUH0YS494CZwyi4MXNpXD9oEuv6ZH0Bmh0e7F9sPhmZA== "@types/minimatch@^3.0.4": version "3.0.5" @@ -4624,9 +4624,9 @@ form-data "^4.0.0" "@types/node@*", "@types/node@>=12.12.47", "@types/node@>=13.7.0": - version "20.9.1" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.9.1.tgz#9d578c610ce1e984adda087f685ace940954fe19" - integrity sha512-HhmzZh5LSJNS5O8jQKpJ/3ZcrrlG6L70hpGqMIAoM9YVD0YBRNWYsfwcXq8VnSjlNpCpgLzMXdiPo+dxcvSmiA== + version "20.9.3" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.9.3.tgz#e089e1634436f676ff299596c9531bd2b59fffc6" + integrity sha512-nk5wXLAXGBKfrhLB0cyHGbSqopS+nz0BUgZkUQqSHSSgdee0kssp1IAqlQOu333bW+gMNs2QREx7iynm19Abxw== dependencies: undici-types "~5.26.4" @@ -4724,9 +4724,9 @@ "@types/node" "*" "@types/semver@^7.3.12": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.5.tgz#deed5ab7019756c9c90ea86139106b0346223f35" - integrity sha512-+d+WYC1BxJ6yVOgUgzK8gWvp5qF8ssV5r4nsDcZWKRWcDQLQ619tvWAxJQYGgBrO1MnLJC7a5GtiYsAoQ47dJg== + version "7.5.6" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.6.tgz#c65b2bfce1bec346582c07724e3f8c1017a20339" + integrity sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A== "@types/triple-beam@^1.3.2": version "1.3.5" @@ -4734,9 +4734,9 @@ integrity sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw== "@types/trusted-types@^2.0.2": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.6.tgz#d12451beaeb9c3838f12024580dc500b7e88b0ad" - integrity sha512-HYtNooPvUY9WAVRBr4u+4Qa9fYD1ze2IUlAD3HoA6oehn1taGwBx3Oa52U4mTslTS+GAExKpaFu39Y5xUEwfjg== + version "2.0.7" + resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.7.tgz#baccb07a970b91707df3a3e8ba6896c57ead2d11" + integrity sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw== "@types/web-bluetooth@^0.0.16": version "0.0.16" @@ -4756,9 +4756,9 @@ "@types/node" "*" "@types/ws@^8.0.0": - version "8.5.9" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.9.tgz#384c489f99c83225a53f01ebc3eddf3b8e202a8c" - integrity sha512-jbdrY0a8lxfdTp/+r7Z4CkycbOFN8WX+IOchLJr3juT/xzbJ8URyTVSJ/hvNdadTgM1mnedb47n+Y31GsFnQlg== + version "8.5.10" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.10.tgz#4acfb517970853fa6574a3a6886791d04a396787" + integrity sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A== dependencies: "@types/node" "*" @@ -4768,9 +4768,9 @@ integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== "@types/yargs@^16.0.0": - version "16.0.8" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.8.tgz#0d57a5a491d85ae75d372a32e657b1779b86c65d" - integrity sha512-1GwLEkmFafeb/HbE6pC7tFlgYSQ4Iqh2qlWCq8xN+Qfaiaxr2PcLfuhfRFRYqI6XJyeFoLYyKnhFbNsst9FMtQ== + version "16.0.9" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.9.tgz#ba506215e45f7707e6cbcaf386981155b7ab956e" + integrity sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA== dependencies: "@types/yargs-parser" "*" @@ -6965,9 +6965,9 @@ bfj@^7.0.2: tryer "^1.0.1" big-integer@^1.6.42, big-integer@^1.6.48: - version "1.6.51" - resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686" - integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg== + version "1.6.52" + resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.52.tgz#60a887f3047614a8e1bffe5d7173490a97dc8c85" + integrity sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg== bigint-crypto-utils@^3.0.23: version "3.3.0" @@ -7644,9 +7644,9 @@ camelcase@^7.0.1: integrity sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw== caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30001538, caniuse-lite@^1.0.30001541: - version "1.0.30001562" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001562.tgz#9d16c5fd7e9c592c4cd5e304bc0f75b0008b2759" - integrity sha512-kfte3Hym//51EdX4239i+Rmp20EsLIYGdPkERegTgU19hQWCRhsRFGKHTliUlsry53tv17K7n077Kqa0WJU4ng== + version "1.0.30001563" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001563.tgz#aa68a64188903e98f36eb9c56e48fba0c1fe2a32" + integrity sha512-na2WUmOxnwIZtwnFI2CZ/3er0wdNzU7hN+cPYz/z2ajHThnkWjNBOpEPP4n+4r2WPM847JaMotaJE3bnfzjyKw== capital-case@^1.0.4: version "1.0.4" @@ -8015,9 +8015,9 @@ circomlibjs@^0.1.7: ffjavascript "^0.2.45" citty@^0.1.3, citty@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/citty/-/citty-0.1.4.tgz#91091be06ae4951dffa42fd443de7fe72245f2e0" - integrity sha512-Q3bK1huLxzQrvj7hImJ7Z1vKYJRPQCDnd0EjXfHMidcjecGOMuLrmuQmtWmFkuKLcMThlGh1yCKG8IEc6VeNXQ== + version "0.1.5" + resolved "https://registry.yarnpkg.com/citty/-/citty-0.1.5.tgz#fe37ceae5dc764af75eb2fece99d2bf527ea4e50" + integrity sha512-AS7n5NSc0OQVMV9v6wt3ByujNIrne0/cTjiC2MYqhvao57VNfiuVksTSr2p17nVOhEr2KtqiAkGwHcgMC/qUuQ== dependencies: consola "^3.2.3" @@ -8589,9 +8589,9 @@ copy-template-dir@1.4.0: run-parallel "^1.1.4" core-js-pure@^3.0.1: - version "3.33.2" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.33.2.tgz#644830db2507ef84d068a70980ccd99c275f5fa6" - integrity sha512-a8zeCdyVk7uF2elKIGz67AjcXOxjRbwOLz8SbklEso1V+2DoW4OkAMZN9S9GBgvZIaqQi/OemFX4OiSoQEmg1Q== + version "3.33.3" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.33.3.tgz#cbf9180ac4c4653823d784862bfb5c77eac0bf98" + integrity sha512-taJ00IDOP+XYQEA2dAe4ESkmHt1fL8wzYDo3mRWQey8uO9UojlBFMneA65kMyxfYP7106c6LzWaq7/haDT6BCQ== core-js@^2.4.0, core-js@^2.5.0: version "2.6.12" @@ -9163,7 +9163,7 @@ defined@~1.0.1: resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.1.tgz#c0b9db27bfaffd95d6f61399419b893df0f91ebf" integrity sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q== -defu@^6.1.2: +defu@^6.1.2, defu@^6.1.3: version "6.1.3" resolved "https://registry.yarnpkg.com/defu/-/defu-6.1.3.tgz#6d7f56bc61668e844f9f593ace66fd67ef1205fd" integrity sha512-Vy2wmG3NTkmHNg/kzpuvHhkqeIx3ODWqasgCRbKtbXEN0G+HpEEv9BtJLp7ZG1CZloFaC41Ah3ZFbq7aqCqMeQ== @@ -9540,9 +9540,9 @@ electron-fetch@^1.7.2: encoding "^0.1.13" electron-to-chromium@^1.3.47, electron-to-chromium@^1.4.535: - version "1.4.587" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.587.tgz#d8b864f21338b60798d447a3d83b90753f701d07" - integrity sha512-RyJX0q/zOkAoefZhB9XHghGeATVP0Q3mwA253XD/zj2OeXc+JZB9pCaEv6R578JUYaWM9PRhye0kXvd/V1cQ3Q== + version "1.4.590" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.590.tgz#85a428fbabb77265a4804040837ed4f2538e3300" + integrity sha512-hohItzsQcG7/FBsviCYMtQwUSWvVF7NVqPOnJCErWsAshsP/CR2LAXdmq276RbESNdhxiAq5/vRo1g2pxGXVww== elegant-spinner@^1.0.1: version "1.0.1" @@ -9867,33 +9867,33 @@ esbuild@0.19.4: "@esbuild/win32-ia32" "0.19.4" "@esbuild/win32-x64" "0.19.4" -esbuild@0.19.5: - version "0.19.5" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.5.tgz#53a0e19dfbf61ba6c827d51a80813cf071239a8c" - integrity sha512-bUxalY7b1g8vNhQKdB24QDmHeY4V4tw/s6Ak5z+jJX9laP5MoQseTOMemAr0gxssjNcH0MCViG8ONI2kksvfFQ== +esbuild@0.19.6: + version "0.19.6" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.6.tgz#baa0e8b6b9e655c54ffd57f1772e44677a7931cc" + integrity sha512-Xl7dntjA2OEIvpr9j0DVxxnog2fyTGnyVoQXAMQI6eR3mf9zCQds7VIKUDCotDgE/p4ncTgeRqgX8t5d6oP4Gw== optionalDependencies: - "@esbuild/android-arm" "0.19.5" - "@esbuild/android-arm64" "0.19.5" - "@esbuild/android-x64" "0.19.5" - "@esbuild/darwin-arm64" "0.19.5" - "@esbuild/darwin-x64" "0.19.5" - "@esbuild/freebsd-arm64" "0.19.5" - "@esbuild/freebsd-x64" "0.19.5" - "@esbuild/linux-arm" "0.19.5" - "@esbuild/linux-arm64" "0.19.5" - "@esbuild/linux-ia32" "0.19.5" - "@esbuild/linux-loong64" "0.19.5" - "@esbuild/linux-mips64el" "0.19.5" - "@esbuild/linux-ppc64" "0.19.5" - "@esbuild/linux-riscv64" "0.19.5" - "@esbuild/linux-s390x" "0.19.5" - "@esbuild/linux-x64" "0.19.5" - "@esbuild/netbsd-x64" "0.19.5" - "@esbuild/openbsd-x64" "0.19.5" - "@esbuild/sunos-x64" "0.19.5" - "@esbuild/win32-arm64" "0.19.5" - "@esbuild/win32-ia32" "0.19.5" - "@esbuild/win32-x64" "0.19.5" + "@esbuild/android-arm" "0.19.6" + "@esbuild/android-arm64" "0.19.6" + "@esbuild/android-x64" "0.19.6" + "@esbuild/darwin-arm64" "0.19.6" + "@esbuild/darwin-x64" "0.19.6" + "@esbuild/freebsd-arm64" "0.19.6" + "@esbuild/freebsd-x64" "0.19.6" + "@esbuild/linux-arm" "0.19.6" + "@esbuild/linux-arm64" "0.19.6" + "@esbuild/linux-ia32" "0.19.6" + "@esbuild/linux-loong64" "0.19.6" + "@esbuild/linux-mips64el" "0.19.6" + "@esbuild/linux-ppc64" "0.19.6" + "@esbuild/linux-riscv64" "0.19.6" + "@esbuild/linux-s390x" "0.19.6" + "@esbuild/linux-x64" "0.19.6" + "@esbuild/netbsd-x64" "0.19.6" + "@esbuild/openbsd-x64" "0.19.6" + "@esbuild/sunos-x64" "0.19.6" + "@esbuild/win32-arm64" "0.19.6" + "@esbuild/win32-ia32" "0.19.6" + "@esbuild/win32-x64" "0.19.6" esbuild@^0.18.10: version "0.18.20" @@ -10083,14 +10083,14 @@ eslint@8.48.0: text-table "^0.2.0" eslint@^8.28.0, eslint@^8.31.0: - version "8.53.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.53.0.tgz#14f2c8244298fcae1f46945459577413ba2697ce" - integrity sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag== + version "8.54.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.54.0.tgz#588e0dd4388af91a2e8fa37ea64924074c783537" + integrity sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.6.1" "@eslint/eslintrc" "^2.1.3" - "@eslint/js" "8.53.0" + "@eslint/js" "8.54.0" "@humanwhocodes/config-array" "^0.11.13" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" @@ -12310,16 +12310,16 @@ gtoken@^5.0.4: jws "^4.0.0" h3@^1.8.1, h3@^1.8.2: - version "1.8.2" - resolved "https://registry.yarnpkg.com/h3/-/h3-1.8.2.tgz#69ea8ca0285c1bb268cd08b9a7017e02939f88b7" - integrity sha512-1Ca0orJJlCaiFY68BvzQtP2lKLk46kcLAxVM8JgYbtm2cUg6IY7pjpYgWMwUvDO9QI30N5JAukOKoT8KD3Q0PQ== + version "1.9.0" + resolved "https://registry.yarnpkg.com/h3/-/h3-1.9.0.tgz#c5f512a93026df9837db6f30c9ef51135dd46752" + integrity sha512-+F3ZqrNV/CFXXfZ2lXBINHi+rM4Xw3CDC5z2CDK3NMPocjonKipGLLDSkrqY9DOrioZNPTIdDMWfQKm//3X2DA== dependencies: cookie-es "^1.0.0" - defu "^6.1.2" - destr "^2.0.1" - iron-webcrypto "^0.10.1" + defu "^6.1.3" + destr "^2.0.2" + iron-webcrypto "^1.0.0" radix3 "^1.1.0" - ufo "^1.3.0" + ufo "^1.3.2" uncrypto "^0.1.3" unenv "^1.7.4" @@ -12362,7 +12362,7 @@ hardhat-contract-sizer@^2.10.0, hardhat-contract-sizer@^2.6.1: cli-table3 "^0.6.0" strip-ansi "^6.0.0" -hardhat@^2.12.5, hardhat@^2.12.6: +hardhat@^2.12.6, hardhat@^2.19.1: version "2.19.1" resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.19.1.tgz#5e09e8070ecfc6109ba9d3a4a117ec2b0643032a" integrity sha512-bsWa63g1GB78ZyMN08WLhFElLPA+J+pShuKD1BFO2+88g3l+BL3R07vj9deIi9dMbssxgE714Gof1dBEDGqnCw== @@ -13333,10 +13333,10 @@ ipld@^0.25.3: multicodec "^1.0.0" typical "^6.0.0" -iron-webcrypto@^0.10.1: - version "0.10.1" - resolved "https://registry.yarnpkg.com/iron-webcrypto/-/iron-webcrypto-0.10.1.tgz#cab8636a468685533a8521bfd7f06b19b7174809" - integrity sha512-QGOS8MRMnj/UiOa+aMIgfyHcvkhqNUsUxb1XzskENvbo+rEfp6TOwqd1KPuDzXC4OnGHcMSVxDGRoilqB8ViqA== +iron-webcrypto@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/iron-webcrypto/-/iron-webcrypto-1.0.0.tgz#e3b689c0c61b434a0a4cb82d0aeabbc8b672a867" + integrity sha512-anOK1Mktt8U1Xi7fCM3RELTuYbnFikQY5VtrDj7kPgpejV7d43tWKhzgioO0zpkazLEL/j/iayRqnJhrGfqUsg== is-absolute@^1.0.0: version "1.0.0" @@ -14779,11 +14779,16 @@ light-my-request@^5.6.1: process-warning "^2.0.0" set-cookie-parser "^2.4.1" -lilconfig@^2.0.5, lilconfig@^2.1.0: +lilconfig@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== +lilconfig@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.0.0.tgz#f8067feb033b5b74dab4602a5f5029420be749bc" + integrity sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g== + 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" @@ -15302,11 +15307,9 @@ lru-cache@5.1.1, lru-cache@^5.1.1: yallist "^3.0.2" lru-cache@^10.0.2, "lru-cache@^9.1.1 || ^10.0.0": - version "10.0.2" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.0.2.tgz#34504678cc3266b09b8dfd6fab4e1515258271b7" - integrity sha512-Yj9mA8fPiVgOUpByoTZO5pNrcl5Yk37FcSHsUINpAsaBIEZIuqcCclDZJCVxqQShDsmYX8QG63svJiTbOATZwg== - dependencies: - semver "^7.3.5" + version "10.0.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.0.3.tgz#b40014d7d2d16d94130b87297a04a1f24874ae7c" + integrity sha512-B7gr+F6MkqB3uzINHXNctGieGsRTMwIBgxkp0yq/5BwcuDzD4A8wQpHQW6vDAm1uKSLQghmRdD9sKqf2vJ1cEg== lru-cache@^3.2.0: version "3.2.0" @@ -16537,9 +16540,9 @@ node-forge@^1.3.1: integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== node-gyp-build@^4.2.0, node-gyp-build@^4.2.2, 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== + version "4.7.0" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.7.0.tgz#749f0033590b2a89ac8edb5e0775f95f5ae86d15" + integrity sha512-PbZERfeFdrHQOOXiAKOY0VPbykZy90ndPKk0d+CFDegTKmWp1VgOTz2xACVbr1BjCWxrQp68CXtvNsveFhqDJg== node-gyp-build@~4.1.0: version "4.1.1" @@ -17765,12 +17768,12 @@ postcss-js@^4.0.1: camelcase-css "^2.0.1" postcss-load-config@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-4.0.1.tgz#152383f481c2758274404e4962743191d73875bd" - integrity sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA== + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-4.0.2.tgz#7159dcf626118d33e299f485d6afe4aff7c4a3e3" + integrity sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ== dependencies: - lilconfig "^2.0.5" - yaml "^2.1.1" + lilconfig "^3.0.0" + yaml "^2.3.4" postcss-nested@^6.0.1: version "6.0.1" @@ -17915,9 +17918,9 @@ process-warning@^1.0.0: integrity sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q== process-warning@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-2.3.0.tgz#02ccba12fd55c05879cb7ddab31b6a20af2fe4d9" - integrity sha512-N6mp1+2jpQr3oCFMz6SeHRGbv6Slb20bRhj4v3xR99HqNToAcOe1MFOp4tytyzOfJn+QtN8Rf7U/h2KAn4kC6g== + version "2.3.1" + resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-2.3.1.tgz#0caf992272c439f45dd416e1407ee25a3d4c778a" + integrity sha512-JjBvFEn7MwFbzUDa2SRtKJSsyO0LlER4V/FmwLMhBlXNbGgGxdyFCxIdMDLerWUycsVUyaoM9QFLvppFy4IWaQ== process@^0.10.0: version "0.10.1" @@ -19657,7 +19660,7 @@ source-map-support@0.5.12: buffer-from "^1.0.0" source-map "^0.6.0" -source-map-support@0.5.21, source-map-support@^0.5.11, source-map-support@^0.5.13, source-map-support@^0.5.17, source-map-support@^0.5.19, source-map-support@^0.5.20, source-map-support@^0.5.21: +source-map-support@0.5.21, source-map-support@^0.5.11, source-map-support@^0.5.13, source-map-support@^0.5.19, source-map-support@^0.5.20, source-map-support@^0.5.21: version "0.5.21" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== @@ -20804,17 +20807,6 @@ ts-node@^10.9.1: v8-compile-cache-lib "^3.0.1" yn "3.1.1" -ts-node@^8.8.1: - version "8.10.2" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.10.2.tgz#eee03764633b1234ddd37f8db9ec10b75ec7fb8d" - integrity sha512-ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA== - dependencies: - arg "^4.1.0" - diff "^4.0.1" - make-error "^1.1.1" - source-map-support "^0.5.17" - yn "3.1.1" - tslib@1.14.1, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" @@ -21026,9 +21018,9 @@ typescript@^4.2.3, typescript@^4.9.3: integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== typescript@^5.0.0, typescript@^5.0.4: - version "5.2.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.2.2.tgz#5ebb5e5a5b75f085f22bc3f8460fba308310fa78" - integrity sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w== + version "5.3.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.3.2.tgz#00d1c7c1c46928c5845c1ee8d0cc2791031d4c43" + integrity sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ== typewise-core@^1.2, typewise-core@^1.2.0: version "1.2.0" @@ -21067,7 +21059,7 @@ uc.micro@^1.0.1, uc.micro@^1.0.5: resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== -ufo@^1.3.0, ufo@^1.3.1: +ufo@^1.3.0, ufo@^1.3.1, ufo@^1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.3.2.tgz#c7d719d0628a1c80c006d2240e0d169f6e3c0496" integrity sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA== @@ -22774,7 +22766,7 @@ yaml@1.10.2, yaml@^1.10.0, yaml@^1.10.2, yaml@^1.7.2: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== -yaml@^2.1.1, yaml@^2.1.3: +yaml@^2.1.3, yaml@^2.3.4: version "2.3.4" resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.4.tgz#53fc1d514be80aabf386dc6001eb29bf3b7523b2" integrity sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA== From 552573491e289a89edf3274f17be9c0a03985a5d Mon Sep 17 00:00:00 2001 From: yuetloo Date: Tue, 21 Nov 2023 18:40:14 -0500 Subject: [PATCH 082/338] fix script error --- .github/workflows/test-scripts.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/test-scripts.yml b/.github/workflows/test-scripts.yml index bb3b38612..2002d6387 100644 --- a/.github/workflows/test-scripts.yml +++ b/.github/workflows/test-scripts.yml @@ -35,6 +35,7 @@ jobs: repository: iden3/rapidsnark path: rapidsnark - name: Install rapidsnark + run: | npm install git submodule init git submodule update From de7e5c337302bc1c3beb7c1a170ccbfbc1b135b3 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Tue, 21 Nov 2023 18:55:01 -0500 Subject: [PATCH 083/338] fix wrong directory --- .github/workflows/test-scripts.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/test-scripts.yml b/.github/workflows/test-scripts.yml index 2002d6387..5a06aeec7 100644 --- a/.github/workflows/test-scripts.yml +++ b/.github/workflows/test-scripts.yml @@ -36,6 +36,7 @@ jobs: path: rapidsnark - name: Install rapidsnark run: | + cd $GITHUB_WORKSPACE/rapidsnark npm install git submodule init git submodule update From ac2c923bcebf56e57a847bf9018bc75d7de3a363 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Tue, 21 Nov 2023 19:25:00 -0500 Subject: [PATCH 084/338] fix zkeys directory --- .github/workflows/test-scripts.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/test-scripts.yml b/.github/workflows/test-scripts.yml index 5a06aeec7..46924ee31 100644 --- a/.github/workflows/test-scripts.yml +++ b/.github/workflows/test-scripts.yml @@ -62,5 +62,6 @@ jobs: - name: Run script tests run: | export RAPIDSNARK_DIRECTORY=$GITHUB_WORKSPACE/rapidsnark + export CIRCUIT_DIRECTORY=$GITHUB_WORKSPACE/params cd monorepo/contracts ./sh/runScriptTests.sh From c072eb4df9ffeb459bebbbc5791d6d4296586bcb Mon Sep 17 00:00:00 2001 From: yuetloo Date: Tue, 21 Nov 2023 19:48:03 -0500 Subject: [PATCH 085/338] print rapidsnark path for troubleshooting --- .github/workflows/test-scripts.yml | 2 ++ contracts/scripts/tally.ts | 8 ++------ 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/.github/workflows/test-scripts.yml b/.github/workflows/test-scripts.yml index 46924ee31..5604f9f4e 100644 --- a/.github/workflows/test-scripts.yml +++ b/.github/workflows/test-scripts.yml @@ -42,6 +42,8 @@ jobs: git submodule update npx task createFieldSources npx task buildProver + pwd + find . -name "prover" - name: Checkout source code uses: actions/checkout@v3 with: diff --git a/contracts/scripts/tally.ts b/contracts/scripts/tally.ts index d94868c12..d66251ff7 100644 --- a/contracts/scripts/tally.ts +++ b/contracts/scripts/tally.ts @@ -17,16 +17,12 @@ * --maci-logs --maci-state-file */ import { ethers, network, config } from 'hardhat' -import { Contract, Signer } from 'ethers' +import { Contract } from 'ethers' import { DEFAULT_SR_QUEUE_OPS } from '../utils/constants' import { getIpfsHash } from '../utils/ipfs' import { JSONFile } from '../utils/JSONFile' -import { - deployContract, - deployPoseidonLibraries, - deployMessageProcesorAndTally, -} from '../utils/deployment' +import { deployMessageProcesorAndTally } from '../utils/deployment' import { getGenProofArgs, genProofs, From 6fef7570b2f2dbb2f3b159ac9a255ee6efafb6bb Mon Sep 17 00:00:00 2001 From: yuetloo Date: Tue, 21 Nov 2023 20:03:21 -0500 Subject: [PATCH 086/338] fix rapidsnark path --- .github/workflows/test-scripts.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test-scripts.yml b/.github/workflows/test-scripts.yml index 5604f9f4e..5ad201d53 100644 --- a/.github/workflows/test-scripts.yml +++ b/.github/workflows/test-scripts.yml @@ -63,7 +63,7 @@ jobs: yarn start:node & - name: Run script tests run: | - export RAPIDSNARK_DIRECTORY=$GITHUB_WORKSPACE/rapidsnark + export RAPIDSNARK_DIRECTORY=$GITHUB_WORKSPACE/rapidsnark/build export CIRCUIT_DIRECTORY=$GITHUB_WORKSPACE/params cd monorepo/contracts ./sh/runScriptTests.sh From 2b011388476aaae50504755ba0245a36008c13e3 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Fri, 24 Nov 2023 15:54:19 -0500 Subject: [PATCH 087/338] use clrfund maci library --- contracts/utils/maciParameters.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/utils/maciParameters.ts b/contracts/utils/maciParameters.ts index 6f169b10b..1798ac3d2 100644 --- a/contracts/utils/maciParameters.ts +++ b/contracts/utils/maciParameters.ts @@ -1,6 +1,6 @@ import { Contract } from 'ethers' -import { VerifyingKey } from 'maci-domainobjs' +import { VerifyingKey } from '@clrfund/maci-domainobjs' import { extractVk } from '@clrfund/maci-circuits' import { CIRCUITS } from './circuits' import path from 'path' From 6fbe9bebcd05f10a627c0778b1042adc59c675cf Mon Sep 17 00:00:00 2001 From: yuetloo Date: Fri, 24 Nov 2023 16:28:54 -0500 Subject: [PATCH 088/338] fix incorrect batch size --- contracts/scripts/tally.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/scripts/tally.ts b/contracts/scripts/tally.ts index d66251ff7..ff8647c46 100644 --- a/contracts/scripts/tally.ts +++ b/contracts/scripts/tally.ts @@ -65,7 +65,7 @@ function readFromEnvironment(): { return { clrfund: process.env.CLRFUND || '', - batchSize: Number(process.env.BATCH_SIZE || '20'), + batchSize: Number(process.env.TALLY_BATCH_SIZE || '10'), circuit: process.env.CIRCUIT_TYPE || 'micro', circuitDirectory: process.env.CIRCUIT_DIRECTORY || '', maciTransactionHash: process.env.MACI_TRANSACTION_HASH, From 9400e32718fb1b6e5d25088768d54cbad2194748 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Mon, 27 Nov 2023 01:39:04 -0500 Subject: [PATCH 089/338] convert hardhat tasks to cli to avoid error with extractVk --- common/package.json | 4 +- common/src/keypair.ts | 6 +- common/src/utils.ts | 10 +- contracts/cli/addContributors.ts | 63 +++++++++ contracts/cli/addRecipients.ts | 53 ++++++++ contracts/cli/claim.ts | 73 ++++++++++ contracts/cli/contribute.ts | 109 +++++++++++++++ contracts/cli/finalize.ts | 78 +++++++++++ contracts/cli/newClrFund.ts | 183 +++++++++++++++++++++++++ contracts/cli/newDeployer.ts | 84 ++++++++++++ contracts/cli/newMaciKey.ts | 15 +++ contracts/cli/newRound.ts | 108 +++++++++++++++ contracts/{scripts => cli}/tally.ts | 104 +++++++-------- contracts/cli/timeTravel.ts | 29 ++++ contracts/cli/vote.ts | 121 +++++++++++++++++ contracts/hardhat.config.ts | 7 +- contracts/package.json | 16 +-- contracts/sh/runScriptTests.sh | 97 ++++++-------- contracts/tasks/addContributors.ts | 41 ------ contracts/tasks/addRecipients.ts | 45 ------- contracts/tasks/claim.ts | 56 -------- contracts/tasks/contribute.ts | 76 ----------- contracts/tasks/finalize.ts | 65 --------- contracts/tasks/newMaciKey.ts | 19 --- contracts/tasks/newRound.ts | 77 ----------- contracts/tasks/setCoordinator.ts | 68 ---------- contracts/tasks/timeTravel.ts | 14 -- contracts/tasks/vote.ts | 84 ------------ contracts/tsconfig.json | 2 +- contracts/utils/constants.ts | 2 +- contracts/utils/deployment.ts | 123 +++++++++++++---- contracts/utils/maci.ts | 38 +++++- contracts/utils/misc.ts | 11 ++ yarn.lock | 200 +++++++++++++--------------- 34 files changed, 1264 insertions(+), 817 deletions(-) create mode 100644 contracts/cli/addContributors.ts create mode 100644 contracts/cli/addRecipients.ts create mode 100644 contracts/cli/claim.ts create mode 100644 contracts/cli/contribute.ts create mode 100644 contracts/cli/finalize.ts create mode 100644 contracts/cli/newClrFund.ts create mode 100644 contracts/cli/newDeployer.ts create mode 100644 contracts/cli/newMaciKey.ts create mode 100644 contracts/cli/newRound.ts rename contracts/{scripts => cli}/tally.ts (71%) create mode 100644 contracts/cli/timeTravel.ts create mode 100644 contracts/cli/vote.ts delete mode 100644 contracts/tasks/addContributors.ts delete mode 100644 contracts/tasks/addRecipients.ts delete mode 100644 contracts/tasks/claim.ts delete mode 100644 contracts/tasks/contribute.ts delete mode 100644 contracts/tasks/finalize.ts delete mode 100644 contracts/tasks/newMaciKey.ts delete mode 100644 contracts/tasks/newRound.ts delete mode 100644 contracts/tasks/setCoordinator.ts delete mode 100644 contracts/tasks/timeTravel.ts delete mode 100644 contracts/tasks/vote.ts diff --git a/common/package.json b/common/package.json index 88176b04e..02a5d6773 100644 --- a/common/package.json +++ b/common/package.json @@ -16,8 +16,8 @@ "dependencies": { "@openzeppelin/merkle-tree": "^1.0.5", "ethers": "^5.7.2", - "maci-crypto": "1.1.1", - "maci-domainobjs": "1.1.1" + "@clrfund/maci-crypto": "^1.1.7", + "@clrfund/maci-domainobjs": "^1.1.7" }, "repository": { "type": "git", diff --git a/common/src/keypair.ts b/common/src/keypair.ts index 78cdd0fe4..5434b01e6 100644 --- a/common/src/keypair.ts +++ b/common/src/keypair.ts @@ -1,5 +1,9 @@ import { utils, BigNumber } from 'ethers' -import { Keypair as MaciKeypair, PrivKey, PubKey } from 'maci-domainobjs' +import { + Keypair as MaciKeypair, + PrivKey, + PubKey, +} from '@clrfund/maci-domainobjs' const SNARK_FIELD_SIZE = BigInt( '21888242871839275222246405745257275088548364400416034343698204186575808495617' diff --git a/common/src/utils.ts b/common/src/utils.ts index 9154eb5f0..16b590983 100644 --- a/common/src/utils.ts +++ b/common/src/utils.ts @@ -6,8 +6,8 @@ import { hash5, hash3, hash2, -} from 'maci-crypto' -import { PubKey, PCommand, Message } from 'maci-domainobjs' +} from '@clrfund/maci-crypto' +import { PubKey, PCommand, Message } from '@clrfund/maci-domainobjs' import { Keypair } from './keypair' import { utils } from 'ethers' import { Tally } from './tally' @@ -99,7 +99,7 @@ export function getRecipientClaimData( const spentProof: MerkleProof = spentTree.genMerklePath(recipientIndex) const resultsCommitment = genTallyResultCommitment( - tally.results.tally.map((x) => BigInt(x)), + tally.results.tally.map(x => BigInt(x)), BigInt(tally.results.salt), recipientTreeDepth ) @@ -112,7 +112,7 @@ export function getRecipientClaimData( return [ recipientIndex, spent, - spentProof.pathElements.map((x) => x.map((y) => y.toString())), + spentProof.pathElements.map(x => x.map(y => y.toString())), spentSalt, resultsCommitment, spentVoiceCreditsCommitment, @@ -150,7 +150,7 @@ export function genTallyResultCommitment( for (const result of results) { tree.insert(result) } - return hashLeftRight(tree.root, salt).valueOf() + return hashLeftRight(tree.root, salt) } export { diff --git a/contracts/cli/addContributors.ts b/contracts/cli/addContributors.ts new file mode 100644 index 000000000..9d60b5c75 --- /dev/null +++ b/contracts/cli/addContributors.ts @@ -0,0 +1,63 @@ +/** + * Add contributors for testing purposes + * + * Sample usage: + * + * HARDHAT_NETWORK=localhost yarn ts-node cli/addContributors.ts + * + */ + +import { program } from 'commander' +import { ethers } from 'hardhat' + +program + .description('Add test contributors') + .argument('clrfund', 'The ClrFund contract address') + .parse() + +async function main(args: any) { + const [ + signer, + , + , + , + , + , + , + , + , + , + , + , + contributor1, + contributor2, + ] = await ethers.getSigners() + console.log('Adding contributors by', signer.address) + + const clrfundContract = await ethers.getContractAt('ClrFund', args[0], signer) + const userRegistryAddress = await clrfundContract.userRegistry() + console.log('User registry address', userRegistryAddress) + + const userRegistry = await ethers.getContractAt( + 'SimpleUserRegistry', + userRegistryAddress, + signer + ) + const users = [contributor1, contributor2] + let addUserTx + for (const account of users) { + addUserTx = await userRegistry.addUser(account.getAddress()) + addUserTx.wait() + } + + console.log(`Added ${users.length} contributors`) +} + +main(program.args) + .then(() => { + process.exit(0) + }) + .catch(err => { + console.error(err) + process.exit(-1) + }) diff --git a/contracts/cli/addRecipients.ts b/contracts/cli/addRecipients.ts new file mode 100644 index 000000000..f76d9702b --- /dev/null +++ b/contracts/cli/addRecipients.ts @@ -0,0 +1,53 @@ +/** + * Add recipients for testing purposes + * + * Sample usage: + * + * HARDHAT_NETWORK=localhost yarn ts-node clr/addRecipients.ts + * + */ +import { program } from 'commander' +import { ethers } from 'hardhat' + +program + .description('Add test recipients') + .argument('clrfund', 'The ClrFund contract address') + .parse() + +async function main(args: any) { + const [signer, ...recipients] = await ethers.getSigners() + console.log('Add recipients by', signer.address) + + const clrfundContract = await ethers.getContractAt('ClrFund', args[0], signer) + const recipientRegistryAddress = await clrfundContract.recipientRegistry() + console.log('Recipient registry', recipientRegistryAddress) + + const recipientRegistry = await ethers.getContractAt( + 'SimpleRecipientRegistry', + recipientRegistryAddress, + signer + ) + + for (let i = 6; i < 10; i++) { + const recipient = recipients[i] + const addRecipientTx = await recipientRegistry.addRecipient( + recipient.address, + JSON.stringify({ + name: `recipient ${i}`, + description: `recipient ${i}`, + }) + ) + addRecipientTx.wait() + } + + console.log('Added test recipients') +} + +main(program.args) + .then(() => { + process.exit(0) + }) + .catch(err => { + console.error(err) + process.exit(-1) + }) diff --git a/contracts/cli/claim.ts b/contracts/cli/claim.ts new file mode 100644 index 000000000..ac2cceeee --- /dev/null +++ b/contracts/cli/claim.ts @@ -0,0 +1,73 @@ +/** + * Claim funds. This script is mainly used by e2e testing + * + * Sample usage: + * HARDHAT_NETWORK=localhost yarn ts-node cli/claim.ts -f fundingRoundAddress -t tally-file + */ + +import { getEventArg } from '../utils/contracts' +import { getRecipientClaimData } from '@clrfund/common' +import { JSONFile } from '../utils/JSONFile' +import { ethers } from 'hardhat' +import { program } from 'commander' +import { isPathExist } from '../utils/misc' + +program + .description('Claim funnds for test recipients') + .requiredOption( + '-f --funding-round ', + 'The funding round contract address' + ) + .requiredOption('-t --tally-file ', 'The tally file') + .parse() + +async function main(args: any) { + const { fundingRound, tallyFile } = args + const [, , recipient0, recipient1, recipient2] = await ethers.getSigners() + + if (!isPathExist(tallyFile)) { + throw new Error(`Path ${tallyFile} does not exist`) + } + + const tally = JSONFile.read(tallyFile) + + const fundingRoundContract = await ethers.getContractAt( + 'FundingRound', + fundingRound + ) + const pollAddress = await fundingRoundContract.poll() + console.log('pollAddress', pollAddress) + + const poll = await ethers.getContractAt('Poll', pollAddress) + const recipientTreeDepth = (await poll.treeDepths()).voteOptionTreeDepth + + // Claim funds + const recipients = [recipient0, recipient1, recipient2] + for (const recipientIndex of [1, 2]) { + const recipientClaimData = getRecipientClaimData( + recipientIndex, + recipientTreeDepth, + tally + ) + const fundingRoundAsRecipient = fundingRoundContract.connect( + recipients[recipientIndex] + ) + const claimTx = await fundingRoundAsRecipient.claimFunds( + ...recipientClaimData + ) + const claimedAmount = await getEventArg( + claimTx, + fundingRoundAsRecipient, + 'FundsClaimed', + '_amount' + ) + console.log(`Recipient ${recipientIndex} claimed ${claimedAmount} tokens.`) + } +} + +main(program.opts()) + .then(() => process.exit(0)) + .catch(error => { + console.error(error) + process.exit(1) + }) diff --git a/contracts/cli/contribute.ts b/contracts/cli/contribute.ts new file mode 100644 index 000000000..00f034c6f --- /dev/null +++ b/contracts/cli/contribute.ts @@ -0,0 +1,109 @@ +/** + * Contribute to a funding round. This script is mainly used by e2e testing + * All the input used by the script comes from the state.json file + * + * Sample usage: + * HARDHAT_NETWORK=localhost yarn ts-node cli/contribute.ts + */ + +import { JSONFile } from '../utils/JSONFile' +import { Keypair } from '@clrfund/common' + +import { UNIT } from '../utils/constants' +import { getEventArg } from '../utils/contracts' +import { program } from 'commander' +import { ethers } from 'hardhat' +import { isPathExist } from '../utils/misc' + +program + .description('Contribute to a funding round') + .argument('state-file', 'The file to store the state information') + .parse() + +async function main(args: any) { + const [ + , + , + , + , + , + , + , + , + , + , + , + , + contributor1, + contributor2, + ] = await ethers.getSigners() + + const stateFile = args[0] + if (!isPathExist(stateFile)) { + throw new Error(`File ${stateFile} not found`) + } + + const state = JSONFile.read(stateFile) + const fundingRound = await ethers.getContractAt( + 'FundingRound', + state.fundingRound + ) + const tokenAddress = await fundingRound.nativeToken() + const token = await ethers.getContractAt('AnyOldERC20Token', tokenAddress) + const maciAddress = await fundingRound.maci() + const maci = await ethers.getContractAt('MACI', maciAddress) + + const contributionAmount = UNIT.mul(16).div(10) + + state.contributors = {} + for (const contributor of [contributor1, contributor2]) { + const contributorAddress = await contributor.getAddress() + + // transfer token to contributor first + await token.transfer(contributorAddress, contributionAmount) + + const contributorKeypair = new Keypair() + const tokenAsContributor = token.connect(contributor) + await tokenAsContributor.approve(fundingRound.address, contributionAmount) + + const fundingRoundAsContributor = fundingRound.connect(contributor) + const contributionTx = await fundingRoundAsContributor.contribute( + contributorKeypair.pubKey.asContractParam(), + contributionAmount + ) + const stateIndex = await getEventArg( + contributionTx, + maci, + 'SignUp', + '_stateIndex' + ) + const voiceCredits = await getEventArg( + contributionTx, + maci, + 'SignUp', + '_voiceCreditBalance' + ) + console.log('saving states') + state.contributors[contributorAddress] = { + privKey: contributorKeypair.privKey.serialize(), + pubKey: contributorKeypair.pubKey.serialize(), + stateIndex: parseInt(stateIndex), + voiceCredits: voiceCredits.toString(), + } + console.log( + `Contributor ${contributorAddress} registered. State index: ${stateIndex}. Voice credits: ${voiceCredits.toString()}.` + ) + } + + // Update state file + JSONFile.update(stateFile, state) +} + +main(program.args) + .then(() => { + process.exit(0) + }) + .catch(err => { + console.error(err) + process.exit(-1) + }) diff --git a/contracts/cli/finalize.ts b/contracts/cli/finalize.ts new file mode 100644 index 000000000..4e2600353 --- /dev/null +++ b/contracts/cli/finalize.ts @@ -0,0 +1,78 @@ +/** + * Finalize a funding round + * + * Sample usage: + * HARDHAT_NETWORK=localhost yarn ts-node cli/finalize.ts \ + * --funding-round \ + * --tally-file + */ + +import { ethers } from 'hardhat' +import { JSONFile } from '../utils/JSONFile' +import { genTallyResultCommitment } from '@clrfund/common' +import { program } from 'commander' + +program + .description('Finalize a funding round') + .requiredOption('-c --clrfund ', 'The ClrFund contract address') + .requiredOption('-t --tally-file ', 'The tally file path') + .parse() + +async function main(args: any) { + const { tallyFile, clrfund } = args + const tally = JSONFile.read(tallyFile) + if (!tally.maci) { + throw Error('Bad tally file ' + tallyFile) + } + + const clrfundContract = await ethers.getContractAt('ClrFund', clrfund) + console.log('ClrFund address', clrfund) + + const currentRoundAddress = await clrfundContract.getCurrentRound() + const fundingRound = await ethers.getContractAt( + 'FundingRound', + currentRoundAddress + ) + console.log('Current round', fundingRound.address) + + const pollAddress = await fundingRound.poll() + const pollContract = await ethers.getContractAt('Poll', pollAddress) + console.log('Poll', pollAddress) + + const treeDepths = await pollContract.treeDepths() + console.log('voteOptionTreeDepth', treeDepths.voteOptionTreeDepth) + + const totalSpent = parseInt(tally.totalSpentVoiceCredits.spent) + const totalSpentSalt = tally.totalSpentVoiceCredits.salt + + const resultsCommitment = genTallyResultCommitment( + tally.results.tally.map((x: string) => BigInt(x)), + tally.results.salt, + treeDepths.voteOptionTreeDepth + ) + + const perVOVoiceCreditCommitment = genTallyResultCommitment( + tally.perVOSpentVoiceCredits.tally.map((x: string) => BigInt(x)), + tally.perVOSpentVoiceCredits.salt, + treeDepths.voteOptionTreeDepth + ) + + const tx = await clrfundContract.transferMatchingFunds( + totalSpent, + totalSpentSalt, + resultsCommitment, + perVOVoiceCreditCommitment + ) + const receipt = await tx.wait() + console.log( + 'Round finalized, totals verified. Gas used:', + receipt.gasUsed.toString() + ) +} + +main(program.opts()) + .then(() => process.exit(0)) + .catch(error => { + console.error(error) + process.exit(1) + }) diff --git a/contracts/cli/newClrFund.ts b/contracts/cli/newClrFund.ts new file mode 100644 index 000000000..8178e08ac --- /dev/null +++ b/contracts/cli/newClrFund.ts @@ -0,0 +1,183 @@ +/** + * Create a new instance of the ClrFund contract. + * + * If the coordinator ETH address is not provided, use the signer address + * If the COORDINATOR_MACISK env. varibale not set, create a new random MACI key + * + * Sample usage: + * + * HARDHAT_NETWORK=localhost yarn ts-node cli/newClrFund.ts \ + * --deployer \ + * --token \ + * [--coordinator ] \ + * [--user-registry-type ] \ + * [--recipient-registry-type ] + * + * + * If user registry address and recipient registry address are not provided, + * the registry types become mandatory as well as the other parameters needed + * to deploy the registries + * + * If token is not provided, a new ERC20 token will be created + */ +import { ethers, network } from 'hardhat' +import { getEventArg } from '../utils/contracts' +import { newMaciPrivateKey } from '../utils/maci' +import { + challengePeriodSeconds, + deployContract, + deployUserRegistry, + deployRecipientRegistry, + setCoordinator, +} from '../utils/deployment' +import { JSONFile } from '../utils/JSONFile' +import { program } from 'commander' +import dotenv from 'dotenv' +import { UNIT } from '../utils/constants' +dotenv.config() + +program + .description('Deploy a new ClrFund instance') + .requiredOption( + '-d --deployer ', + 'The ClrFund deployer contract address' + ) + .option('-c --coordinator ', 'The coordinator ETH address') + .option('-t --token
', 'The native token address') + .option('-a --initial-token-supply ', 'Initial token amount', '1000') + .option('-u --user-registry-type ', 'The user registry type') + .option('-x --brightid-context ', 'The brightid context') + .option('-v --brightid-verifier ', 'The brightid verifier address') + .option( + '-o --brightid-sponsor ', + 'The brightid sponsor contract address' + ) + .option('-r --recipient-registry-type ', 'The recipient registry type') + .option('-b --deposit ', 'The optimistic recipient registry deposit') + .option( + '-p --challenge-period ', + 'The optimistic recipient registry challenge period in seconds', + challengePeriodSeconds + ) + .option( + '-s --state-file ', + 'File to store the ClrFundDeployer address for e2e testing' + ) + .parse() + +async function main(args: any) { + const { deployer, coordinator, stateFile } = args + const [signer] = await ethers.getSigners() + + console.log('Network: ', network.name) + console.log(`Deploying from address: ${signer.address}`) + console.log('args', args) + + // If the maci secret key is not set in the env. variable, create a new key + const coordinatorMacisk = + process.env.COORDINATOR_MACISK ?? newMaciPrivateKey() + + const clrfundDeployer = await ethers.getContractAt( + 'ClrFundDeployer', + deployer + ) + console.log('ClrFundDeployer:', clrfundDeployer.address) + + const tx = await clrfundDeployer.deployClrFund() + const receipt = await tx.wait() + + let clrfund: string + try { + clrfund = await getEventArg(tx, clrfundDeployer, 'NewInstance', 'clrfund') + console.log('ClrFund: ', clrfund) + } catch (e) { + console.log('receipt', receipt) + throw new Error( + 'Unable to get clrfund address after deployment. ' + (e as Error).message + ) + } + + const clrfundContract = await ethers.getContractAt('ClrFund', clrfund, signer) + + // set coordinator, use the coordinator address if available, + // otherwise use the signer address + const coordinatorAddress = coordinator ?? signer.address + const setCoordinatorTx = await setCoordinator({ + clrfundContract, + coordinatorAddress, + coordinatorMacisk, + }) + await setCoordinatorTx.wait() + console.log('Set coordinator address', coordinatorAddress) + + // set token + let tokenAddress = args.token + if (!tokenAddress) { + const initialTokenSupply = UNIT.mul(args.initialTokenSupply) + const tokenContract = await deployContract({ + name: 'AnyOldERC20Token', + contractArgs: [initialTokenSupply], + ethers, + signer, + }) + tokenAddress = tokenContract.address + } + const setTokenTx = await clrfundContract.setToken(tokenAddress) + await setTokenTx.wait() + console.log('Set token address', tokenAddress) + + // set user registry + let userRegistryAddress = args.userRegistryAddress + if (!userRegistryAddress) { + const userRegistryContract = await deployUserRegistry({ + ethers, + signer, + userRegistryType: args.userRegistryType, + brightidContext: args.brightidContext, + brightidVerifier: args.brightidVerifier, + brightidSponsor: args.brightidSponsor, + }) + userRegistryAddress = userRegistryContract.address + } + const setUserRegistryTx = await clrfundContract.setUserRegistry( + userRegistryAddress + ) + await setUserRegistryTx.wait() + console.log( + `Set ${args.userRegistryType} user registry: ${userRegistryAddress}` + ) + + // set recipient registry + let recipientRegistryAddress = args.recipientRegistryAddress + if (!recipientRegistryAddress) { + const recipientRegistryContract = await deployRecipientRegistry({ + ethers, + signer, + type: args.recipientRegistryType, + challengePeriod: args.challengePeriod, + deposit: args.deposit, + controller: clrfund, + }) + recipientRegistryAddress = recipientRegistryContract.address + } + const setRecipientRegistryTx = await clrfundContract.setRecipientRegistry( + recipientRegistryAddress + ) + await setRecipientRegistryTx.wait() + console.log( + `Set ${args.recipientRegistryType} recipient registry: ${recipientRegistryAddress}` + ) + + if (stateFile) { + JSONFile.update(stateFile, { clrfund }) + } +} + +main(program.opts()) + .then(() => { + process.exit(0) + }) + .catch(err => { + console.error(err) + process.exit(-1) + }) diff --git a/contracts/cli/newDeployer.ts b/contracts/cli/newDeployer.ts new file mode 100644 index 000000000..be3e2b090 --- /dev/null +++ b/contracts/cli/newDeployer.ts @@ -0,0 +1,84 @@ +/** + * Create a new instance of the ClrFundDeployer + * + * Sample usage: + * + * HARDHAT_NETWORK=localhost yarn ts-node cli/newDeployer.ts -d ~/params + * + */ +import { + deployContract, + deployPoseidonLibraries, + deployMaciFactory, + setMaciParameters, +} from '../utils/deployment' +import { DEFAULT_CIRCUIT } from '../utils/circuits' +import { JSONFile } from '../utils/JSONFile' +import { ethers, config, network } from 'hardhat' +import { program } from 'commander' + +program + .description('Deploy a new ClrFund deployer') + .requiredOption('-d --directory ', 'The circuit directory') + .option('-c --circuit ', 'The circuit type', DEFAULT_CIRCUIT) + .option( + '-s --state-file ', + 'File to store the ClrFundDeployer address for e2e testing' + ) + .parse() + +async function main(args: any) { + const [signer] = await ethers.getSigners() + console.log('Circuit: ', args.circuit) + console.log('Network: ', network.name) + console.log(`Deploying from address: ${signer.address}`) + console.log('args', args) + + const libraries = await deployPoseidonLibraries({ + artifactsPath: config.paths.artifacts, + signer, + ethers, + }) + console.log('Deployed Poseidons', libraries) + + const maciFactory = await deployMaciFactory({ libraries, ethers }) + console.log('Deployed MaciFactory at', maciFactory.address) + await setMaciParameters(maciFactory, args.directory, args.circuit) + + const clrfundTemplate = await deployContract({ + name: 'ClrFund', + ethers, + }) + console.log('Deployed ClrFund Template at', clrfundTemplate.address) + + const fundingRoundFactory = await deployContract({ + name: 'FundingRoundFactory', + libraries, + ethers, + }) + console.log('Deployed FundingRoundFactory at', fundingRoundFactory.address) + + const clrfundDeployer = await deployContract({ + name: 'ClrFundDeployer', + ethers, + contractArgs: [ + clrfundTemplate.address, + maciFactory.address, + fundingRoundFactory.address, + ], + }) + console.log('Deployed ClrfundDeployer at', clrfundDeployer.address) + + if (args.stateFile) { + JSONFile.update(args.stateFile, { deployer: clrfundDeployer.address }) + } +} + +main(program.opts()) + .then(() => { + process.exit(0) + }) + .catch(err => { + console.error(err) + process.exit(-1) + }) diff --git a/contracts/cli/newMaciKey.ts b/contracts/cli/newMaciKey.ts new file mode 100644 index 000000000..57996bfc9 --- /dev/null +++ b/contracts/cli/newMaciKey.ts @@ -0,0 +1,15 @@ +/** + * Create a new MACI key pair + * + * Sample usage: + * + * yarn ts-node cli/newMaciKey.ts + */ + +import { newMaciPrivateKey } from '../utils/maci' + +function main() { + newMaciPrivateKey() +} + +main() diff --git a/contracts/cli/newRound.ts b/contracts/cli/newRound.ts new file mode 100644 index 000000000..9545fa218 --- /dev/null +++ b/contracts/cli/newRound.ts @@ -0,0 +1,108 @@ +/** + * Create a new instance of the ClrFundDeployer + * + * Sample usage: + * + * HARDHAT_NETWOR=localhost yarn ts-node cli/newRound.ts \ + * --clrfund \ + * --duration + * + */ +import { ethers } from 'hardhat' +import { JSONFile } from '../utils/JSONFile' +import { program } from 'commander' +import { deployUserRegistry } from '../utils/deployment' + +program + .description('Deploy a new funding round contract') + .requiredOption('-c --clrfund ', 'ClrFund contract address') + .requiredOption( + '-d --duration ', + 'The funding round duration in seconds' + ) + .option( + '-n --new-brightid ', + 'Create a new BrightId user registry', + false + ) + .option('-x --context ', 'The brightid context') + .option('-v --verifier ', 'The brightid verifier address') + .option('-o --sponsor ', 'The brightid sponsor contract address') + .option( + '-s --state-file ', + 'File to store the ClrFundDeployer address for e2e testing' + ) + .parse() + +async function main(args: any) { + const { + clrfund, + duration, + newBrightid, + context, + verifier, + sponsor, + stateFile, + } = args + + const [signer] = await ethers.getSigners() + console.log(`Deploying from address: ${signer.address}`) + console.log('args', args) + + const clrfundContract = await ethers.getContractAt('ClrFund', clrfund) + + // check if the current round is finalized before starting a new round to avoid revert + const currentRoundAddress = await clrfundContract.getCurrentRound() + if (currentRoundAddress !== ethers.constants.AddressZero) { + const currentRound = await ethers.getContractAt( + 'FundingRound', + currentRoundAddress + ) + const isFinalized = await currentRound.isFinalized() + if (!isFinalized) { + throw new Error( + 'Cannot start a new round as the current round is not finalized' + ) + } + } + + if (newBrightid) { + const userRegistryContract = await deployUserRegistry({ + ethers, + signer, + userRegistryType: 'brighid', + brightidContext: context, + brightidVerifier: verifier, + brightidSponsor: sponsor, + }) + + const setUserRegistryTx = await clrfundContract.setUserRegistry( + userRegistryContract.address + ) + + await setUserRegistryTx.wait() + console.log( + `New ${args.userRegistryType} user registry: ${userRegistryContract.address}` + ) + } + + const tx = await clrfundContract.deployNewRound(duration) + await tx.wait() + const fundingRound = await clrfundContract.getCurrentRound() + console.log('New funding round address: ', fundingRound) + + if (stateFile) { + const pollId = 0 + const state = { fundingRound, pollId, maciTxHash: tx.hash } + JSONFile.update(stateFile, state) + } +} + +main(program.opts()) + .then(() => { + process.exit(0) + }) + .catch(err => { + console.error(err) + process.exit(-1) + }) diff --git a/contracts/scripts/tally.ts b/contracts/cli/tally.ts similarity index 71% rename from contracts/scripts/tally.ts rename to contracts/cli/tally.ts index ff8647c46..4c4d845df 100644 --- a/contracts/scripts/tally.ts +++ b/contracts/cli/tally.ts @@ -1,20 +1,21 @@ /** - * Tally votes for the specified funding round. This task can be rerun by - * passing in additional parameters: --maci-logs, --maci-state-file + * Script for tallying votes + * + * This script can be rerun by passing in additional parameters: + * --maci-logs, --maci-state-file * * Make sure to set the following environment variables in the .env file * if not running test using the localhost network * 1) COORDINATOR_ETH_PK - coordinator's wallet private key to interact with contracts - * 2) COORDINATOR_PK - coordinator's MACI private key to decrypt messages + * 2) COORDINATOR_MACISK - coordinator's MACI private key to decrypt messages * * Sample usage: * - * yarn hardhat tally --round-address
--start-block --network + * yarn ts-node cli/tally.ts --round-address
--start-block * * To rerun: * - * yarn hardhat tally --round-address
--network \ - * --maci-logs --maci-state-file + * yarn ts-node cli/tally.ts --round-address
*/ import { ethers, network, config } from 'hardhat' import { Contract } from 'ethers' @@ -31,56 +32,37 @@ import { mergeMaciSubtrees, } from '../utils/maci' import { getTalyFilePath } from '../utils/misc' - -/** - * Read variables from the environment file needed - * to run the tally script - * - * @returns data used to run the tally script - */ -function readFromEnvironment(): { - clrfund: string - batchSize: number - circuit: string - circuitDirectory: string - maciTransactionHash?: string - rapidSnarkDirectory?: string - outputDir: string - stateFile?: string - coordinatorMacisk: string - numQueueOps: number -} { - if (!process.env.CLRFUND) { - console.log('process env', process.env) - throw Error('Env. variable CLRFUND not set') - } - - if (!process.env.CIRCUIT_DIRECTORY) { - throw Error('Env. variable CIRCUIT_DIRECTORY not set') - } - - if (!process.env.COORDINATOR_MACISK) { - throw Error('Env. variable COORDINATOR_MACISK not set') - } - - return { - clrfund: process.env.CLRFUND || '', - batchSize: Number(process.env.TALLY_BATCH_SIZE || '10'), - circuit: process.env.CIRCUIT_TYPE || 'micro', - circuitDirectory: process.env.CIRCUIT_DIRECTORY || '', - maciTransactionHash: process.env.MACI_TRANSACTION_HASH, - rapidSnarkDirectory: process.env.RAPIDSNARK_DIRECTORY, - outputDir: process.env.OUTPUT_DIR || './output', - stateFile: process.env.STATE_FILE, - coordinatorMacisk: process.env.COORDINATOR_MACISK || '', - numQueueOps: Number(process.env.NUM_QUEUE_OPS || DEFAULT_SR_QUEUE_OPS), - } -} +import { program } from 'commander' +import { DEFAULT_CIRCUIT } from '../utils/circuits' + +program + .description('Tally votes') + .requiredOption('-c --clrfund ', 'ClrFund contract address') + .option( + '-b --batch-size ', + 'The batch size to upload tally result on-chain', + '10' + ) + .requiredOption('-c --circuit ', 'The circuit type', DEFAULT_CIRCUIT) + .requiredOption('-d --circuit-directory ', 'The circuit directory') + .option( + '-s --state-file ', + 'File to store the ClrFundDeployer address for e2e testing' + ) + .requiredOption('-o --output-dir ', 'The proof output directory') + .option('-h --maci-tx-hash ', 'The MACI creation transaction hash') + .option('-r --rapid-snark-directory ', 'The rapidsnark directory') + .option( + '-n --num-queue-ops ', + 'The number of operation for tree merging', + DEFAULT_SR_QUEUE_OPS + ) + .parse() /** * Main tally logic */ -async function main() { +async function main(args: any) { const { clrfund, batchSize, @@ -89,10 +71,9 @@ async function main() { circuit, circuitDirectory, rapidSnarkDirectory, - maciTransactionHash, - coordinatorMacisk, + maciTxHash, numQueueOps, - } = readFromEnvironment() + } = args const [coordinator] = await ethers.getSigners() console.log('Coordinator address: ', coordinator.address) @@ -125,6 +106,11 @@ async function main() { let tally if (!publishedTallyHash) { + const coordinatorMacisk = process.env.COORDINATOR_MACISK + if (!coordinatorMacisk) { + throw Error('Env. variable COORDINATOR_MACISK not set') + } + const pollIdBN = await fundingRoundContract.pollId() const pollId = pollIdBN.toString() console.log('PollId', pollId) @@ -138,7 +124,7 @@ async function main() { providerUrl, pollId, coordinatorMacisk, - maciTxHash: maciTransactionHash, + maciTxHash, rapidSnarkDirectory, circuitType: circuit, circuitDirectory, @@ -214,7 +200,7 @@ async function main() { fundingRoundContract, 3, tally, - batchSize, + Number(batchSize), startIndex.toNumber(), (processed: number) => { console.log(`Processed ${processed} / ${total}`) @@ -223,9 +209,9 @@ async function main() { console.log('Tally results uploaded. Gas used:', addTallyGas.toString()) } -main() +main(program.opts()) .then(() => process.exit(0)) - .catch((error) => { + .catch(error => { console.error(error) process.exit(1) }) diff --git a/contracts/cli/timeTravel.ts b/contracts/cli/timeTravel.ts new file mode 100644 index 000000000..8f8309320 --- /dev/null +++ b/contracts/cli/timeTravel.ts @@ -0,0 +1,29 @@ +/** + * Travel to block timestamp in seconds + * + * Sample usage: + * HARDHAT_NETWORK=localhost yarn ts-node cli/timeTravel.ts + */ + +import { network } from 'hardhat' +import { program } from 'commander' + +program + .description('Travel to block timestamp in seconds') + .argument('seconds', 'The number of seconds to travel to') + .parse() + +async function main(args: any) { + const seconds = Number(args[0]) + await network.provider.send('evm_increaseTime', [seconds]) + await network.provider.send('evm_mine') +} + +main(program.args) + .then(() => { + process.exit(0) + }) + .catch(err => { + console.error(err) + process.exit(-1) + }) diff --git a/contracts/cli/vote.ts b/contracts/cli/vote.ts new file mode 100644 index 000000000..b01d61e0f --- /dev/null +++ b/contracts/cli/vote.ts @@ -0,0 +1,121 @@ +/** + * Voting used in the e2e testing + * Most of the input used by the script comes from the state.json file + * + * Set the COORDINATOR_MACISK env. variable for the coordinator MACI secret key + * + * Sample usage: + * HARDHAT_NETWORK=localhost yarn ts-node cli/vote.ts + */ + +import { JSONFile } from '../utils/JSONFile' +import { PrivKey, Keypair, createMessage } from '@clrfund/common' +import { BigNumber } from 'ethers' +import { ethers } from 'hardhat' +import { program } from 'commander' +import dotenv from 'dotenv' +import { isPathExist } from '../utils/misc' + +dotenv.config() + +program + .description('Cast votes for test users') + .argument('stateFile', 'The file to store the state information') + .parse() + +async function main(args: any) { + const stateFile = args[0] + if (!isPathExist(stateFile)) { + throw new Error(`File ${stateFile} not found`) + } + + const coordinatorMacisk = process.env.COORDINATOR_MACISK + if (!coordinatorMacisk) { + throw Error('Env. variable COORDINATOR_MACISK not set') + } + + const [ + , + , + , + , + , + , + , + , + , + , + , + , + contributor1, + contributor2, + ] = await ethers.getSigners() + + const state = JSONFile.read(stateFile) + const coordinatorKeyPair = new Keypair(PrivKey.unserialize(coordinatorMacisk)) + + const pollId = state.pollId + for (const contributor of [contributor1, contributor2]) { + const contributorAddress = await contributor.getAddress() + const contributorData = state.contributors[contributorAddress] + const contributorKeyPair = new Keypair( + PrivKey.unserialize(contributorData.privKey) + ) + + const messages: { msgType: any; data: string[] }[] = [] + const encPubKeys: any[] = [] + let nonce = 1 + // Change key + const newContributorKeypair = new Keypair() + const [message, encPubKey] = createMessage( + contributorData.stateIndex, + contributorKeyPair, + newContributorKeypair, + coordinatorKeyPair.pubKey, + null, + null, + nonce, + pollId + ) + messages.push(message.asContractParam()) + encPubKeys.push(encPubKey.asContractParam()) + nonce += 1 + // Vote + for (const recipientIndex of [1, 2]) { + const votes = BigNumber.from(contributorData.voiceCredits).div(4) + const [message, encPubKey] = createMessage( + contributorData.stateIndex, + newContributorKeypair, + null, + coordinatorKeyPair.pubKey, + recipientIndex, + votes, + nonce, + pollId + ) + messages.push(message.asContractParam()) + encPubKeys.push(encPubKey.asContractParam()) + nonce += 1 + } + + const fundingRoundAsContributor = await ethers.getContractAt( + 'FundingRound', + state.fundingRound, + contributor + ) + await fundingRoundAsContributor.submitMessageBatch( + messages.reverse(), + encPubKeys.reverse() + ) + console.log(`Contributor ${contributorAddress} voted.`) + } +} + +main(program.args) + .then(() => { + process.exit(0) + }) + .catch(err => { + console.error(err) + process.exit(-1) + }) diff --git a/contracts/hardhat.config.ts b/contracts/hardhat.config.ts index 4aeff2110..36b27c28f 100644 --- a/contracts/hardhat.config.ts +++ b/contracts/hardhat.config.ts @@ -3,12 +3,11 @@ import path from 'path' import dotenv from 'dotenv' import { TASK_COMPILE_SOLIDITY_GET_SOURCE_PATHS } from 'hardhat/builtin-tasks/task-names' -import { HardhatUserConfig, subtask, task } from 'hardhat/config' +import { subtask, task } from 'hardhat/config' import '@nomiclabs/hardhat-waffle' import '@nomiclabs/hardhat-ganache' import 'hardhat-contract-sizer' import '@nomiclabs/hardhat-etherscan' -import './tasks' dotenv.config() @@ -24,7 +23,7 @@ if (WALLET_PRIVATE_KEY) { accounts = [WALLET_PRIVATE_KEY] } -const config: HardhatUserConfig = { +export default { networks: { hardhat: { gas: GAS_LIMIT, @@ -192,5 +191,3 @@ task( } } ) - -export default config diff --git a/contracts/package.json b/contracts/package.json index 3f94b73c9..6dc059945 100644 --- a/contracts/package.json +++ b/contracts/package.json @@ -6,14 +6,8 @@ "hardhat": "hardhat", "build": "hardhat compile", "node": "hardhat node --port 18545 --hostname 0.0.0.0", - "deploy:local": "yarn clean && yarn build && hardhat run --network localhost scripts/deploy.ts", - "deploy:arbitrum": "hardhat run --network arbitrum scripts/deploy.ts", - "deployTestRound:local": "hardhat run --network localhost scripts/deployTestRound.ts", - "contribute:local": "hardhat run --network localhost scripts/contribute.ts", - "vote:local": "hardhat run --network localhost scripts/vote.ts", - "tally:local": "hardhat --network localhost tally", - "finalize:local": "hardhat run --network localhost scripts/finalize.ts", - "claim:local": "hardhat run --network localhost scripts/claim.ts", + "deployer:arbitrum": "yarn clean && yarn build && HARDHAT_NETWORK=arbitrum ts-node cli/newDeployer.ts -d ~/zkeys", + "deployer:local": "yarn clean && yarn build && HARDHAT_NETWORK=local ts-node cli/newDeployer.ts -d ~/zkeys", "test": "hardhat test", "e2e": "NODE_OPTIONS=--max-old-space-size=4096 hardhat test --network localhost e2e/index.ts", "lint:js": "eslint '{tests,e2e,scripts}/**/*.ts'", @@ -24,13 +18,14 @@ "dependencies": { "@clrfund/maci-contracts": "^1.1.9", "@openzeppelin/contracts": "4.9.0", + "commander": "^11.1.0", "dotenv": "^8.2.0", "solidity-rlp": "2.0.8" }, "devDependencies": { "@clrfund/common": "^0.0.1", - "@clrfund/maci-circuits": "^1.1.7", - "@clrfund/maci-cli": "^1.1.7", + "@clrfund/maci-circuits": "^1.1.10", + "@clrfund/maci-cli": "^1.1.10", "@ethereum-waffle/mock-contract": "^3.4.4", "@kleros/gtcr-encoder": "^1.4.0", "@nomiclabs/hardhat-ethers": "^2.2.3", @@ -38,6 +33,7 @@ "@nomiclabs/hardhat-ganache": "^2.0.1", "@nomiclabs/hardhat-waffle": "^2.0.3", "@types/chai": "^4.2.11", + "@types/commander": "^2.12.2", "@types/mocha": "^7.0.2", "@types/node": "^13.9.2", "@typescript-eslint/eslint-plugin": "^5.44.0", diff --git a/contracts/sh/runScriptTests.sh b/contracts/sh/runScriptTests.sh index c3dfccd42..46239ef64 100755 --- a/contracts/sh/runScriptTests.sh +++ b/contracts/sh/runScriptTests.sh @@ -7,11 +7,12 @@ set -e # Test settings NOW=$(date +%s) -OUTPUT_DIR="./proof_output/${NOW}" -CIRCUIT=micro -NETWORK=localhost -CIRCUIT_DIRECTORY=${CIRCUIT_DIRECTORY:-"./snark-params"} -STATE_FILE=${OUTPUT_DIR}/state.json +export OUTPUT_DIR="./proof_output/${NOW}" +export CIRCUIT=micro +export NETWORK=localhost +export CIRCUIT_DIRECTORY=${CIRCUIT_DIRECTORY:-"./snark-params"} +export STATE_FILE=${OUTPUT_DIR}/state.json +export HARDHAT_NETWORK=localhost # 20 mins ROUND_DURATION=1800 @@ -22,70 +23,60 @@ mkdir -p ${OUTPUT_DIR} # The pattern "field": "value" must be on 1 line # Usage: extract 'clrfund' function extract() { - val=$(cat "${STATE_FILE}" | grep "${1}" | grep -o "[^:]*$" | grep -o '[^",]*') + val=$(cat "${STATE_FILE}" | grep -o "${1}\": *\"[^\"]*" | grep -o "[^\"]*$") echo ${val} } # create a ClrFund deployer -yarn hardhat new-deployer \ +yarn ts-node cli/newDeployer.ts \ --directory "${CIRCUIT_DIRECTORY}" \ --state-file "${STATE_FILE}" \ - --network "${NETWORK}" -DEPLOYER=$(extract 'deployer') + --circuit "${CIRCUIT}" # create a new maci key for the coordinator -MACI_KEYPAIR=$(yarn hardhat new-maci-key) -MACI_SECRET_KEY=$(echo "${MACI_KEYPAIR}" | grep -o "macisk.*$") +MACI_KEYPAIR=$(yarn ts-node cli/newMaciKey.ts) +export COORDINATOR_MACISK=$(echo "${MACI_KEYPAIR}" | grep -o "macisk.*$") # create a new instance of ClrFund -yarn hardhat new-clrfund --deployer ${DEPLOYER} \ - --user-type simple \ - --recipient-type simple \ - --coordinator-macisk "${MACI_SECRET_KEY}" \ - --state-file "${STATE_FILE}" \ - --network "${NETWORK}" +DEPLOYER=$(extract 'deployer') +yarn ts-node cli/newClrfund.ts \ + --deployer "${DEPLOYER}" \ + --user-registry-type simple \ + --recipient-registry-type simple \ + --state-file ${STATE_FILE} + +# # deploy a new funding round CLRFUND=$(extract 'clrfund') - -# deploy a new funding round -yarn hardhat new-round \ - --clrfund ${CLRFUND} \ - --state-file "${STATE_FILE}" \ +yarn ts-node cli/newRound.ts \ + --clrfund "${CLRFUND}" \ --duration "${ROUND_DURATION}" \ - --network "${NETWORK}" -FUNDING_ROUND=$(extract 'fundingRound') + --state-file ${STATE_FILE} -yarn hardhat add-contributors --clrfund ${CLRFUND} --network "${NETWORK}" -yarn hardhat add-recipients --clrfund ${CLRFUND} --network "${NETWORK}" +yarn ts-node cli/addContributors.ts "${CLRFUND}" +yarn ts-node cli/addRecipients.ts "${CLRFUND}" -yarn hardhat contribute --state-file "${STATE_FILE}" --network "${NETWORK}" -yarn hardhat vote \ - --coordinator-macisk "${MACI_SECRET_KEY}" \ - --state-file "${STATE_FILE}" \ - --network "${NETWORK}" -yarn hardhat time-travel ${ROUND_DURATION} --network "${NETWORK}" +yarn ts-node cli/contribute.ts ${STATE_FILE} +yarn ts-node cli/vote.ts ${STATE_FILE} -# run the tally script -export CIRCUIT=micro -export CIRCUIT_DIRECTORY="${CIRCUIT_DIRECTORY}" -export CLRFUND="${CLRFUND}" -export STATE_FILE="${STATE_FILE}" -export TALLY_BATCH_SIZE=10 -export PROOF_OUTPUT_DIR="${PROOF_OUTPUT_DIR}" -export COORDINATOR_MACISK="${MACI_SECRET_KEY}" -export MACI_TRANSACTION_HASH=$(extract 'maciTxHash') -export OUTPUT_DIR="${OUTPUT_DIR}" -export NODE_OPTIONS=--max-old-space-size=4096 -yarn hardhat run scripts/tally.ts --network "${NETWORK}" +yarn ts-node cli/timeTravel.ts ${ROUND_DURATION} -# finalize the round +# run the tally script +MACI_TRANSACTION_HASH=$(extract 'maciTxHash') +NODE_OPTIONS="--max-old-space-size=4096" +yarn ts-node cli/tally.ts \ + --clrfund ${CLRFUND} \ + --circuit-directory "${CIRCUIT_DIRECTORY}" \ + --circuit "${CIRCUIT}" \ + --batch-size 8 \ + --output-dir "${OUTPUT_DIR}" \ + --maci-tx-hash "${MACI_TRANSACTION_HASH}" \ + --state-file ${STATE_FILE} + +# # finalize the round TALLY_FILE=$(extract 'tallyFile') -yarn hardhat finalize \ - --clrfund "${CLRFUND}" \ - --tally-file "${TALLY_FILE}" \ - --network "${NETWORK}" - +yarn ts-node cli/finalize.ts --clrfund "${CLRFUND}" --tally-file ${TALLY_FILE} + # claim funds -yarn hardhat claim \ - --funding-round ${FUNDING_ROUND} \ - --network "${NETWORK}" +FUNDING_ROUND=$(extract 'fundingRound') +yarn ts-node cli/claim.ts --funding-round "${FUNDING_ROUND}" --tally-file ${TALLY_FILE} diff --git a/contracts/tasks/addContributors.ts b/contracts/tasks/addContributors.ts deleted file mode 100644 index 2e4bee422..000000000 --- a/contracts/tasks/addContributors.ts +++ /dev/null @@ -1,41 +0,0 @@ -/** - * Add contributors for testing purposes - * - * Sample usage: - * - * yarn hardhat add-contributors --network \ - * --state-file - * - */ - -import { task } from 'hardhat/config' - -task('add-contributors', 'Add test contributors') - .addParam('clrfund', 'The ClrFund contract address') - .setAction(async ({ clrfund }, { ethers }) => { - const [signer, , , , , , , , , , , , contributor1, contributor2] = - await ethers.getSigners() - console.log('Adding contributors by', signer.address) - - const clrfundContract = await ethers.getContractAt( - 'ClrFund', - clrfund, - signer - ) - const userRegistryAddress = await clrfundContract.userRegistry() - console.log('User registry address', userRegistryAddress) - - const userRegistry = await ethers.getContractAt( - 'SimpleUserRegistry', - userRegistryAddress, - signer - ) - const users = [contributor1, contributor2] - let addUserTx - for (const account of users) { - addUserTx = await userRegistry.addUser(account.getAddress()) - addUserTx.wait() - } - - console.log(`Added ${users.length} contributors`) - }) diff --git a/contracts/tasks/addRecipients.ts b/contracts/tasks/addRecipients.ts deleted file mode 100644 index 0a42110ae..000000000 --- a/contracts/tasks/addRecipients.ts +++ /dev/null @@ -1,45 +0,0 @@ -/** - * Add recipients for testing purposes - * - * Sample usage: - * - * yarn hardhat add-recipients --network --clrfund - * - */ - -import { task } from 'hardhat/config' - -task('add-recipients', 'Add test recipients') - .addParam('clrfund', 'The ClrFund contract address') - .setAction(async ({ clrfund }, { ethers }) => { - const [signer, ...recipients] = await ethers.getSigners() - console.log('Add recipients by', signer.address) - - const clrfundContract = await ethers.getContractAt( - 'ClrFund', - clrfund, - signer - ) - const recipientRegistryAddress = await clrfundContract.recipientRegistry() - console.log('Recipient registry', recipientRegistryAddress) - - const recipientRegistry = await ethers.getContractAt( - 'SimpleRecipientRegistry', - recipientRegistryAddress, - signer - ) - - for (let i = 6; i < 10; i++) { - const recipient = recipients[i] - const addRecipientTx = await recipientRegistry.addRecipient( - recipient.address, - JSON.stringify({ - name: `recipient ${i}`, - description: `recipient ${i}`, - }) - ) - addRecipientTx.wait() - } - - console.log('Added test recipients') - }) diff --git a/contracts/tasks/claim.ts b/contracts/tasks/claim.ts deleted file mode 100644 index 258e6d46b..000000000 --- a/contracts/tasks/claim.ts +++ /dev/null @@ -1,56 +0,0 @@ -/** - * Claim funds. This script is mainly used by e2e testing - * - * Sample usage: - * yarn hardhat claim --funding-round --network - */ - -import { task } from 'hardhat/config' -import { getEventArg } from '../utils/contracts' -import { getRecipientClaimData } from '@clrfund/common' -import { JSONFile } from '../utils/JSONFile' -import { getTalyFilePath } from '../utils/misc' - -task('claim', 'Claim funnds for test recipients') - .addParam('fundingRound', 'The funding round contract address') - .addParam('tallyDirectory', 'The tally file directory') - .setAction(async ({ fundingRound, tallyDirectory }, { ethers }) => { - const [, , recipient0, recipient1, recipient2] = await ethers.getSigners() - const tallyFile = getTalyFilePath(tallyDirectory) - const tally = JSONFile.read(tallyFile) - - const fundingRoundContract = await ethers.getContractAt( - 'FundingRound', - fundingRound - ) - const pollAddress = await fundingRoundContract.poll() - console.log('pollAddress', pollAddress) - - const poll = await ethers.getContractAt('Poll', pollAddress) - const recipientTreeDepth = (await poll.treeDepths()).voteOptionTreeDepth - - // Claim funds - const recipients = [recipient0, recipient1, recipient2] - for (const recipientIndex of [1, 2]) { - const recipientClaimData = getRecipientClaimData( - recipientIndex, - recipientTreeDepth, - tally - ) - const fundingRoundAsRecipient = fundingRoundContract.connect( - recipients[recipientIndex] - ) - const claimTx = await fundingRoundAsRecipient.claimFunds( - ...recipientClaimData - ) - const claimedAmount = await getEventArg( - claimTx, - fundingRoundAsRecipient, - 'FundsClaimed', - '_amount' - ) - console.log( - `Recipient ${recipientIndex} claimed ${claimedAmount} tokens.` - ) - } - }) diff --git a/contracts/tasks/contribute.ts b/contracts/tasks/contribute.ts deleted file mode 100644 index 7417ecc78..000000000 --- a/contracts/tasks/contribute.ts +++ /dev/null @@ -1,76 +0,0 @@ -/** - * Contribute to a funding round. This script is mainly used by e2e testing - * All the input used by the script comes from the state.json file - * - * Sample usage: - * yarn hardhat contribute --state-file --network - */ - -import { task } from 'hardhat/config' -import { JSONFile } from '../utils/JSONFile' -import { Keypair } from '@clrfund/common' - -import { UNIT } from '../utils/constants' -import { getEventArg } from '../utils/contracts' - -task('contribute', 'Contribute to a funding round') - .addParam('stateFile', 'The file to store the state information') - .setAction(async ({ stateFile }, { ethers }) => { - const [, , , , , , , , , , , , contributor1, contributor2] = - await ethers.getSigners() - - const state = JSONFile.read(stateFile) - const fundingRound = await ethers.getContractAt( - 'FundingRound', - state.fundingRound - ) - const tokenAddress = await fundingRound.nativeToken() - const token = await ethers.getContractAt('AnyOldERC20Token', tokenAddress) - const maciAddress = await fundingRound.maci() - const maci = await ethers.getContractAt('MACI', maciAddress) - - const contributionAmount = UNIT.mul(16).div(10) - - state.contributors = {} - for (const contributor of [contributor1, contributor2]) { - const contributorAddress = await contributor.getAddress() - - // transfer token to contributor first - await token.transfer(contributorAddress, contributionAmount) - - const contributorKeypair = new Keypair() - const tokenAsContributor = token.connect(contributor) - await tokenAsContributor.approve(fundingRound.address, contributionAmount) - - const fundingRoundAsContributor = fundingRound.connect(contributor) - const contributionTx = await fundingRoundAsContributor.contribute( - contributorKeypair.pubKey.asContractParam(), - contributionAmount - ) - const stateIndex = await getEventArg( - contributionTx, - maci, - 'SignUp', - '_stateIndex' - ) - const voiceCredits = await getEventArg( - contributionTx, - maci, - 'SignUp', - '_voiceCreditBalance' - ) - console.log('saving states') - state.contributors[contributorAddress] = { - privKey: contributorKeypair.privKey.serialize(), - pubKey: contributorKeypair.pubKey.serialize(), - stateIndex: parseInt(stateIndex), - voiceCredits: voiceCredits.toString(), - } - console.log( - `Contributor ${contributorAddress} registered. State index: ${stateIndex}. Voice credits: ${voiceCredits.toString()}.` - ) - } - - // Update state file - JSONFile.update(stateFile, state) - }) diff --git a/contracts/tasks/finalize.ts b/contracts/tasks/finalize.ts deleted file mode 100644 index 62a061093..000000000 --- a/contracts/tasks/finalize.ts +++ /dev/null @@ -1,65 +0,0 @@ -/** - * Finalize a funding round - * - * Sample usage: - * yarn hardhat finalize \ - * --funding-round --network - */ - -import { task } from 'hardhat/config' -import { JSONFile } from '../utils/JSONFile' -import { genTallyResultCommitment } from '@clrfund/common' - -task('finalize', 'Finalize a funding round') - .addParam('clrfund', 'The ClrFund contract address') - .addParam('tallyFile', 'The tally file path') - .setAction(async ({ clrfund, tallyFile }, { ethers }) => { - const tally = JSONFile.read(tallyFile) - if (!tally.maci) { - throw Error('Bad tally file ' + tallyFile) - } - - const clrfundContract = await ethers.getContractAt('ClrFund', clrfund) - console.log('ClrFund address', clrfund) - - const currentRoundAddress = await clrfundContract.getCurrentRound() - const fundingRound = await ethers.getContractAt( - 'FundingRound', - currentRoundAddress - ) - console.log('Current round', fundingRound.address) - - const pollAddress = await fundingRound.poll() - const pollContract = await ethers.getContractAt('Poll', pollAddress) - console.log('Poll', pollAddress) - - const treeDepths = await pollContract.treeDepths() - console.log('voteOptionTreeDepth', treeDepths.voteOptionTreeDepth) - - const totalSpent = parseInt(tally.totalSpentVoiceCredits.spent) - const totalSpentSalt = tally.totalSpentVoiceCredits.salt - - const resultsCommitment = genTallyResultCommitment( - tally.results.tally.map((x: string) => BigInt(x)), - tally.results.salt, - treeDepths.voteOptionTreeDepth - ) - - const perVOVoiceCreditCommitment = genTallyResultCommitment( - tally.perVOSpentVoiceCredits.tally.map((x: string) => BigInt(x)), - tally.perVOSpentVoiceCredits.salt, - treeDepths.voteOptionTreeDepth - ) - - const tx = await clrfundContract.transferMatchingFunds( - totalSpent, - totalSpentSalt, - resultsCommitment, - perVOVoiceCreditCommitment - ) - const receipt = await tx.wait() - console.log( - 'Round finalized, totals verified. Gas used:', - receipt.gasUsed.toString() - ) - }) diff --git a/contracts/tasks/newMaciKey.ts b/contracts/tasks/newMaciKey.ts deleted file mode 100644 index ff8152e25..000000000 --- a/contracts/tasks/newMaciKey.ts +++ /dev/null @@ -1,19 +0,0 @@ -/** - * Create a new MACI key pair - * - * Sample usage: - * - * yarn hardhat new-maci-key - */ - -import { task } from 'hardhat/config' -import { Keypair } from '@clrfund/maci-domainobjs' - -task('new-maci-key', 'Create a random maci key pair').setAction(async () => { - const keypair = new Keypair() - const SecretKey = keypair.privKey.serialize() - const PublicKey = keypair.pubKey.serialize() - - console.log(`SecretKey: ${SecretKey}`) - console.log(`PublicKey: ${PublicKey}`) -}) diff --git a/contracts/tasks/newRound.ts b/contracts/tasks/newRound.ts deleted file mode 100644 index c58ff2b50..000000000 --- a/contracts/tasks/newRound.ts +++ /dev/null @@ -1,77 +0,0 @@ -/** - * Create a new instance of the ClrFundDeployer - * - * Sample usage: - * - * yarn hardhat new-round \ - * --network \ - * --clrfund \ - * --duration - * - */ -import { task, types } from 'hardhat/config' -import { JSONFile } from '../utils/JSONFile' - -task('new-round', 'Deploy a new funding round contract') - .addParam('clrfund', 'ClrFund contract address') - .addParam('duration', 'The funding round duration in seconds') - .addOptionalParam( - 'newBrightid', - 'Create a new BrightId user registry', - false, - types.boolean - ) - .addOptionalParam('context', 'BrightId context') - .addOptionalParam('verifier', 'BrightId verifier') - .addOptionalParam('sponsor', 'BrightId sponsor') - .addOptionalParam('stateFile', 'Save the state information in state file') - .setAction( - async ( - { clrfund, duration, newBrightid, context, verifier, sponsor, stateFile }, - { ethers, run } - ) => { - const [signer] = await ethers.getSigners() - console.log(`Deploying from address: ${signer.address}`) - - const clrfundContract = await ethers.getContractAt('ClrFund', clrfund) - - // check if the current round is finalized before starting a new round to avoid revert - const currentRoundAddress = await clrfundContract.getCurrentRound() - if (currentRoundAddress !== ethers.constants.AddressZero) { - const currentRound = await ethers.getContractAt( - 'FundingRound', - currentRoundAddress - ) - const isFinalized = await currentRound.isFinalized() - if (!isFinalized) { - throw new Error( - 'Cannot start a new round as the current round is not finalized' - ) - } - } - - if (newBrightid) { - await run('set-user-registry', { - clrfund, - type: 'brightid', - sponsor, - verifier, - context, - }) - } - - const tx = await clrfundContract.deployNewRound(duration) - await tx.wait() - const fundingRound = await clrfundContract.getCurrentRound() - console.log('New funding round address: ', fundingRound) - - if (stateFile) { - const pollId = 0 - const state = { fundingRound, pollId, maciTxHash: tx.hash } - JSONFile.update(stateFile, state) - } - console.log('*******************') - console.log('Script complete!') - console.log('*******************') - } - ) diff --git a/contracts/tasks/setCoordinator.ts b/contracts/tasks/setCoordinator.ts deleted file mode 100644 index 6d259b535..000000000 --- a/contracts/tasks/setCoordinator.ts +++ /dev/null @@ -1,68 +0,0 @@ -/** - * Set the coordinator in ClrFund, create the MACI key if not provided - * - * Sample usage: - * - * yarn hardhat set-coordinator --network \ - * --clrfund \ - * --coordinator \ - * [--coordinator-macisk ] - */ - -import { task } from 'hardhat/config' -import { PrivKey, Keypair } from '@clrfund/maci-domainobjs' -import { Contract } from 'ethers' - -/** - * Set the coordinator address and maci public key in the funding round factory - * - * @param fundingRoundFactory funding round factory contract - * @param coordinatorAddress - * @param MaciPrivateKey - */ -async function setCoordinator({ - clrfundContract, - coordinatorAddress, - coordinatorMacisk, -}: { - clrfundContract: Contract - coordinatorAddress: string - coordinatorMacisk?: string - stateFile?: string -}) { - // Generate or use the passed in coordinator key - const privKey = coordinatorMacisk - ? PrivKey.unserialize(coordinatorMacisk) - : undefined - - const keypair = new Keypair(privKey) - const coordinatorPubKey = keypair.pubKey - const SecretKey = keypair.privKey.serialize() - const PublicKey = keypair.pubKey.serialize() - - const setCoordinatorTx = await clrfundContract.setCoordinator( - coordinatorAddress, - coordinatorPubKey.asContractParam() - ) - await setCoordinatorTx.wait() - - console.log(`Coordinator address: ${coordinatorAddress}`) - console.log(`SecretKey: ${SecretKey}`) - console.log(`PublicKey: ${PublicKey}`) -} - -task('set-coordinator', 'Set the coordinator address and maci key') - .addParam('clrfund', 'The funding round factory contract address') - .addParam('coordinator', 'The coordinator ETH address') - .addOptionalParam('coordinatorMacisk', 'The coordinator maci secret key') - .setAction( - async ({ clrfund, coordinator, coordinatorMacisk }, { ethers }) => { - const clrfundContract = await ethers.getContractAt('ClrFund', clrfund) - - await setCoordinator({ - clrfundContract, - coordinatorAddress: coordinator, - coordinatorMacisk, - }) - } - ) diff --git a/contracts/tasks/timeTravel.ts b/contracts/tasks/timeTravel.ts deleted file mode 100644 index 6854dade3..000000000 --- a/contracts/tasks/timeTravel.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { task, types } from 'hardhat/config' - -task('time-travel', 'Travel to block timestamp in seconds') - .addPositionalParam( - 'seconds', - 'The number of seconds to travel to', - undefined, - types.int, - false - ) - .setAction(async ({ seconds }, { network }) => { - await network.provider.send('evm_increaseTime', [seconds]) - await network.provider.send('evm_mine') - }) diff --git a/contracts/tasks/vote.ts b/contracts/tasks/vote.ts deleted file mode 100644 index 0e423b032..000000000 --- a/contracts/tasks/vote.ts +++ /dev/null @@ -1,84 +0,0 @@ -/** - * Contribute to a funding round. This script is mainly used by e2e testing - * All the input used by the script comes from the state.json file - * - * Sample usage: - * yarn hardhat contribute \ - * --coordinator-macisk \ - * --state-file - * --network - */ - -import { task } from 'hardhat/config' -import { JSONFile } from '../utils/JSONFile' -import { PrivKey, Keypair, createMessage } from '@clrfund/common' -import { BigNumber } from 'ethers' - -task('vote', 'Cast votes for test users') - .addParam('coordinatorMacisk', 'The coordinator MACI secret key') - .addParam('stateFile', 'The file to store the state information') - .setAction(async ({ coordinatorMacisk, stateFile }, { ethers }) => { - const [, , , , , , , , , , , , contributor1, contributor2] = - await ethers.getSigners() - - const state = JSONFile.read(stateFile) - const coordinatorKeyPair = new Keypair( - PrivKey.unserialize(coordinatorMacisk) - ) - - const pollId = state.pollId - for (const contributor of [contributor1, contributor2]) { - const contributorAddress = await contributor.getAddress() - const contributorData = state.contributors[contributorAddress] - const contributorKeyPair = new Keypair( - PrivKey.unserialize(contributorData.privKey) - ) - - const messages: { msgType: any; data: string[] }[] = [] - const encPubKeys: any[] = [] - let nonce = 1 - // Change key - const newContributorKeypair = new Keypair() - const [message, encPubKey] = createMessage( - contributorData.stateIndex, - contributorKeyPair, - newContributorKeypair, - coordinatorKeyPair.pubKey, - null, - null, - nonce, - pollId - ) - messages.push(message.asContractParam()) - encPubKeys.push(encPubKey.asContractParam()) - nonce += 1 - // Vote - for (const recipientIndex of [1, 2]) { - const votes = BigNumber.from(contributorData.voiceCredits).div(4) - const [message, encPubKey] = createMessage( - contributorData.stateIndex, - newContributorKeypair, - null, - coordinatorKeyPair.pubKey, - recipientIndex, - votes, - nonce, - pollId - ) - messages.push(message.asContractParam()) - encPubKeys.push(encPubKey.asContractParam()) - nonce += 1 - } - - const fundingRoundAsContributor = await ethers.getContractAt( - 'FundingRound', - state.fundingRound, - contributor - ) - await fundingRoundAsContributor.submitMessageBatch( - messages.reverse(), - encPubKeys.reverse() - ) - console.log(`Contributor ${contributorAddress} voted.`) - } - }) diff --git a/contracts/tsconfig.json b/contracts/tsconfig.json index b178c1bd5..224cc64b7 100644 --- a/contracts/tsconfig.json +++ b/contracts/tsconfig.json @@ -7,7 +7,7 @@ "outDir": "dist", "resolveJsonModule": true }, - "include": ["./scripts", "./tests"], + "include": ["./scripts", "./tests", "./cli"], "files": [ "./hardhat.config.ts", "./node_modules/@nomiclabs/hardhat-ethers/src/type-extensions.d.ts", diff --git a/contracts/utils/constants.ts b/contracts/utils/constants.ts index ed588f0e7..af3274138 100644 --- a/contracts/utils/constants.ts +++ b/contracts/utils/constants.ts @@ -5,7 +5,7 @@ export const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000' export const UNIT = BigNumber.from(10).pow(BigNumber.from(18)) export const VOICE_CREDIT_FACTOR = BigNumber.from(10).pow(4 + 18 - 9) export const ALPHA_PRECISION = BigNumber.from(10).pow(18) -export const DEFAULT_SR_QUEUE_OPS = 4 +export const DEFAULT_SR_QUEUE_OPS = '4' export enum RecipientState { Registered = 'Registered', diff --git a/contracts/utils/deployment.ts b/contracts/utils/deployment.ts index 611013a11..3912e493f 100644 --- a/contracts/utils/deployment.ts +++ b/contracts/utils/deployment.ts @@ -1,9 +1,13 @@ -import { Signer, Contract, utils, BigNumber } from 'ethers' +import { Signer, Contract, utils, BigNumber, ContractTransaction } from 'ethers' import { link } from 'ethereum-waffle' import path from 'path' import { readFileSync } from 'fs' import { HardhatEthersHelpers } from '@nomiclabs/hardhat-ethers/types' +import { DEFAULT_CIRCUIT } from './circuits' +import { isPathExist } from './misc' +import { MaciParameters } from './maciParameters' +import { PrivKey, Keypair } from '@clrfund/common' // Number.MAX_SAFE_INTEGER - 1 export const challengePeriodSeconds = '9007199254740990' @@ -112,21 +116,38 @@ export async function deployContract({ * Deploy a user registry * @param userRegistryType user registry type, e.g. brightid, simple, etc * @param ethers Hardhat ethers handle - * @param brightid Brightid parameters for the BrightID user registry + * @param signer The user registry contract deployer + * @param brightidContext The BrightId context + * @param brightidVerifier The BrightId verifier address + * @param brightidSponsor The BrightId sponsor contract address * @returns the newly deployed user registry contract */ -export async function deployUserRegistry( - userRegistryType: string, - ethers: HardhatEthersHelpers, - brightid?: BrightIdParams -): Promise { +export async function deployUserRegistry({ + userRegistryType, + ethers, + signer, + brightidContext, + brightidVerifier, + brightidSponsor, +}: { + userRegistryType: string + ethers: HardhatEthersHelpers + signer?: Signer + brightidContext?: string + brightidVerifier?: string + brightidSponsor?: string +}): Promise { let userRegistry: Contract - const [signer] = await ethers.getSigners() - - const lowercaseType = (userRegistryType || '').toLowerCase() - if (lowercaseType === 'brightid') { - if (!brightid) { - throw new Error('Missing BrightId parameter') + const registryType = (userRegistryType || '').toLowerCase() + if (registryType === 'brightid') { + if (!brightidContext) { + throw new Error('Missing BrightId context') + } + if (!brightidVerifier) { + throw new Error('Missing BrightId verifier address') + } + if (!brightidSponsor) { + throw new Error('Missing BrightId sponsor contract address') } const BrightIdUserRegistry = await ethers.getContractFactory( @@ -135,14 +156,14 @@ export async function deployUserRegistry( ) userRegistry = await BrightIdUserRegistry.deploy( - utils.formatBytes32String(brightid.context), - brightid.verifierAddress, - brightid.sponsor + utils.formatBytes32String(brightidContext), + brightidVerifier, + brightidSponsor ) } else { - const userRegistryName = userRegistryNames[lowercaseType] + const userRegistryName = userRegistryNames[registryType] if (!userRegistryName) { - throw new Error('unsupported user registry type: ' + lowercaseType) + throw new Error('unsupported user registry type: ' + registryType) } const UserRegistry = await ethers.getContractFactory( @@ -160,7 +181,10 @@ export async function deployUserRegistry( * Deploy a recipient registry * @param type recipient registry type, e.g. simple, optimistic, etc * @param controller the controller address of the registry + * @param deposit the optimistic recipient registry base deposit amount + * @param challengePeriod the optimistic recipient registry challenge period * @param ethers Hardhat ethers handle + * @param signer The deployer account * @returns the newly deployed registry contract */ export async function deployRecipientRegistry({ @@ -178,13 +202,13 @@ export async function deployRecipientRegistry({ ethers: HardhatEthersHelpers signer?: Signer }): Promise { - const lowercaseType = (type || '').toLowerCase() - const registryName = recipientRegistries[lowercaseType] + const registryType = (type || '').toLowerCase() + const registryName = recipientRegistries[registryType] if (!registryName) { - throw new Error('Unsupported recipient registry type: ' + type) + throw new Error('Unsupported recipient registry type: ' + registryType) } - if (lowercaseType === 'optimistic') { + if (registryType === 'optimistic') { if (!deposit) { throw new Error('Missing base deposit amount') } @@ -194,7 +218,7 @@ export async function deployRecipientRegistry({ } const args = - lowercaseType === 'simple' + registryType === 'simple' ? [controller] : [deposit, challengePeriod, controller] @@ -404,3 +428,56 @@ export async function deployMaciFactory({ return maciFactory } + +/** + * Set MACI parameters in the MACI factory + * @param maciFactory + * @param directory + * @param circuit + */ +export async function setMaciParameters( + maciFactory: Contract, + directory: string, + circuit = DEFAULT_CIRCUIT +): Promise { + if (!isPathExist(directory)) { + throw new Error(`Path ${directory} does not exists`) + } + const maciParameters = await MaciParameters.fromConfig(circuit, directory) + const setMaciTx = await maciFactory.setMaciParameters( + ...maciParameters.asContractParam() + ) + await setMaciTx.wait() + + return setMaciTx +} + +/** + * Set the coordinator address and maci public key in the funding round factory + * + * @param fundingRoundFactory funding round factory contract + * @param coordinatorAddress + * @param MaciPrivateKey + */ +export async function setCoordinator({ + clrfundContract, + coordinatorAddress, + coordinatorMacisk, +}: { + clrfundContract: Contract + coordinatorAddress: string + coordinatorMacisk?: string +}): Promise { + // Generate or use the passed in coordinator key + const privKey = coordinatorMacisk + ? PrivKey.unserialize(coordinatorMacisk) + : undefined + + const keypair = new Keypair(privKey) + const coordinatorPubKey = keypair.pubKey + const setCoordinatorTx = await clrfundContract.setCoordinator( + coordinatorAddress, + coordinatorPubKey.asContractParam() + ) + return setCoordinatorTx +} diff --git a/contracts/utils/maci.ts b/contracts/utils/maci.ts index 2447ec55f..a28ea28ca 100644 --- a/contracts/utils/maci.ts +++ b/contracts/utils/maci.ts @@ -9,6 +9,7 @@ import { hashLeftRight, LEAVES_PER_NODE, genTallyResultCommitment, + Keypair, } from '@clrfund/common' import * as os from 'os' import { @@ -46,6 +47,10 @@ export function getRecipientTallyResult( ): TallyResult { // Create proof for tally result const result = tally.results.tally[recipientIndex] + if (!result) { + throw Error(`Missing tally result for index ${recipientIndex}`) + } + const resultTree = new IncrementalQuinTree( recipientTreeDepth, BigInt(0), @@ -59,7 +64,9 @@ export function getRecipientTallyResult( return { recipientIndex, result, - proof: resultProof.pathElements.map((x) => x.map((y) => y.toString())), + proof: resultProof.pathElements.map((x: bigint[]) => + x.map(y => y.toString()) + ), } } @@ -79,14 +86,15 @@ export function getRecipientTallyResultsBatch( recipientStartIndex + batchSize > tallyCount ? tallyCount : recipientStartIndex + batchSize + for (let i = recipientStartIndex; i < lastIndex; i++) { tallyData.push(getRecipientTallyResult(i, recipientTreeDepth, tally)) } return [ - tallyData.map((item) => item.recipientIndex), - tallyData.map((item) => item.result), - tallyData.map((item) => item.proof), + tallyData.map(item => item.recipientIndex), + tallyData.map(item => item.result), + tallyData.map(item => item.proof), ] } @@ -209,6 +217,7 @@ type getGenProofArgsResult = { output: string privkey: string macistate: string + cleanup: boolean } /* @@ -241,6 +250,9 @@ export function getGenProofArgs( tallyWasm, } = getCircuitFiles(circuitType, circuitDirectory) + // do not cleanup threads after calling genProofs, + // the script will exit and end threads at the end + const cleanup = false return isOsArm ? { contract: maciAddress, @@ -255,6 +267,7 @@ export function getGenProofArgs( output: outputDir, privkey: coordinatorMacisk, macistate: maciStateFile, + cleanup, } : { contract: maciAddress, @@ -270,6 +283,7 @@ export function getGenProofArgs( output: outputDir, privkey: coordinatorMacisk, macistate: maciStateFile, + cleanup, } } @@ -299,4 +313,20 @@ export async function mergeMaciSubtrees( }) } +/** + * Create a random MACI private key + * + * @returns MACI serialized private key + */ +export function newMaciPrivateKey(): string { + const keypair = new Keypair() + const secretKey = keypair.privKey.serialize() + const publicKey = keypair.pubKey.serialize() + + console.log(`SecretKey: ${secretKey}`) + console.log(`PublicKey: ${publicKey}`) + + return secretKey +} + export { createMessage, getRecipientClaimData, bnSqrt, proveOnChain, genProofs } diff --git a/contracts/utils/misc.ts b/contracts/utils/misc.ts index 6eafc1586..8583d6190 100644 --- a/contracts/utils/misc.ts +++ b/contracts/utils/misc.ts @@ -1,4 +1,5 @@ import path from 'path' +import fs from 'fs' /** * Get the tally file path @@ -9,3 +10,13 @@ import path from 'path' export function getTalyFilePath(outputDir: string) { return path.join(outputDir, 'tally.json') } + +/** + * Check if the path exist + * + * @param path The path to check for existence + * @returns true if the path exists + */ +export function isPathExist(path: string): boolean { + return fs.existsSync(path) +} diff --git a/yarn.lock b/yarn.lock index 6e53fe0c1..ba2a36a59 100644 --- a/yarn.lock +++ b/yarn.lock @@ -622,22 +622,22 @@ "@chainsafe/persistent-merkle-tree" "^0.4.2" case "^1.6.3" -"@clrfund/maci-circuits@^1.1.7": - version "1.1.7" - resolved "https://registry.yarnpkg.com/@clrfund/maci-circuits/-/maci-circuits-1.1.7.tgz#08d2f19ccc0397d31b23c44cfb567a34df0f2c8f" - integrity sha512-tKwZsEX7J5504hMMKJRN9dwGqSwmU9SvogzHKFHljR7BHtkpeqmvzO5nVMtiSvEXTcNsddpdvKMbG6PDFS6/Iw== +"@clrfund/maci-circuits@^1.1.10": + version "1.1.10" + resolved "https://registry.yarnpkg.com/@clrfund/maci-circuits/-/maci-circuits-1.1.10.tgz#e9e5c5e45b1398e34a9fb991d7f77880eac84784" + integrity sha512-iG5yDgXw7f8a2Ra1jHldC/AE+alawalMHBoH6c5vZvZfu89zg6idD1HzxipSiVT5WXwxxNWxrqLkOED6fG+URg== dependencies: circomlib "https://github.com/weijiekoh/circomlib#ac85e82c1914d47789e2032fb11ceb2cfdd38a2b" shelljs "^0.8.3" snarkjs "^0.5.0" tmp "^0.2.1" -"@clrfund/maci-cli@^1.1.7": - version "1.1.7" - resolved "https://registry.yarnpkg.com/@clrfund/maci-cli/-/maci-cli-1.1.7.tgz#0201865716a985e8183777c5d425606d5da6c1d7" - integrity sha512-/4emd+m52uP6yDgSVkIS6vyQjNzHxCS/HE9ipXBxgQASrNWg2odE37RQcZpsy8P901ibDvHgUeWJWuyIM0rUbg== +"@clrfund/maci-cli@^1.1.10": + version "1.1.10" + resolved "https://registry.yarnpkg.com/@clrfund/maci-cli/-/maci-cli-1.1.10.tgz#861cd938669fd9492a512ddf6b0e25cd6f4f4f14" + integrity sha512-XaHGGRe5az3KCiLgNWGh+oqOR7UEFkGX9Puqiwz/yoLCLD37HIbOz+8TC8qVE9/D0Y0BlAOYoUbX0mm2WIbeUQ== dependencies: - "@clrfund/maci-circuits" "^1.1.7" + "@clrfund/maci-circuits" "^1.1.10" "@clrfund/maci-contracts" "^1.1.7" "@clrfund/maci-core" "^1.1.7" "@clrfund/maci-crypto" "^1.1.7" @@ -2242,20 +2242,20 @@ source-map "0.6.1" yaml-eslint-parser "^0.3.2" -"@intlify/core-base@9.7.0": - version "9.7.0" - resolved "https://registry.yarnpkg.com/@intlify/core-base/-/core-base-9.7.0.tgz#329f4225365187d9fbe7a3b5c5d8e897fa703b30" - integrity sha512-1tBnfnCI23jXqGW15cagCjn2GgD487VST1dMG8P5LRzrSfx+kUzqFyTrjMNIwgq1tVaF4HnDpFMUuyrzTLKphw== +"@intlify/core-base@9.7.1": + version "9.7.1" + resolved "https://registry.yarnpkg.com/@intlify/core-base/-/core-base-9.7.1.tgz#d31315a8e9cf027678b65a4155287143ab91b8fd" + integrity sha512-jPJTeECEhqQ7g//8g3Fb79j5SzSSRqlFCWD6pcX94uMLXU+L1m07gVZnnvzoJBnaMyJHiiwxOqZVfvu6rQfLvw== dependencies: - "@intlify/message-compiler" "9.7.0" - "@intlify/shared" "9.7.0" + "@intlify/message-compiler" "9.7.1" + "@intlify/shared" "9.7.1" -"@intlify/message-compiler@9.7.0": - version "9.7.0" - resolved "https://registry.yarnpkg.com/@intlify/message-compiler/-/message-compiler-9.7.0.tgz#6371127c5a2a4f50ec59728f85a7786e3478c931" - integrity sha512-/YdZCio2L2tCM5bZ2eMHbSEIQNPh1QqvZIOLI/yCVKXLscis7O0SsR2nmuU/DfCJ3iSeI8juw82C2wLvfsAeww== +"@intlify/message-compiler@9.7.1": + version "9.7.1" + resolved "https://registry.yarnpkg.com/@intlify/message-compiler/-/message-compiler-9.7.1.tgz#2cd5f26c6b9f19afffd62e69d192cc4e9e51ba9a" + integrity sha512-HfIr2Hn/K7b0Zv4kGqkxAxwtipyxAwhI9a3krN5cuhH/G9gkaik7of1PdzjR3Mix43t2onBiKYQyaU7mo7e0aA== dependencies: - "@intlify/shared" "9.7.0" + "@intlify/shared" "9.7.1" source-map-js "^1.0.2" "@intlify/message-compiler@next": @@ -2271,10 +2271,10 @@ resolved "https://registry.yarnpkg.com/@intlify/shared/-/shared-9.4.1.tgz#bd0d221aaac476b6778a10ddcd0472f812c64e27" integrity sha512-A51elBmZWf1FS80inf/32diO9DeXoqg9GR9aUDHFcfHoNDuT46Q+fpPOdj8jiJnSHSBh8E1E+6qWRhAZXdK3Ng== -"@intlify/shared@9.7.0": - version "9.7.0" - resolved "https://registry.yarnpkg.com/@intlify/shared/-/shared-9.7.0.tgz#96166a54b781997db92259772e9621d3f7dff9a5" - integrity sha512-PUkEuk//YKu4CHS5ah3mNa3XL/+TZj6rAY/6yYN+GCNFd2u+uWUkeuwE4Q6t8dydRWlErOePHHS0KyNoof/oBw== +"@intlify/shared@9.7.1": + version "9.7.1" + resolved "https://registry.yarnpkg.com/@intlify/shared/-/shared-9.7.1.tgz#a4902421aacda2d716981eb9528aef0163c7bb0a" + integrity sha512-CBKnHzlUYGrk5QII9q4nElAQKO5cX1rRx8VmSWXltyOZjbkGHXYQTHULn6KwRi+CypuBCfmPkyPBHMzosypIeg== "@intlify/unplugin-vue-i18n@^0.8.1": version "0.8.2" @@ -2749,11 +2749,11 @@ semver "^7.3.8" "@netlify/functions-utils@^5.2.37": - version "5.2.41" - resolved "https://registry.yarnpkg.com/@netlify/functions-utils/-/functions-utils-5.2.41.tgz#88bd31d0e8754724c1fffd5f687b3e78215e0d09" - integrity sha512-rvp11NquyVQ4d5rK6W6cP4M3iKyuOATqfEGlC7jLUZjMeNp4bQ5gPb5RaqqG5MHPY0KmdELMGGGgUxmCbh+Qxw== + version "5.2.42" + resolved "https://registry.yarnpkg.com/@netlify/functions-utils/-/functions-utils-5.2.42.tgz#ced51cc91dcd44d813662ce94e7081fbf91edc45" + integrity sha512-ltZ5Vtop8IiJOgSnKApxZdXArOq4cLDs9WpZ3Xoa1lJDojjyPvAH6Vpp3DxFAdi9a8pzYK70vTb048SzMwffnA== dependencies: - "@netlify/zip-it-and-ship-it" "9.26.2" + "@netlify/zip-it-and-ship-it" "9.26.4" cpy "^9.0.0" path-exists "^5.0.0" @@ -2868,7 +2868,7 @@ dependencies: execa "^6.0.0" -"@netlify/serverless-functions-api@^1.10.1", "@netlify/serverless-functions-api@^1.12.0": +"@netlify/serverless-functions-api@^1.10.1", "@netlify/serverless-functions-api@^1.12.1": version "1.12.1" resolved "https://registry.yarnpkg.com/@netlify/serverless-functions-api/-/serverless-functions-api-1.12.1.tgz#fb926f62377d84719c70f9a4493f3d04d6f6e7dc" integrity sha512-+G9cTltqfH54dF4dLqoEOV2P4qTIY8dM9blUVqg+NtVTXyuadzgpHqtffhVeyeLytVnTx1238kWJUe+sV3bnlg== @@ -2914,15 +2914,15 @@ urlpattern-polyfill "8.0.2" yargs "^17.0.0" -"@netlify/zip-it-and-ship-it@9.26.2": - version "9.26.2" - resolved "https://registry.yarnpkg.com/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-9.26.2.tgz#e531499922ed4e46fc5af603c5db2528ac3f6452" - integrity sha512-tsQbSfgOTEfZmSnUbCJiHDVyYDRN1gQQEWjAmJ90YI60ZloT4j7B4HlBt0gshU9pPCiDxoHhQMCk5pHg7//CSw== +"@netlify/zip-it-and-ship-it@9.26.4": + version "9.26.4" + resolved "https://registry.yarnpkg.com/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-9.26.4.tgz#aa855ab7603f83bdfcdee225f8d730ffb1979be6" + integrity sha512-lGdmHz5ppP6VmVEuvuL5nKP7a3/dUGRLBotqs2x/lwp35/1lbR+CIbXV6y8IYc4yn1hDfDtp+Lcqe6Np2KcFtg== dependencies: "@babel/parser" "^7.22.5" "@babel/types" "7.23.3" "@netlify/binary-info" "^1.0.0" - "@netlify/serverless-functions-api" "^1.12.0" + "@netlify/serverless-functions-api" "^1.12.1" "@vercel/nft" "^0.23.0" archiver "^6.0.0" common-path-prefix "^3.0.0" @@ -4097,9 +4097,9 @@ picomatch "^2.3.1" "@rushstack/eslint-patch@^1.2.0": - version "1.5.1" - resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.5.1.tgz#5f1b518ec5fa54437c0b7c4a821546c64fed6922" - integrity sha512-6i/8UoL0P5y4leBIGzvkZdS85RDMG9y1ihZzmTZQ5LdHUYmZ7pKFoj8X0236s3lusPs1Fa5HTQUpwI+UfTcmeA== + version "1.6.0" + resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.6.0.tgz#1898e7a7b943680d757417a47fb10f5fcc230b39" + integrity sha512-2/U3GXA6YiPYQDLGwtGlnNgKYBSwCFIHf8Y9LUY5VATHdtbLlU0Y1R3QoBnT0aB4qv/BEiVVsj7LJXoQCgJ2vA== "@samverschueren/stream-to-observable@^0.3.0": version "0.3.1" @@ -4494,6 +4494,13 @@ dependencies: "@types/node" "*" +"@types/commander@^2.12.2": + version "2.12.2" + resolved "https://registry.yarnpkg.com/@types/commander/-/commander-2.12.2.tgz#183041a23842d4281478fa5d23c5ca78e6fd08ae" + integrity sha512-0QEFiR8ljcHp9bAbWxecjVRuAMr16ivPiGOw6KFQBVrVd0RQIcM3xKdRisH2EDWgVWujiYtHwhSkSUoAAGzH7Q== + dependencies: + commander "*" + "@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" @@ -4624,9 +4631,9 @@ form-data "^4.0.0" "@types/node@*", "@types/node@>=12.12.47", "@types/node@>=13.7.0": - version "20.9.3" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.9.3.tgz#e089e1634436f676ff299596c9531bd2b59fffc6" - integrity sha512-nk5wXLAXGBKfrhLB0cyHGbSqopS+nz0BUgZkUQqSHSSgdee0kssp1IAqlQOu333bW+gMNs2QREx7iynm19Abxw== + version "20.10.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.10.0.tgz#16ddf9c0a72b832ec4fcce35b8249cf149214617" + integrity sha512-D0WfRmU9TQ8I9PFx9Yc+EBHw+vSpIub4IDvQivcp26PtPrdMGAq5SDcpXEo/epqa/DXotVpekHiLNTg3iaKXBQ== dependencies: undici-types "~5.26.4" @@ -7397,6 +7404,7 @@ buffer-from@^1.0.0: integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== "buffer-polyfill@npm:buffer@^6.0.3", buffer@^6.0.1, buffer@^6.0.3: + name buffer-polyfill version "6.0.3" resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== @@ -7644,9 +7652,9 @@ camelcase@^7.0.1: integrity sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw== caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30001538, caniuse-lite@^1.0.30001541: - version "1.0.30001563" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001563.tgz#aa68a64188903e98f36eb9c56e48fba0c1fe2a32" - integrity sha512-na2WUmOxnwIZtwnFI2CZ/3er0wdNzU7hN+cPYz/z2ajHThnkWjNBOpEPP4n+4r2WPM847JaMotaJE3bnfzjyKw== + version "1.0.30001564" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001564.tgz#eaa8bbc58c0cbccdcb7b41186df39dd2ba591889" + integrity sha512-DqAOf+rhof+6GVx1y+xzbFPeOumfQnhYzVnZD6LAXijR77yPtm9mfOcqOnT3mpnJiZVT+kwLAFnRlZcIz+c6bg== capital-case@^1.0.4: version "1.0.4" @@ -7968,24 +7976,13 @@ circomlib@^2.0.0, circomlib@^2.0.5: resolved "https://registry.yarnpkg.com/circomlib/-/circomlib-2.0.5.tgz#183c703e53ed7d011811842dbeeeb9819f4cc1d6" integrity sha512-O7NQ8OS+J4eshBuoy36z/TwQU0YHw8W3zxZcs4hVwpEll3e4hDm3mgkIPqItN8FDeLEKZFK3YeT/+k8TiLF3/A== -"circomlib@git+https://github.com/weijiekoh/circomlib.git#24ed08eee0bb613b8c0135d66c1013bd9f78d50a": - version "0.5.2" - uid "24ed08eee0bb613b8c0135d66c1013bd9f78d50a" - resolved "git+https://github.com/weijiekoh/circomlib.git#24ed08eee0bb613b8c0135d66c1013bd9f78d50a" - dependencies: - blake-hash "^1.1.0" - blake2b "^2.1.3" - circom "0.5.45" - ffjavascript "0.1.0" - web3-utils "^1.3.0" - -"circomlib@git+https://github.com/weijiekoh/circomlib.git#ac85e82c1914d47789e2032fb11ceb2cfdd38a2b": +"circomlib@https://github.com/weijiekoh/circomlib#ac85e82c1914d47789e2032fb11ceb2cfdd38a2b": version "1.0.0" - resolved "git+https://github.com/weijiekoh/circomlib.git#ac85e82c1914d47789e2032fb11ceb2cfdd38a2b" + resolved "https://github.com/weijiekoh/circomlib#ac85e82c1914d47789e2032fb11ceb2cfdd38a2b" -"circomlib@git://github.com/weijiekoh/circomlib.git#24ed08eee0bb613b8c0135d66c1013bd9f78d50a": +"circomlib@https://github.com/weijiekoh/circomlib.git#24ed08eee0bb613b8c0135d66c1013bd9f78d50a": version "0.5.2" - resolved "git://github.com/weijiekoh/circomlib.git#24ed08eee0bb613b8c0135d66c1013bd9f78d50a" + resolved "https://github.com/weijiekoh/circomlib.git#24ed08eee0bb613b8c0135d66c1013bd9f78d50a" dependencies: blake-hash "^1.1.0" blake2b "^2.1.3" @@ -8109,9 +8106,9 @@ cli-progress@^3.11.2, cli-progress@^3.12.0: string-width "^4.2.3" cli-spinners@^2.2.0, cli-spinners@^2.5.0, cli-spinners@^2.6.1: - version "2.9.1" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.1.tgz#9c0b9dad69a6d47cbb4333c14319b060ed395a35" - integrity sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ== + version "2.9.2" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.2.tgz#1773a8f4b9c4d6ac31563df53b3fc1d79462fe41" + integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg== cli-table3@^0.6.0: version "0.6.3" @@ -8364,6 +8361,11 @@ command-line-args@^4.0.7: find-replace "^1.0.3" typical "^2.6.1" +commander@*, commander@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-11.1.0.tgz#62fdce76006a68e5c1ab3314dc92e800eb83d906" + integrity sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ== + commander@10.0.1, commander@^10.0.0, commander@^10.0.1: version "10.0.1" resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" @@ -9540,9 +9542,9 @@ electron-fetch@^1.7.2: encoding "^0.1.13" electron-to-chromium@^1.3.47, electron-to-chromium@^1.4.535: - version "1.4.590" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.590.tgz#85a428fbabb77265a4804040837ed4f2538e3300" - integrity sha512-hohItzsQcG7/FBsviCYMtQwUSWvVF7NVqPOnJCErWsAshsP/CR2LAXdmq276RbESNdhxiAq5/vRo1g2pxGXVww== + version "1.4.594" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.594.tgz#f69f207fba80735a44a988df42f3f439115d0515" + integrity sha512-xT1HVAu5xFn7bDfkjGQi9dNpMqGchUkebwf1GL7cZN32NSwwlHRPMSDJ1KN6HkS0bWUtndbSQZqvpQftKG2uFQ== elegant-spinner@^1.0.1: version "1.0.1" @@ -10600,7 +10602,7 @@ ethereumjs-wallet@0.6.5: utf8 "^3.0.0" uuid "^3.3.2" -ethers@^5.0.1, ethers@^5.0.2, ethers@^5.0.3, ethers@^5.0.32, ethers@^5.4.7, ethers@^5.5.1, ethers@^5.5.2, ethers@^5.7.1, ethers@^5.7.2: +ethers@^5.0.1, ethers@^5.0.2, ethers@^5.0.3, ethers@^5.4.7, ethers@^5.5.1, ethers@^5.5.2, ethers@^5.7.1, ethers@^5.7.2: version "5.7.2" resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.2.tgz#3a7deeabbb8c030d4126b24f84e525466145872e" integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg== @@ -11196,7 +11198,7 @@ ffjavascript@0.2.60: wasmcurves "0.2.2" web-worker "^1.2.0" -ffjavascript@^0.2.30, ffjavascript@^0.2.38, ffjavascript@^0.2.39, ffjavascript@^0.2.45, ffjavascript@^0.2.48, ffjavascript@^0.2.57, ffjavascript@^0.2.62: +ffjavascript@^0.2.30, ffjavascript@^0.2.38, ffjavascript@^0.2.39, ffjavascript@^0.2.45, ffjavascript@^0.2.48, ffjavascript@^0.2.62: version "0.2.62" resolved "https://registry.yarnpkg.com/ffjavascript/-/ffjavascript-0.2.62.tgz#f508dfe662a70181598ec5eb8ce5127eb342f624" integrity sha512-uJ7MTrdzhX/3f+hxn0XhdXbJCqYZJSBB6y2/ui4t21vKYVjyTMlU80pPXu40ir6qpqbrdzUeKdlOdJ0aFG9UNA== @@ -12067,9 +12069,9 @@ globby@^13.0.0, globby@^13.1.1: merge2 "^1.4.1" slash "^4.0.0" -"gluegun@git+https://github.com/edgeandnode/gluegun.git#v4.3.1-pin-colors-dep": +"gluegun@https://github.com/edgeandnode/gluegun#v4.3.1-pin-colors-dep": version "4.3.1" - resolved "git+https://github.com/edgeandnode/gluegun.git#b34b9003d7bf556836da41b57ef36eb21570620a" + resolved "https://github.com/edgeandnode/gluegun#b34b9003d7bf556836da41b57ef36eb21570620a" dependencies: apisauce "^1.0.1" app-module-path "^2.2.0" @@ -15307,9 +15309,9 @@ lru-cache@5.1.1, lru-cache@^5.1.1: yallist "^3.0.2" lru-cache@^10.0.2, "lru-cache@^9.1.1 || ^10.0.0": - version "10.0.3" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.0.3.tgz#b40014d7d2d16d94130b87297a04a1f24874ae7c" - integrity sha512-B7gr+F6MkqB3uzINHXNctGieGsRTMwIBgxkp0yq/5BwcuDzD4A8wQpHQW6vDAm1uKSLQghmRdD9sKqf2vJ1cEg== + version "10.1.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.1.0.tgz#2098d41c2dc56500e6c88584aa656c84de7d0484" + integrity sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag== lru-cache@^3.2.0: version "3.2.0" @@ -15350,24 +15352,6 @@ maci-common@^1.1.2: resolved "https://registry.yarnpkg.com/maci-common/-/maci-common-1.1.2.tgz#8105633d2425a3ce7cf7b3d6700cf82987287b08" integrity sha512-KFaKDT6+QlfAX3B3EZVmitdQ2SD76qouQneFwm7OFfu4lF4RWWEak8J4F/lbS8fqJ1wG4PGTgTv7H9swJycCBw== -maci-crypto@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/maci-crypto/-/maci-crypto-1.1.1.tgz#6189304ba3d05f56cd58a28117c0e821133ef386" - integrity sha512-wdIhXm2VG/7IS9UT7lClmVLhXUrhRZ0eciEYetWvRkqGG+405aNj/Uo0sb7/PlMjf0M85sclyKYyfR2ooNd3mQ== - dependencies: - blake-hash "^1.1.0" - circomlib "git://github.com/weijiekoh/circomlib.git#24ed08eee0bb613b8c0135d66c1013bd9f78d50a" - ethers "^5.0.32" - ffjavascript "^0.2.57" - optimisedmt "^0.0.7" - -maci-domainobjs@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/maci-domainobjs/-/maci-domainobjs-1.1.1.tgz#95b33da218737bf6017cdc89f184348d049e2571" - integrity sha512-mmjcxxaTyXIqcskNKo4WyIG12MMzwXSTzTO6aqhRcQbfn3FvnM8VdUS0/1pIQmhzDOQdFRuz4R4IvlFdaiFbYQ== - dependencies: - base64url "^3.0.1" - macos-release@^3.1.0: version "3.2.0" resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-3.2.0.tgz#dcee82b6a4932971b1538dbf6f3aabc4a903b613" @@ -16540,9 +16524,9 @@ node-forge@^1.3.1: integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== node-gyp-build@^4.2.0, node-gyp-build@^4.2.2, node-gyp-build@^4.3.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.7.0.tgz#749f0033590b2a89ac8edb5e0775f95f5ae86d15" - integrity sha512-PbZERfeFdrHQOOXiAKOY0VPbykZy90ndPKk0d+CFDegTKmWp1VgOTz2xACVbr1BjCWxrQp68CXtvNsveFhqDJg== + version "4.7.1" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.7.1.tgz#cd7d2eb48e594874053150a9418ac85af83ca8f7" + integrity sha512-wTSrZ+8lsRRa3I3H8Xr65dLWSgCvY2l4AOnaeKdPA9TB/WYMPaTcrzf3rXvFoVvjKNVnu0CcWSx54qq9GKRUYg== node-gyp-build@~4.1.0: version "4.1.1" @@ -21132,21 +21116,21 @@ undici-types@~5.26.4: integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== undici@^5.14.0: - version "5.27.2" - resolved "https://registry.yarnpkg.com/undici/-/undici-5.27.2.tgz#a270c563aea5b46cc0df2550523638c95c5d4411" - integrity sha512-iS857PdOEy/y3wlM3yRp+6SNQQ6xU0mmZcwRSriqk+et/cwWAtwmIGf6WkoDN2EK/AMdCO/dfXzIwi+rFMrjjQ== + version "5.28.0" + resolved "https://registry.yarnpkg.com/undici/-/undici-5.28.0.tgz#09f6aa4a6f34de8996eec585fe4ceebaa9ef3f36" + integrity sha512-gM12DkXhlAc5+/TPe60iy9P6ETgVfqTuRJ6aQ4w8RYu0MqKuXhaq3/b86GfzDQnNA3NUO6aUNdvevrKH59D0Nw== dependencies: "@fastify/busboy" "^2.0.0" unenv@^1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/unenv/-/unenv-1.7.4.tgz#a0e5a78de2c7c3c4563c06ba9763c96c59db3333" - integrity sha512-fjYsXYi30It0YCQYqLOcT6fHfMXsBr2hw9XC7ycf8rTG7Xxpe3ZssiqUnD0khrjiZEmkBXWLwm42yCSCH46fMw== + version "1.8.0" + resolved "https://registry.yarnpkg.com/unenv/-/unenv-1.8.0.tgz#0f860d5278405700bd95d47b23bc01f3a735d68c" + integrity sha512-uIGbdCWZfhRRmyKj1UioCepQ0jpq638j/Cf0xFTn4zD1nGJ2lSdzYHLzfdXN791oo/0juUiSWW1fBklXMTsuqg== dependencies: consola "^3.2.3" - defu "^6.1.2" + defu "^6.1.3" mime "^3.0.0" - node-fetch-native "^1.4.0" + node-fetch-native "^1.4.1" pathe "^1.1.1" unimport@^1.0.1: @@ -21638,12 +21622,12 @@ vue-i18n-extract@^2.0.7: js-yaml "^4.1.0" vue-i18n@9: - version "9.7.0" - resolved "https://registry.yarnpkg.com/vue-i18n/-/vue-i18n-9.7.0.tgz#c88592ade72c651d6879895244d348f2892c5646" - integrity sha512-8Z8kSz9U2juzuAf+6mjW1HTd5pIlYuFJZkC+HvYOglFdpzwc2rTUGjxKwN8xGdtGur1MFnyJ44TSr+TksJtY8A== + version "9.7.1" + resolved "https://registry.yarnpkg.com/vue-i18n/-/vue-i18n-9.7.1.tgz#41393b066f6ff69d9be2ba31a59b043263c77289" + integrity sha512-A6DzWqJQMdzBj+392+g3zIgGV0FnFC7o/V+txs5yIALANEZzY6ZV8hM2wvZR3nTbQI7dntAmzBHMeoEteJO0kQ== dependencies: - "@intlify/core-base" "9.7.0" - "@intlify/shared" "9.7.0" + "@intlify/core-base" "9.7.1" + "@intlify/shared" "9.7.1" "@vue/devtools-api" "^6.5.0" vue-meta@3.0.0-alpha.8: @@ -22309,9 +22293,9 @@ webpack-sources@^3.2.3: integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== webpack-virtual-modules@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/webpack-virtual-modules/-/webpack-virtual-modules-0.6.0.tgz#95eb2cb160a8cb84a73bdc2b5c806693f690ad35" - integrity sha512-KnaMTE6EItz/f2q4Gwg5/rmeKVi79OR58NoYnwDJqCk9ywMtTGbBnBcfoBtN4QbYu0lWXvyMoH2Owxuhe4qI6Q== + version "0.6.1" + resolved "https://registry.yarnpkg.com/webpack-virtual-modules/-/webpack-virtual-modules-0.6.1.tgz#ac6fdb9c5adb8caecd82ec241c9631b7a3681b6f" + integrity sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg== websocket@1.0.32: version "1.0.32" From 89b5e0331cf3f02128d7c77c228091328df42b3f Mon Sep 17 00:00:00 2001 From: yuetloo Date: Mon, 27 Nov 2023 01:51:06 -0500 Subject: [PATCH 090/338] remove commander types --- contracts/package.json | 1 - yarn.lock | 22946 --------------------------------------- 2 files changed, 22947 deletions(-) delete mode 100644 yarn.lock diff --git a/contracts/package.json b/contracts/package.json index 6dc059945..9504ec3eb 100644 --- a/contracts/package.json +++ b/contracts/package.json @@ -33,7 +33,6 @@ "@nomiclabs/hardhat-ganache": "^2.0.1", "@nomiclabs/hardhat-waffle": "^2.0.3", "@types/chai": "^4.2.11", - "@types/commander": "^2.12.2", "@types/mocha": "^7.0.2", "@types/node": "^13.9.2", "@typescript-eslint/eslint-plugin": "^5.44.0", diff --git a/yarn.lock b/yarn.lock deleted file mode 100644 index ba2a36a59..000000000 --- a/yarn.lock +++ /dev/null @@ -1,22946 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@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" - integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== - -"@alloc/quick-lru@^5.2.0": - version "5.2.0" - resolved "https://registry.yarnpkg.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz#7bf68b20c0a350f936915fcae06f58e32007ce30" - integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw== - -"@ampproject/remapping@^2.2.0": - version "2.2.1" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" - integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== - dependencies: - "@jridgewell/gen-mapping" "^0.3.0" - "@jridgewell/trace-mapping" "^0.3.9" - -"@antfu/utils@^0.7.0", "@antfu/utils@^0.7.2": - version "0.7.6" - resolved "https://registry.yarnpkg.com/@antfu/utils/-/utils-0.7.6.tgz#30a046419b9e1ecd276e53d41ab68fb6c558c04d" - integrity sha512-pvFiLP2BeOKA/ZOS6jxx4XhKzdVLHDhGlFEaZ2flWWYf2xOqVniqpk38I04DFRyz+L0ASggl7SkItTc+ZLju4w== - -"@ardatan/relay-compiler@12.0.0": - version "12.0.0" - resolved "https://registry.yarnpkg.com/@ardatan/relay-compiler/-/relay-compiler-12.0.0.tgz#2e4cca43088e807adc63450e8cab037020e91106" - integrity sha512-9anThAaj1dQr6IGmzBMcfzOQKTa5artjuPmw8NYK/fiGEMjADbSguBY2FMDykt+QhilR3wc9VA/3yVju7JHg7Q== - dependencies: - "@babel/core" "^7.14.0" - "@babel/generator" "^7.14.0" - "@babel/parser" "^7.14.0" - "@babel/runtime" "^7.0.0" - "@babel/traverse" "^7.14.0" - "@babel/types" "^7.0.0" - babel-preset-fbjs "^3.4.0" - chalk "^4.0.0" - fb-watchman "^2.0.0" - fbjs "^3.0.0" - glob "^7.1.1" - immutable "~3.7.6" - invariant "^2.2.4" - nullthrows "^1.1.1" - relay-runtime "12.0.0" - signedsource "^1.0.0" - yargs "^15.3.1" - -"@ardatan/sync-fetch@^0.0.1": - version "0.0.1" - resolved "https://registry.yarnpkg.com/@ardatan/sync-fetch/-/sync-fetch-0.0.1.tgz#3385d3feedceb60a896518a1db857ec1e945348f" - integrity sha512-xhlTqH0m31mnsG0tIP4ETgfSB6gXDaYYsUWTrlUV93fFQPI9dd8hE0Ot6MHLCtqgB32hwJAC3YZMWlXZw7AleA== - dependencies: - node-fetch "^2.6.1" - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.22.13", "@babel/code-frame@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.4.tgz#03ae5af150be94392cb5c7ccd97db5a19a5da6aa" - integrity sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA== - dependencies: - "@babel/highlight" "^7.23.4" - chalk "^2.4.2" - -"@babel/compat-data@^7.20.5", "@babel/compat-data@^7.22.9": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.3.tgz#3febd552541e62b5e883a25eb3effd7c7379db11" - integrity sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ== - -"@babel/core@^7.14.0": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.3.tgz#5ec09c8803b91f51cc887dedc2654a35852849c9" - integrity sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew== - dependencies: - "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.22.13" - "@babel/generator" "^7.23.3" - "@babel/helper-compilation-targets" "^7.22.15" - "@babel/helper-module-transforms" "^7.23.3" - "@babel/helpers" "^7.23.2" - "@babel/parser" "^7.23.3" - "@babel/template" "^7.22.15" - "@babel/traverse" "^7.23.3" - "@babel/types" "^7.23.3" - 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.14.0", "@babel/generator@^7.18.13", "@babel/generator@^7.23.3", "@babel/generator@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.4.tgz#4a41377d8566ec18f807f42962a7f3551de83d1c" - integrity sha512-esuS49Cga3HcThFNebGhlgsrVLkvhqvYDTzgjfFFlHJcIfLe5jFmRRfCQ1KuBfc4Jrtn3ndLgKWAKjBE+IraYQ== - dependencies: - "@babel/types" "^7.23.4" - "@jridgewell/gen-mapping" "^0.3.2" - "@jridgewell/trace-mapping" "^0.3.17" - jsesc "^2.5.1" - -"@babel/helper-annotate-as-pure@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" - integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.22.15": - 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== - dependencies: - "@babel/compat-data" "^7.22.9" - "@babel/helper-validator-option" "^7.22.15" - browserslist "^4.21.9" - lru-cache "^5.1.1" - semver "^6.3.1" - -"@babel/helper-create-class-features-plugin@^7.18.6": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz#97a61b385e57fe458496fad19f8e63b63c867de4" - integrity sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" - "@babel/helper-member-expression-to-functions" "^7.22.15" - "@babel/helper-optimise-call-expression" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.9" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - semver "^6.3.1" - -"@babel/helper-environment-visitor@^7.22.20", "@babel/helper-environment-visitor@^7.22.5": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" - integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== - -"@babel/helper-function-name@^7.22.5", "@babel/helper-function-name@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" - 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.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" - integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-member-expression-to-functions@^7.22.15": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz#9263e88cc5e41d39ec18c9a3e0eced59a3e7d366" - integrity sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA== - dependencies: - "@babel/types" "^7.23.0" - -"@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" - 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.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1" - 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-optimise-call-expression@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e" - integrity sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.8.0": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" - integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== - -"@babel/helper-replace-supers@^7.22.20", "@babel/helper-replace-supers@^7.22.9": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz#e37d367123ca98fe455a9887734ed2e16eb7a793" - integrity sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw== - dependencies: - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-member-expression-to-functions" "^7.22.15" - "@babel/helper-optimise-call-expression" "^7.22.5" - -"@babel/helper-simple-access@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" - integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-skip-transparent-expression-wrappers@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz#007f15240b5751c537c40e77abb4e89eeaaa8847" - integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-split-export-declaration@^7.22.6": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" - integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-string-parser@^7.22.5", "@babel/helper-string-parser@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz#9478c707febcbbe1ddb38a3d91a2e054ae622d83" - integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ== - -"@babel/helper-validator-identifier@^7.22.19", "@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" - 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/helpers@^7.23.2": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.4.tgz#7d2cfb969aa43222032193accd7329851facf3c1" - integrity sha512-HfcMizYz10cr3h29VqyfGL6ZWIjTwWfvYBMsBVGwpcbhNGe3wQ1ZXZRPzZoAHhd9OqHadHqjQ89iVKINXnbzuw== - dependencies: - "@babel/template" "^7.22.15" - "@babel/traverse" "^7.23.4" - "@babel/types" "^7.23.4" - -"@babel/highlight@^7.23.4": - version "7.23.4" - 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.14.0", "@babel/parser@^7.16.8", "@babel/parser@^7.21.8", "@babel/parser@^7.22.15", "@babel/parser@^7.22.5", "@babel/parser@^7.23.0", "@babel/parser@^7.23.3", "@babel/parser@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.4.tgz#409fbe690c333bb70187e2de4021e1e47a026661" - integrity sha512-vf3Xna6UEprW+7t6EtOmFpHNAuxw3xqPZghy+brsnusscJRW5BMUzzHZc5ICjULee81WeUV2jjakG09MDglJXQ== - -"@babel/plugin-proposal-class-properties@^7.0.0": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" - integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-proposal-object-rest-spread@^7.0.0": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz#aa662940ef425779c75534a5c41e9d936edc390a" - integrity sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg== - dependencies: - "@babel/compat-data" "^7.20.5" - "@babel/helper-compilation-targets" "^7.20.7" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.20.7" - -"@babel/plugin-syntax-class-properties@^7.0.0": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" - integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-syntax-flow@^7.0.0", "@babel/plugin-syntax-flow@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.23.3.tgz#084564e0f3cc21ea6c70c44cff984a1c0509729a" - integrity sha512-YZiAIpkJAwQXBJLIQbRFayR5c+gJ35Vcz3bg954k7cd73zqjvhacJuL9RbrzPz8qPmZdgqP6EUKwy0PCNhaaPA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-syntax-import-assertions@^7.20.0": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz#9c05a7f592982aff1a2768260ad84bcd3f0c77fc" - integrity sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz#8f2e4f8a9b5f9aa16067e142c1ac9cd9f810f473" - integrity sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" - integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-transform-arrow-functions@^7.0.0": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz#94c6dcfd731af90f27a79509f9ab7fb2120fc38b" - integrity sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-block-scoped-functions@^7.0.0": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz#fe1177d715fb569663095e04f3598525d98e8c77" - integrity sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-block-scoping@^7.0.0": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz#b2d38589531c6c80fbe25e6b58e763622d2d3cf5" - integrity sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-classes@^7.0.0": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.3.tgz#73380c632c095b03e8503c24fd38f95ad41ffacb" - integrity sha512-FGEQmugvAEu2QtgtU0uTASXevfLMFfBeVCIIdcQhn/uBQsMTjBajdnAtanQlOcuihWh10PZ7+HWvc7NtBwP74w== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-compilation-targets" "^7.22.15" - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-function-name" "^7.23.0" - "@babel/helper-optimise-call-expression" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.20" - "@babel/helper-split-export-declaration" "^7.22.6" - globals "^11.1.0" - -"@babel/plugin-transform-computed-properties@^7.0.0": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz#652e69561fcc9d2b50ba4f7ac7f60dcf65e86474" - integrity sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/template" "^7.22.15" - -"@babel/plugin-transform-destructuring@^7.0.0": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz#8c9ee68228b12ae3dff986e56ed1ba4f3c446311" - integrity sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-flow-strip-types@^7.0.0": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.23.3.tgz#cfa7ca159cc3306fab526fc67091556b51af26ff" - integrity sha512-26/pQTf9nQSNVJCrLB1IkHUKyPxR+lMrH2QDPG89+Znu9rAMbtrybdbWeE9bb7gzjmE5iXHEY+e0HUwM6Co93Q== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-flow" "^7.23.3" - -"@babel/plugin-transform-for-of@^7.0.0": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.3.tgz#afe115ff0fbce735e02868d41489093c63e15559" - integrity sha512-X8jSm8X1CMwxmK878qsUGJRmbysKNbdpTv/O1/v0LuY/ZkZrng5WYiekYSdg9m09OTmDDUWeEDsTE+17WYbAZw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-function-name@^7.0.0": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz#8f424fcd862bf84cb9a1a6b42bc2f47ed630f8dc" - integrity sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw== - dependencies: - "@babel/helper-compilation-targets" "^7.22.15" - "@babel/helper-function-name" "^7.23.0" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-literals@^7.0.0": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz#8214665f00506ead73de157eba233e7381f3beb4" - integrity sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-member-expression-literals@^7.0.0": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz#e37b3f0502289f477ac0e776b05a833d853cabcc" - integrity sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-modules-commonjs@^7.0.0": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz#661ae831b9577e52be57dd8356b734f9700b53b4" - integrity sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA== - dependencies: - "@babel/helper-module-transforms" "^7.23.3" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-simple-access" "^7.22.5" - -"@babel/plugin-transform-object-super@^7.0.0": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz#81fdb636dcb306dd2e4e8fd80db5b2362ed2ebcd" - integrity sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.20" - -"@babel/plugin-transform-parameters@^7.0.0", "@babel/plugin-transform-parameters@^7.20.7": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz#83ef5d1baf4b1072fa6e54b2b0999a7b2527e2af" - integrity sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-property-literals@^7.0.0": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz#54518f14ac4755d22b92162e4a852d308a560875" - integrity sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-react-display-name@^7.0.0": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.23.3.tgz#70529f034dd1e561045ad3c8152a267f0d7b6200" - integrity sha512-GnvhtVfA2OAtzdX58FJxU19rhoGeQzyVndw3GgtdECQvQFXPEZIOVULHVZGAYmOgmqjXpVpfocAbSjh99V/Fqw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-react-jsx@^7.0.0": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.23.4.tgz#393f99185110cea87184ea47bcb4a7b0c2e39312" - integrity sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-module-imports" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-jsx" "^7.23.3" - "@babel/types" "^7.23.4" - -"@babel/plugin-transform-shorthand-properties@^7.0.0": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz#97d82a39b0e0c24f8a981568a8ed851745f59210" - integrity sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-spread@^7.0.0": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz#41d17aacb12bde55168403c6f2d6bdca563d362c" - integrity sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" - -"@babel/plugin-transform-template-literals@^7.0.0": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz#5f0f028eb14e50b5d0f76be57f90045757539d07" - integrity sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/runtime@^7.0.0": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.4.tgz#36fa1d2b36db873d25ec631dcc4923fdc1cf2e2e" - integrity sha512-2Yv65nlWnWlSpe3fXEyX5i7fx5kIKo4Qbcj+hMO0odwaneFjfXw5fdum+4yL20O0QiaHpia0cYQ9xpNMqrBwHg== - dependencies: - regenerator-runtime "^0.14.0" - -"@babel/template@^7.18.10", "@babel/template@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" - integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== - dependencies: - "@babel/code-frame" "^7.22.13" - "@babel/parser" "^7.22.15" - "@babel/types" "^7.22.15" - -"@babel/traverse@^7.14.0", "@babel/traverse@^7.16.8", "@babel/traverse@^7.23.3", "@babel/traverse@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.4.tgz#c2790f7edf106d059a0098770fe70801417f3f85" - integrity sha512-IYM8wSUwunWTB6tFC2dkKZhxbIjHoWemdK+3f8/wq8aKhbUscxD5MX72ubd90fxvFknaLPeGw5ycU84V1obHJg== - dependencies: - "@babel/code-frame" "^7.23.4" - "@babel/generator" "^7.23.4" - "@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.4" - "@babel/types" "^7.23.4" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/types@7.22.19": - version "7.22.19" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.19.tgz#7425343253556916e440e662bb221a93ddb75684" - integrity sha512-P7LAw/LbojPzkgp5oznjE6tQEIWbp4PkkfrZDINTro9zgBRtI324/EYsiSI7lhPbpIQ+DCeR2NNmMWANGGfZsg== - dependencies: - "@babel/helper-string-parser" "^7.22.5" - "@babel/helper-validator-identifier" "^7.22.19" - to-fast-properties "^2.0.0" - -"@babel/types@7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.3.tgz#d5ea892c07f2ec371ac704420f4dcdb07b5f9598" - integrity sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw== - dependencies: - "@babel/helper-string-parser" "^7.22.5" - "@babel/helper-validator-identifier" "^7.22.20" - to-fast-properties "^2.0.0" - -"@babel/types@^7.0.0", "@babel/types@^7.16.8", "@babel/types@^7.18.13", "@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.3", "@babel/types@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.4.tgz#7206a1810fc512a7f7f7d4dace4cb4c1c9dbfb8e" - integrity sha512-7uIFwVYpoplT5jp/kVv6EF93VaJ8H+Yn5IczYiaAi98ajzjfoZfslet/e0sLh+wVBjb2qqIut1b0S26VSafsSQ== - dependencies: - "@babel/helper-string-parser" "^7.23.4" - "@babel/helper-validator-identifier" "^7.22.20" - to-fast-properties "^2.0.0" - -"@bugsnag/browser@^7.20.2", "@bugsnag/browser@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@bugsnag/browser/-/browser-7.21.0.tgz#ee623ffa57c0fe2e2e4644a24bfc2008f18f83ef" - integrity sha512-mJ6r6SXpts+hdSnDNmTR35lZ+95BthqXpgBrDwquDCoY++zQ4OuzrkA/HZYD/rfpdSpgb7lO+AAlD7qrd9IylA== - dependencies: - "@bugsnag/core" "^7.19.0" - -"@bugsnag/core@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@bugsnag/core/-/core-7.19.0.tgz#7663a4addb1322e8315a4012dc9db2aad3fea53b" - integrity sha512-2KGwdaLD9PhR7Wk7xPi3jGuGsKTatc/28U4TOZIDU3CgC2QhGjubwiXSECel5gwxhZ3jACKcMKSV2ovHhv1NrA== - dependencies: - "@bugsnag/cuid" "^3.0.0" - "@bugsnag/safe-json-stringify" "^6.0.0" - error-stack-parser "^2.0.3" - iserror "0.0.2" - stack-generator "^2.0.3" - -"@bugsnag/cuid@^3.0.0": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@bugsnag/cuid/-/cuid-3.0.2.tgz#544f8e6e7e3768c8cb618ca5c5fb1eea6aacbb7e" - integrity sha512-cIwzC93r3PQ/INeuwtZwkZIG2K8WWN0rRLZQhu+mr48Ay+i6sEki4GYfTsflse7hZ1BeDWrNb/Q9vgY3B31xHQ== - -"@bugsnag/js@7.20.2": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@bugsnag/js/-/js-7.20.2.tgz#218ec77d1df8b70d9353d4f2f2ccd3e51a331786" - integrity sha512-Q08k0h0h6NFwFGkFmib39Uln2WpvJdqT1EGF1JlyYiGW03Y+VopVb9r37pZrRrN9IY08mxaIEO8la5xeaWAs6A== - dependencies: - "@bugsnag/browser" "^7.20.2" - "@bugsnag/node" "^7.19.0" - -"@bugsnag/js@^7.0.0", "@bugsnag/js@^7.20.0": - version "7.22.2" - resolved "https://registry.yarnpkg.com/@bugsnag/js/-/js-7.22.2.tgz#4cd91c77e9e4657b8a952fad34eee40382753c81" - integrity sha512-HgKzjkwzMQKyokIFnyRMChONxM9AoR24Sk76tWcqIdFagE0bhnTgSn3qYT2bRVNODtWyQHiW6qjOOpgOM3Mjlw== - dependencies: - "@bugsnag/browser" "^7.21.0" - "@bugsnag/node" "^7.19.0" - -"@bugsnag/node@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@bugsnag/node/-/node-7.19.0.tgz#6a8e5d0f5e73a1d0bad19537def1a7ff65e19787" - integrity sha512-c4snyxx5d/fsMogmgehFBGc//daH6+4XCplia4zrEQYltjaQ+l8ud0dPx623DgJl/2j1+2zlRc7y7IHSd7Gm5w== - dependencies: - "@bugsnag/core" "^7.19.0" - byline "^5.0.0" - error-stack-parser "^2.0.2" - iserror "^0.0.2" - pump "^3.0.0" - stack-generator "^2.0.3" - -"@bugsnag/safe-json-stringify@^6.0.0": - version "6.0.0" - resolved "https://registry.yarnpkg.com/@bugsnag/safe-json-stringify/-/safe-json-stringify-6.0.0.tgz#22abdcd83e008c369902976730c34c150148a758" - integrity sha512-htzFO1Zc57S8kgdRK9mLcPVTW1BY2ijfH7Dk2CeZmspTWKdKqSo1iwmqrq2WtRjFlo8aRZYgLX0wFrDXF/9DLA== - -"@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" - 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" - 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" - 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" - integrity sha512-/NL3Lh8K+0q7A3LsiFq09YXS9fPE+ead2rr7vM2QK8PLzrNsw3uqrif9bpRX5UxgeRjM+vYi+boCM3+GM4ovXg== - dependencies: - "@chainsafe/as-sha256" "^0.3.1" - "@chainsafe/persistent-merkle-tree" "^0.5.0" - -"@chainsafe/ssz@^0.9.2": - version "0.9.4" - 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" - "@chainsafe/persistent-merkle-tree" "^0.4.2" - case "^1.6.3" - -"@clrfund/maci-circuits@^1.1.10": - version "1.1.10" - resolved "https://registry.yarnpkg.com/@clrfund/maci-circuits/-/maci-circuits-1.1.10.tgz#e9e5c5e45b1398e34a9fb991d7f77880eac84784" - integrity sha512-iG5yDgXw7f8a2Ra1jHldC/AE+alawalMHBoH6c5vZvZfu89zg6idD1HzxipSiVT5WXwxxNWxrqLkOED6fG+URg== - dependencies: - circomlib "https://github.com/weijiekoh/circomlib#ac85e82c1914d47789e2032fb11ceb2cfdd38a2b" - shelljs "^0.8.3" - snarkjs "^0.5.0" - tmp "^0.2.1" - -"@clrfund/maci-cli@^1.1.10": - version "1.1.10" - resolved "https://registry.yarnpkg.com/@clrfund/maci-cli/-/maci-cli-1.1.10.tgz#861cd938669fd9492a512ddf6b0e25cd6f4f4f14" - integrity sha512-XaHGGRe5az3KCiLgNWGh+oqOR7UEFkGX9Puqiwz/yoLCLD37HIbOz+8TC8qVE9/D0Y0BlAOYoUbX0mm2WIbeUQ== - dependencies: - "@clrfund/maci-circuits" "^1.1.10" - "@clrfund/maci-contracts" "^1.1.7" - "@clrfund/maci-core" "^1.1.7" - "@clrfund/maci-crypto" "^1.1.7" - "@clrfund/maci-domainobjs" "^1.1.7" - "@nomiclabs/hardhat-ethers" "^2.0.2" - argparse "^1.0.10" - circom_runtime "^0.1.22" - circomlib "^2.0.5" - ethers "^5.4.7" - ffiasm "0.1.3" - hardhat "^2.12.6" - js-yaml "4.0.0" - maci-common "^1.1.2" - prompt-async "^0.9.9" - shelljs "^0.8.4" - snarkjs "^0.5.0" - source-map-support "^0.5.19" - typescript "^4.2.3" - web3 "^1.3.4" - xmlhttprequest "1.8.0" - zkey-manager "^0.1.1" - -"@clrfund/maci-contracts@^1.1.7", "@clrfund/maci-contracts@^1.1.9": - version "1.1.9" - resolved "https://registry.yarnpkg.com/@clrfund/maci-contracts/-/maci-contracts-1.1.9.tgz#baaa07c586d7851bfdefe6124fe048f0140c53f8" - integrity sha512-X6JQApedLX+LHsLz2bl1FdtMht8jP4pAhhGUSTJyW8mpwksKYINQt/EsJuaD2RPoyC2arp/VhpvSh5FHtZ2X2w== - dependencies: - "@clrfund/maci-core" "^1.1.7" - "@clrfund/maci-crypto" "^1.1.7" - "@clrfund/maci-domainobjs" "^1.1.7" - "@nomicfoundation/hardhat-chai-matchers" "^1.0.0" - "@nomiclabs/hardhat-ethers" "^2.0.0" - "@openzeppelin/contracts" "^4.8.0" - circomlib "^2.0.5" - circomlibjs "^0.1.7" - ethers "^5.4.7" - hardhat "^2.12.6" - hardhat-artifactor "^0.2.0" - hardhat-contract-sizer "^2.10.0" - module-alias "^2.2.2" - typescript "^4.2.3" - -"@clrfund/maci-core@^1.1.7": - version "1.1.7" - resolved "https://registry.yarnpkg.com/@clrfund/maci-core/-/maci-core-1.1.7.tgz#0de2bc16077ed29511b4a1c086692f4a22499923" - integrity sha512-+xGTyNMbvd2qz/qk15D9YATw8Ig6eMiRWgbz0xXGUSyrHaQGvEfmzuK4c6gS2h5rDSXj+q7i0XzhLbP+t13Z/A== - dependencies: - "@clrfund/maci-crypto" "^1.1.7" - "@clrfund/maci-domainobjs" "^1.1.7" - module-alias "^2.2.2" - -"@clrfund/maci-crypto@^1.1.7": - version "1.1.7" - resolved "https://registry.yarnpkg.com/@clrfund/maci-crypto/-/maci-crypto-1.1.7.tgz#6841f532fdc002d311d5576b5d5342a24f092bfe" - integrity sha512-crx8QtIrtYj3Oq6G7HkRWDi/zWCdBy2gYbp080Myf1ol9MP3rCtO5uc013JuuFReX04pbDDWxOJ6AQuQ99OR0g== - dependencies: - blake-hash "^1.1.0" - circomlib "https://github.com/weijiekoh/circomlib.git#24ed08eee0bb613b8c0135d66c1013bd9f78d50a" - ethers "^5.4.7" - ffjavascript "^0.2.62" - optimisedmt "^0.0.7" - -"@clrfund/maci-domainobjs@^1.1.7": - version "1.1.7" - resolved "https://registry.yarnpkg.com/@clrfund/maci-domainobjs/-/maci-domainobjs-1.1.7.tgz#874d1f87f399bf94c180f341dfc2414b4172cd87" - integrity sha512-nR24qELBjSdDshSCIBs3IyuRoBNPApv44C8NYqapNTDTJndECYqdTz6Rm/eSGr4acJIAOnMb8XB1cm1WpVFCoA== - dependencies: - base64url "^3.0.1" - -"@colors/colors@1.5.0": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" - integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== - -"@colors/colors@1.6.0", "@colors/colors@^1.6.0": - version "1.6.0" - resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.6.0.tgz#ec6cd237440700bc23ca23087f513c75508958b0" - integrity sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA== - -"@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" - integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== - dependencies: - "@jridgewell/trace-mapping" "0.3.9" - -"@dabh/diagnostics@^2.0.2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@dabh/diagnostics/-/diagnostics-2.0.3.tgz#7f7e97ee9a725dffc7808d93668cc984e1dc477a" - integrity sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA== - dependencies: - colorspace "1.1.x" - enabled "2.0.x" - kuler "^2.0.0" - -"@dependents/detective-less@^4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@dependents/detective-less/-/detective-less-4.1.0.tgz#4a979ee7a6a79eb33602862d6a1263e30f98002e" - integrity sha512-KrkT6qO5NxqNfy68sBl6CTSoJ4SNDIS5iQArkibhlbGU4LaDukZ3q2HIkh8aUKDio6o4itU4xDR7t82Y2eP1Bg== - dependencies: - gonzales-pe "^4.3.0" - node-source-walk "^6.0.1" - -"@ensdomains/ens@^0.4.4": - version "0.4.5" - resolved "https://registry.yarnpkg.com/@ensdomains/ens/-/ens-0.4.5.tgz#e0aebc005afdc066447c6e22feb4eda89a5edbfc" - integrity sha512-JSvpj1iNMFjK6K+uVl4unqMoa9rf5jopb8cya5UGBWz23Nw8hSNT7efgUx4BTlAPAgpNlEioUfeTyQ6J9ZvTVw== - 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" - -"@ensdomains/resolver@^0.2.4": - version "0.2.4" - resolved "https://registry.yarnpkg.com/@ensdomains/resolver/-/resolver-0.2.4.tgz#c10fe28bf5efbf49bff4666d909aed0265efbc89" - integrity sha512-bvaTH34PMCbv6anRa9I/0zjLJgY4EuznbEMgbV77JBCQ9KNC46rzi0avuxpOfu+xDjPEtSFGqVEOr5GlUSGudA== - -"@esbuild/android-arm64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz#984b4f9c8d0377443cc2dfcef266d02244593622" - integrity sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ== - -"@esbuild/android-arm64@0.19.4": - version "0.19.4" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.4.tgz#74752a09301b8c6b9a415fbda9fb71406a62a7b7" - integrity sha512-mRsi2vJsk4Bx/AFsNBqOH2fqedxn5L/moT58xgg51DjX1la64Z3Npicut2VbhvDFO26qjWtPMsVxCd80YTFVeg== - -"@esbuild/android-arm64@0.19.6": - version "0.19.6" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.6.tgz#13d98a34bbbde4237867cc232307a20ded139b6f" - integrity sha512-KQ/hbe9SJvIJ4sR+2PcZ41IBV+LPJyYp6V1K1P1xcMRup9iYsBoQn4MzE3mhMLOld27Au2eDcLlIREeKGUXpHQ== - -"@esbuild/android-arm@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.18.20.tgz#fedb265bc3a589c84cc11f810804f234947c3682" - integrity sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw== - -"@esbuild/android-arm@0.19.4": - version "0.19.4" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.4.tgz#c27363e1e280e577d9b5c8fa7c7a3be2a8d79bf5" - integrity sha512-uBIbiYMeSsy2U0XQoOGVVcpIktjLMEKa7ryz2RLr7L/vTnANNEsPVAh4xOv7ondGz6ac1zVb0F8Jx20rQikffQ== - -"@esbuild/android-arm@0.19.6": - version "0.19.6" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.6.tgz#68898d949672c56f10451f540fd92301dc713fb3" - integrity sha512-muPzBqXJKCbMYoNbb1JpZh/ynl0xS6/+pLjrofcR3Nad82SbsCogYzUE6Aq9QT3cLP0jR/IVK/NHC9b90mSHtg== - -"@esbuild/android-x64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.18.20.tgz#35cf419c4cfc8babe8893d296cd990e9e9f756f2" - integrity sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg== - -"@esbuild/android-x64@0.19.4": - version "0.19.4" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.4.tgz#6c9ee03d1488973d928618100048b75b147e0426" - integrity sha512-4iPufZ1TMOD3oBlGFqHXBpa3KFT46aLl6Vy7gwed0ZSYgHaZ/mihbYb4t7Z9etjkC9Al3ZYIoOaHrU60gcMy7g== - -"@esbuild/android-x64@0.19.6": - version "0.19.6" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.6.tgz#51a0ab83680dedc6dd1ae26133def26b178ed3a1" - integrity sha512-VVJVZQ7p5BBOKoNxd0Ly3xUM78Y4DyOoFKdkdAe2m11jbh0LEU4bPles4e/72EMl4tapko8o915UalN/5zhspg== - -"@esbuild/darwin-arm64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz#08172cbeccf95fbc383399a7f39cfbddaeb0d7c1" - integrity sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA== - -"@esbuild/darwin-arm64@0.19.4": - version "0.19.4" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.4.tgz#64e2ee945e5932cd49812caa80e8896e937e2f8b" - integrity sha512-Lviw8EzxsVQKpbS+rSt6/6zjn9ashUZ7Tbuvc2YENgRl0yZTktGlachZ9KMJUsVjZEGFVu336kl5lBgDN6PmpA== - -"@esbuild/darwin-arm64@0.19.6": - version "0.19.6" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.6.tgz#2883f14197111febb118c0463c080930a30883e5" - integrity sha512-91LoRp/uZAKx6ESNspL3I46ypwzdqyDLXZH7x2QYCLgtnaU08+AXEbabY2yExIz03/am0DivsTtbdxzGejfXpA== - -"@esbuild/darwin-x64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz#d70d5790d8bf475556b67d0f8b7c5bdff053d85d" - integrity sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ== - -"@esbuild/darwin-x64@0.19.4": - version "0.19.4" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.4.tgz#d8e26e1b965df284692e4d1263ba69a49b39ac7a" - integrity sha512-YHbSFlLgDwglFn0lAO3Zsdrife9jcQXQhgRp77YiTDja23FrC2uwnhXMNkAucthsf+Psr7sTwYEryxz6FPAVqw== - -"@esbuild/darwin-x64@0.19.6": - version "0.19.6" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.6.tgz#400bf20f9a35a7d68a17f5898c0f9ecb099f062b" - integrity sha512-QCGHw770ubjBU1J3ZkFJh671MFajGTYMZumPs9E/rqU52md6lIil97BR0CbPq6U+vTh3xnTNDHKRdR8ggHnmxQ== - -"@esbuild/freebsd-arm64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz#98755cd12707f93f210e2494d6a4b51b96977f54" - integrity sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw== - -"@esbuild/freebsd-arm64@0.19.4": - version "0.19.4" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.4.tgz#29751a41b242e0a456d89713b228f1da4f45582f" - integrity sha512-vz59ijyrTG22Hshaj620e5yhs2dU1WJy723ofc+KUgxVCM6zxQESmWdMuVmUzxtGqtj5heHyB44PjV/HKsEmuQ== - -"@esbuild/freebsd-arm64@0.19.6": - version "0.19.6" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.6.tgz#8af07bd848afa2470b8a2339b203ce29a721152b" - integrity sha512-J53d0jGsDcLzWk9d9SPmlyF+wzVxjXpOH7jVW5ae7PvrDst4kiAz6sX+E8btz0GB6oH12zC+aHRD945jdjF2Vg== - -"@esbuild/freebsd-x64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz#c1eb2bff03915f87c29cece4c1a7fa1f423b066e" - integrity sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ== - -"@esbuild/freebsd-x64@0.19.4": - version "0.19.4" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.4.tgz#873edc0f73e83a82432460ea59bf568c1e90b268" - integrity sha512-3sRbQ6W5kAiVQRBWREGJNd1YE7OgzS0AmOGjDmX/qZZecq8NFlQsQH0IfXjjmD0XtUYqr64e0EKNFjMUlPL3Cw== - -"@esbuild/freebsd-x64@0.19.6": - version "0.19.6" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.6.tgz#ae0230860e27df204a616671e028ff8fdffa009a" - integrity sha512-hn9qvkjHSIB5Z9JgCCjED6YYVGCNpqB7dEGavBdG6EjBD8S/UcNUIlGcB35NCkMETkdYwfZSvD9VoDJX6VeUVA== - -"@esbuild/linux-arm64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz#bad4238bd8f4fc25b5a021280c770ab5fc3a02a0" - integrity sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA== - -"@esbuild/linux-arm64@0.19.4": - version "0.19.4" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.4.tgz#659f2fa988d448dbf5010b5cc583be757cc1b914" - integrity sha512-ZWmWORaPbsPwmyu7eIEATFlaqm0QGt+joRE9sKcnVUG3oBbr/KYdNE2TnkzdQwX6EDRdg/x8Q4EZQTXoClUqqA== - -"@esbuild/linux-arm64@0.19.6": - version "0.19.6" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.6.tgz#3042bc423a978deab44a72244b863f743fd9fda1" - integrity sha512-HQCOrk9XlH3KngASLaBfHpcoYEGUt829A9MyxaI8RMkfRA8SakG6YQEITAuwmtzFdEu5GU4eyhKcpv27dFaOBg== - -"@esbuild/linux-arm@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz#3e617c61f33508a27150ee417543c8ab5acc73b0" - integrity sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg== - -"@esbuild/linux-arm@0.19.4": - version "0.19.4" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.4.tgz#d5b13a7ec1f1c655ce05c8d319b3950797baee55" - integrity sha512-z/4ArqOo9EImzTi4b6Vq+pthLnepFzJ92BnofU1jgNlcVb+UqynVFdoXMCFreTK7FdhqAzH0vmdwW5373Hm9pg== - -"@esbuild/linux-arm@0.19.6": - version "0.19.6" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.6.tgz#50a537de609315979509120b0181882978294db1" - integrity sha512-G8IR5zFgpXad/Zp7gr7ZyTKyqZuThU6z1JjmRyN1vSF8j0bOlGzUwFSMTbctLAdd7QHpeyu0cRiuKrqK1ZTwvQ== - -"@esbuild/linux-ia32@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz#699391cccba9aee6019b7f9892eb99219f1570a7" - integrity sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA== - -"@esbuild/linux-ia32@0.19.4": - version "0.19.4" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.4.tgz#878cd8bf24c9847c77acdb5dd1b2ef6e4fa27a82" - integrity sha512-EGc4vYM7i1GRUIMqRZNCTzJh25MHePYsnQfKDexD8uPTCm9mK56NIL04LUfX2aaJ+C9vyEp2fJ7jbqFEYgO9lQ== - -"@esbuild/linux-ia32@0.19.6": - version "0.19.6" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.6.tgz#f99c48b597facf9cbf8e1a2522ce379b2ad7b0c4" - integrity sha512-22eOR08zL/OXkmEhxOfshfOGo8P69k8oKHkwkDrUlcB12S/sw/+COM4PhAPT0cAYW/gpqY2uXp3TpjQVJitz7w== - -"@esbuild/linux-loong64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz#e6fccb7aac178dd2ffb9860465ac89d7f23b977d" - integrity sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg== - -"@esbuild/linux-loong64@0.19.4": - version "0.19.4" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.4.tgz#df890499f6e566b7de3aa2361be6df2b8d5fa015" - integrity sha512-WVhIKO26kmm8lPmNrUikxSpXcgd6HDog0cx12BUfA2PkmURHSgx9G6vA19lrlQOMw+UjMZ+l3PpbtzffCxFDRg== - -"@esbuild/linux-loong64@0.19.6": - version "0.19.6" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.6.tgz#9fe79be31ce305564aa62da190f38e199d6d26b7" - integrity sha512-82RvaYAh/SUJyjWA8jDpyZCHQjmEggL//sC7F3VKYcBMumQjUL3C5WDl/tJpEiKtt7XrWmgjaLkrk205zfvwTA== - -"@esbuild/linux-mips64el@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz#eeff3a937de9c2310de30622a957ad1bd9183231" - integrity sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ== - -"@esbuild/linux-mips64el@0.19.4": - version "0.19.4" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.4.tgz#76eae4e88d2ce9f4f1b457e93892e802851b6807" - integrity sha512-keYY+Hlj5w86hNp5JJPuZNbvW4jql7c1eXdBUHIJGTeN/+0QFutU3GrS+c27L+NTmzi73yhtojHk+lr2+502Mw== - -"@esbuild/linux-mips64el@0.19.6": - version "0.19.6" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.6.tgz#5a922dad90fc8a83fd0631c136b46128153ffb6f" - integrity sha512-8tvnwyYJpR618vboIv2l8tK2SuK/RqUIGMfMENkeDGo3hsEIrpGldMGYFcWxWeEILe5Fi72zoXLmhZ7PR23oQA== - -"@esbuild/linux-ppc64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz#2f7156bde20b01527993e6881435ad79ba9599fb" - integrity sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA== - -"@esbuild/linux-ppc64@0.19.4": - version "0.19.4" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.4.tgz#c49032f4abbcfa3f747b543a106931fe3dce41ff" - integrity sha512-tQ92n0WMXyEsCH4m32S21fND8VxNiVazUbU4IUGVXQpWiaAxOBvtOtbEt3cXIV3GEBydYsY8pyeRMJx9kn3rvw== - -"@esbuild/linux-ppc64@0.19.6": - version "0.19.6" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.6.tgz#a7fccf924824999b301546843adb4f51051965e8" - integrity sha512-Qt+D7xiPajxVNk5tQiEJwhmarNnLPdjXAoA5uWMpbfStZB0+YU6a3CtbWYSy+sgAsnyx4IGZjWsTzBzrvg/fMA== - -"@esbuild/linux-riscv64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz#6628389f210123d8b4743045af8caa7d4ddfc7a6" - integrity sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A== - -"@esbuild/linux-riscv64@0.19.4": - version "0.19.4" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.4.tgz#0f815a090772138503ee0465a747e16865bf94b1" - integrity sha512-tRRBey6fG9tqGH6V75xH3lFPpj9E8BH+N+zjSUCnFOX93kEzqS0WdyJHkta/mmJHn7MBaa++9P4ARiU4ykjhig== - -"@esbuild/linux-riscv64@0.19.6": - version "0.19.6" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.6.tgz#41d2db11550662d6c03902d9d8d26b0ed5bb8d55" - integrity sha512-lxRdk0iJ9CWYDH1Wpnnnc640ajF4RmQ+w6oHFZmAIYu577meE9Ka/DCtpOrwr9McMY11ocbp4jirgGgCi7Ls/g== - -"@esbuild/linux-s390x@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz#255e81fb289b101026131858ab99fba63dcf0071" - integrity sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ== - -"@esbuild/linux-s390x@0.19.4": - version "0.19.4" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.4.tgz#8d2cca20cd4e7c311fde8701d9f1042664f8b92b" - integrity sha512-152aLpQqKZYhThiJ+uAM4PcuLCAOxDsCekIbnGzPKVBRUDlgaaAfaUl5NYkB1hgY6WN4sPkejxKlANgVcGl9Qg== - -"@esbuild/linux-s390x@0.19.6": - version "0.19.6" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.6.tgz#d7a843a2620e73c5c9d65c482e2fbddc7e0f7753" - integrity sha512-MopyYV39vnfuykHanRWHGRcRC3AwU7b0QY4TI8ISLfAGfK+tMkXyFuyT1epw/lM0pflQlS53JoD22yN83DHZgA== - -"@esbuild/linux-x64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz#c7690b3417af318a9b6f96df3031a8865176d338" - integrity sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w== - -"@esbuild/linux-x64@0.19.4": - version "0.19.4" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.4.tgz#f618bec2655de49bff91c588777e37b5e3169d4a" - integrity sha512-Mi4aNA3rz1BNFtB7aGadMD0MavmzuuXNTaYL6/uiYIs08U7YMPETpgNn5oue3ICr+inKwItOwSsJDYkrE9ekVg== - -"@esbuild/linux-x64@0.19.6": - version "0.19.6" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.6.tgz#d3f20f0c2bdaa1b9ed1c0df7db034771e7aa5234" - integrity sha512-UWcieaBzsN8WYbzFF5Jq7QULETPcQvlX7KL4xWGIB54OknXJjBO37sPqk7N82WU13JGWvmDzFBi1weVBajPovg== - -"@esbuild/netbsd-x64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz#30e8cd8a3dded63975e2df2438ca109601ebe0d1" - integrity sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A== - -"@esbuild/netbsd-x64@0.19.4": - version "0.19.4" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.4.tgz#7889744ca4d60f1538d62382b95e90a49687cef2" - integrity sha512-9+Wxx1i5N/CYo505CTT7T+ix4lVzEdz0uCoYGxM5JDVlP2YdDC1Bdz+Khv6IbqmisT0Si928eAxbmGkcbiuM/A== - -"@esbuild/netbsd-x64@0.19.6": - version "0.19.6" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.6.tgz#6108d7270599ee37cd57bb14e4516a83541885d5" - integrity sha512-EpWiLX0fzvZn1wxtLxZrEW+oQED9Pwpnh+w4Ffv8ZLuMhUoqR9q9rL4+qHW8F4Mg5oQEKxAoT0G+8JYNqCiR6g== - -"@esbuild/openbsd-x64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz#7812af31b205055874c8082ea9cf9ab0da6217ae" - integrity sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg== - -"@esbuild/openbsd-x64@0.19.4": - version "0.19.4" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.4.tgz#c3e436eb9271a423d2e8436fcb120e3fd90e2b01" - integrity sha512-MFsHleM5/rWRW9EivFssop+OulYVUoVcqkyOkjiynKBCGBj9Lihl7kh9IzrreDyXa4sNkquei5/DTP4uCk25xw== - -"@esbuild/openbsd-x64@0.19.6": - version "0.19.6" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.6.tgz#b1b5aaa2c9028e90a2bef6774a9c67451f53f164" - integrity sha512-fFqTVEktM1PGs2sLKH4M5mhAVEzGpeZJuasAMRnvDZNCV0Cjvm1Hu35moL2vC0DOrAQjNTvj4zWrol/lwQ8Deg== - -"@esbuild/sunos-x64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz#d5c275c3b4e73c9b0ecd38d1ca62c020f887ab9d" - integrity sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ== - -"@esbuild/sunos-x64@0.19.4": - version "0.19.4" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.4.tgz#f63f5841ba8c8c1a1c840d073afc99b53e8ce740" - integrity sha512-6Xq8SpK46yLvrGxjp6HftkDwPP49puU4OF0hEL4dTxqCbfx09LyrbUj/D7tmIRMj5D5FCUPksBbxyQhp8tmHzw== - -"@esbuild/sunos-x64@0.19.6": - version "0.19.6" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.6.tgz#b51b648cea77c62b1934a4fdcfee7aaa9de174cb" - integrity sha512-M+XIAnBpaNvaVAhbe3uBXtgWyWynSdlww/JNZws0FlMPSBy+EpatPXNIlKAdtbFVII9OpX91ZfMb17TU3JKTBA== - -"@esbuild/win32-arm64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz#73bc7f5a9f8a77805f357fab97f290d0e4820ac9" - integrity sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg== - -"@esbuild/win32-arm64@0.19.4": - version "0.19.4" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.4.tgz#80be69cec92da4da7781cf7a8351b95cc5a236b0" - integrity sha512-PkIl7Jq4mP6ke7QKwyg4fD4Xvn8PXisagV/+HntWoDEdmerB2LTukRZg728Yd1Fj+LuEX75t/hKXE2Ppk8Hh1w== - -"@esbuild/win32-arm64@0.19.6": - version "0.19.6" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.6.tgz#34e5665f239047c302c8d153406c87db22afd58a" - integrity sha512-2DchFXn7vp/B6Tc2eKdTsLzE0ygqKkNUhUBCNtMx2Llk4POIVMUq5rUYjdcedFlGLeRe1uLCpVvCmE+G8XYybA== - -"@esbuild/win32-ia32@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz#ec93cbf0ef1085cc12e71e0d661d20569ff42102" - integrity sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g== - -"@esbuild/win32-ia32@0.19.4": - version "0.19.4" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.4.tgz#15dc0ed83d2794872b05d8edc4a358fecf97eb54" - integrity sha512-ga676Hnvw7/ycdKB53qPusvsKdwrWzEyJ+AtItHGoARszIqvjffTwaaW3b2L6l90i7MO9i+dlAW415INuRhSGg== - -"@esbuild/win32-ia32@0.19.6": - version "0.19.6" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.6.tgz#f7aaebe325e67f44c0a738e80a98221504677b4a" - integrity sha512-PBo/HPDQllyWdjwAVX+Gl2hH0dfBydL97BAH/grHKC8fubqp02aL4S63otZ25q3sBdINtOBbz1qTZQfXbP4VBg== - -"@esbuild/win32-x64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz#786c5f41f043b07afb1af37683d7c33668858f6d" - integrity sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ== - -"@esbuild/win32-x64@0.19.4": - version "0.19.4" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.4.tgz#d46a6e220a717f31f39ae80f49477cc3220be0f0" - integrity sha512-HP0GDNla1T3ZL8Ko/SHAS2GgtjOg+VmWnnYLhuTksr++EnduYB0f3Y2LzHsUwb2iQ13JGoY6G3R8h6Du/WG6uA== - -"@esbuild/win32-x64@0.19.6": - version "0.19.6" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.6.tgz#7134e5dea1f5943b013e96fc34f9638a5f3d7e3e" - integrity sha512-OE7yIdbDif2kKfrGa+V0vx/B3FJv2L4KnIiLlvtibPyO9UkgO3rzYE0HhpREo2vmJ1Ixq1zwm9/0er+3VOSZJA== - -"@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" - integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== - dependencies: - eslint-visitor-keys "^3.3.0" - -"@eslint-community/regexpp@^4.4.0", "@eslint-community/regexpp@^4.6.1": - 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", "@eslint/eslintrc@^2.1.3": - version "2.1.3" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.3.tgz#797470a75fe0fbd5a53350ee715e85e87baff22d" - integrity sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA== - 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" - -"@eslint/js@8.48.0": - version "8.48.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.48.0.tgz#642633964e217905436033a2bd08bf322849b7fb" - integrity sha512-ZSjtmelB7IJfWD2Fvb7+Z+ChTIKWq6kjda95fLcQKNS5aheVHn4IkfgRQE3sIIzTcSLwLcLZUD9UBt+V7+h+Pw== - -"@eslint/js@8.54.0": - version "8.54.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.54.0.tgz#4fab9a2ff7860082c304f750e94acd644cf984cf" - integrity sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ== - -"@ethereum-waffle/chai@^3.4.4": - version "3.4.4" - resolved "https://registry.yarnpkg.com/@ethereum-waffle/chai/-/chai-3.4.4.tgz#16c4cc877df31b035d6d92486dfdf983df9138ff" - integrity sha512-/K8czydBtXXkcM9X6q29EqEkc5dN3oYenyH2a9hF7rGAApAJUpH8QBtojxOY/xQ2up5W332jqgxwp0yPiYug1g== - dependencies: - "@ethereum-waffle/provider" "^3.4.4" - ethers "^5.5.2" - -"@ethereum-waffle/compiler@^3.4.4": - version "3.4.4" - resolved "https://registry.yarnpkg.com/@ethereum-waffle/compiler/-/compiler-3.4.4.tgz#d568ee0f6029e68b5c645506079fbf67d0dfcf19" - integrity sha512-RUK3axJ8IkD5xpWjWoJgyHclOeEzDLQFga6gKpeGxiS/zBu+HB0W2FvsrrLalTFIaPw/CGYACRBSIxqiCqwqTQ== - dependencies: - "@resolver-engine/imports" "^0.3.3" - "@resolver-engine/imports-fs" "^0.3.3" - "@typechain/ethers-v5" "^2.0.0" - "@types/mkdirp" "^0.5.2" - "@types/node-fetch" "^2.5.5" - ethers "^5.0.1" - mkdirp "^0.5.1" - node-fetch "^2.6.1" - solc "^0.6.3" - ts-generator "^0.1.1" - typechain "^3.0.0" - -"@ethereum-waffle/ens@^3.4.4": - version "3.4.4" - resolved "https://registry.yarnpkg.com/@ethereum-waffle/ens/-/ens-3.4.4.tgz#db97ea2c9decbb70b9205d53de2ccbd6f3182ba1" - integrity sha512-0m4NdwWxliy3heBYva1Wr4WbJKLnwXizmy5FfSSr5PMbjI7SIGCdCB59U7/ZzY773/hY3bLnzLwvG5mggVjJWg== - dependencies: - "@ensdomains/ens" "^0.4.4" - "@ensdomains/resolver" "^0.2.4" - ethers "^5.5.2" - -"@ethereum-waffle/mock-contract@^3.4.4": - version "3.4.4" - resolved "https://registry.yarnpkg.com/@ethereum-waffle/mock-contract/-/mock-contract-3.4.4.tgz#fc6ffa18813546f4950a69f5892d4dd54b2c685a" - integrity sha512-Mp0iB2YNWYGUV+VMl5tjPsaXKbKo8MDH9wSJ702l9EBjdxFf/vBvnMBAC1Fub1lLtmD0JHtp1pq+mWzg/xlLnA== - dependencies: - "@ethersproject/abi" "^5.5.0" - ethers "^5.5.2" - -"@ethereum-waffle/provider@^3.4.4": - version "3.4.4" - resolved "https://registry.yarnpkg.com/@ethereum-waffle/provider/-/provider-3.4.4.tgz#398fc1f7eb91cc2df7d011272eacba8af0c7fffb" - integrity sha512-GK8oKJAM8+PKy2nK08yDgl4A80mFuI8zBkE0C9GqTRYQqvuxIyXoLmJ5NZU9lIwyWVv5/KsoA11BgAv2jXE82g== - dependencies: - "@ethereum-waffle/ens" "^3.4.4" - ethers "^5.5.2" - ganache-core "^2.13.2" - patch-package "^6.2.2" - postinstall-postinstall "^2.1.0" - -"@ethereumjs/common@2.6.5", "@ethereumjs/common@^2.6.4": - 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/rlp@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@ethereumjs/rlp/-/rlp-4.0.1.tgz#626fabfd9081baab3d0a3074b0c7ecaf674aaa41" - integrity sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw== - -"@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.yarnpkg.com/@ethereumjs/util/-/util-8.1.0.tgz#299df97fb6b034e0577ce9f94c7d9d1004409ed4" - integrity sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA== - dependencies: - "@ethereumjs/rlp" "^4.0.1" - ethereum-cryptography "^2.0.0" - micro-ftch "^0.3.1" - -"@ethersproject/abi@5.0.0-beta.153": - version "5.0.0-beta.153" - resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.0.0-beta.153.tgz#43a37172b33794e4562999f6e2d555b7599a8eee" - integrity sha512-aXweZ1Z7vMNzJdLpR1CZUAIgnwjrZeUSvN9syCwlBaEBUFJmFY+HHnfuTI5vIhVs/mRkfJVrbEyl51JZQqyjAg== - 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/abi@5.0.7": - version "5.0.7" - resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.0.7.tgz#79e52452bd3ca2956d0e1c964207a58ad1a0ee7b" - integrity sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw== - dependencies: - "@ethersproject/address" "^5.0.4" - "@ethersproject/bignumber" "^5.0.7" - "@ethersproject/bytes" "^5.0.4" - "@ethersproject/constants" "^5.0.4" - "@ethersproject/hash" "^5.0.4" - "@ethersproject/keccak256" "^5.0.3" - "@ethersproject/logger" "^5.0.5" - "@ethersproject/properties" "^5.0.3" - "@ethersproject/strings" "^5.0.4" - -"@ethersproject/abi@5.7.0", "@ethersproject/abi@^5.1.2", "@ethersproject/abi@^5.5.0", "@ethersproject/abi@^5.6.3", "@ethersproject/abi@^5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.7.0.tgz#b3f3e045bbbeed1af3947335c247ad625a44e449" - integrity sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA== - 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" - -"@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" - integrity sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw== - 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" - -"@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" - integrity sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ== - 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" - -"@ethersproject/address@5.7.0", "@ethersproject/address@>=5.0.0-beta.128", "@ethersproject/address@^5.0.2", "@ethersproject/address@^5.0.4", "@ethersproject/address@^5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.7.0.tgz#19b56c4d74a3b0a46bfdbb6cfcc0a153fc697f37" - integrity sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA== - 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" - -"@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" - integrity sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ== - dependencies: - "@ethersproject/bytes" "^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" - integrity sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw== - dependencies: - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - -"@ethersproject/bignumber@5.7.0", "@ethersproject/bignumber@>=5.0.0-beta.130", "@ethersproject/bignumber@^5.0.7", "@ethersproject/bignumber@^5.7.0": - version "5.7.0" - 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.0.0-beta.129", "@ethersproject/bytes@^5.0.4", "@ethersproject/bytes@^5.7.0": - version "5.7.0" - 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.0.0-beta.128", "@ethersproject/constants@^5.0.4", "@ethersproject/constants@^5.7.0": - version "5.7.0" - 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": - version "5.7.0" - 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" - "@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" - -"@ethersproject/hash@5.7.0", "@ethersproject/hash@>=5.0.0-beta.128", "@ethersproject/hash@^5.0.4", "@ethersproject/hash@^5.7.0": - version "5.7.0" - 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" - "@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" - -"@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" - integrity sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg== - 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/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" - integrity sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g== - 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/keccak256@5.7.0", "@ethersproject/keccak256@>=5.0.0-beta.127", "@ethersproject/keccak256@^5.0.3", "@ethersproject/keccak256@^5.7.0": - version "5.7.0" - 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.0.0-beta.129", "@ethersproject/logger@^5.0.5", "@ethersproject/logger@^5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.7.0.tgz#6ce9ae168e74fecf287be17062b590852c311892" - integrity sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig== - -"@ethersproject/networks@5.7.1", "@ethersproject/networks@^5.7.0": - version "5.7.1" - 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": - version "5.7.0" - 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.0.0-beta.131", "@ethersproject/properties@^5.0.3", "@ethersproject/properties@^5.7.0": - version "5.7.0" - 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.7.2", "@ethersproject/providers@^5.7.1", "@ethersproject/providers@^5.7.2": - version "5.7.2" - 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" - "@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/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" - integrity sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ== - dependencies: - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/logger" "^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" - 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": - version "5.7.0" - 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": - version "5.7.0" - 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" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - bn.js "^5.2.1" - elliptic "6.5.4" - hash.js "1.1.7" - -"@ethersproject/solidity@5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.7.0.tgz#5e9c911d8a2acce2a5ebb48a5e2e0af20b631cb8" - integrity sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA== - 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/strings@5.7.0", "@ethersproject/strings@>=5.0.0-beta.130", "@ethersproject/strings@^5.0.4", "@ethersproject/strings@^5.7.0": - version "5.7.0" - 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.7.0", "@ethersproject/transactions@^5.0.0-beta.135", "@ethersproject/transactions@^5.6.2", "@ethersproject/transactions@^5.7.0": - version "5.7.0" - 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" - "@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/units@5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.7.0.tgz#637b563d7e14f42deeee39245275d477aae1d8b1" - integrity sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg== - dependencies: - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/constants" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - -"@ethersproject/wallet@5.7.0": - version "5.7.0" - 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" - "@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/web@5.7.1", "@ethersproject/web@^5.7.0": - version "5.7.1" - resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.7.1.tgz#de1f285b373149bee5928f4eb7bcb87ee5fbb4ae" - integrity sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w== - 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/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" - integrity sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA== - 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" - -"@fastify/accept-negotiator@^1.0.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@fastify/accept-negotiator/-/accept-negotiator-1.1.0.tgz#c1c66b3b771c09742a54dd5bc87c582f6b0630ff" - integrity sha512-OIHZrb2ImZ7XG85HXOONLcJWGosv7sIvM2ifAPQVhg9Lv7qdmMBNVaai4QTdyuaqbKM5eO6sLSQOYI7wEQeCJQ== - -"@fastify/ajv-compiler@^3.5.0": - version "3.5.0" - resolved "https://registry.yarnpkg.com/@fastify/ajv-compiler/-/ajv-compiler-3.5.0.tgz#459bff00fefbf86c96ec30e62e933d2379e46670" - integrity sha512-ebbEtlI7dxXF5ziNdr05mOY8NnDiPB1XvAlLHctRt/Rc+C3LCOVW5imUVX+mhvUhnNzmPBHewUkOFgGlCxgdAA== - dependencies: - ajv "^8.11.0" - ajv-formats "^2.1.1" - fast-uri "^2.0.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== - -"@fastify/deepmerge@^1.0.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@fastify/deepmerge/-/deepmerge-1.3.0.tgz#8116858108f0c7d9fd460d05a7d637a13fe3239a" - integrity sha512-J8TOSBq3SoZbDhM9+R/u77hP93gz/rajSA+K2kGyijPpORPWUXHUpTaleoj+92As0S9uPRP7Oi8IqMf0u+ro6A== - -"@fastify/error@^3.0.0": - version "3.4.1" - resolved "https://registry.yarnpkg.com/@fastify/error/-/error-3.4.1.tgz#b14bb4cac3dd4ec614becbc643d1511331a6425c" - integrity sha512-wWSvph+29GR783IhmvdwWnN4bUxTD01Vm5Xad4i7i1VuAOItLvbPAb69sb0IQ2N57yprvhNIwAP5B6xfKTmjmQ== - -"@fastify/fast-json-stringify-compiler@^4.3.0": - version "4.3.0" - resolved "https://registry.yarnpkg.com/@fastify/fast-json-stringify-compiler/-/fast-json-stringify-compiler-4.3.0.tgz#5df89fa4d1592cbb8780f78998355feb471646d5" - integrity sha512-aZAXGYo6m22Fk1zZzEUKBvut/CIIQe/BapEORnxiD5Qr0kPHqqI69NtEMCme74h+at72sPhbkb4ZrLd1W3KRLA== - dependencies: - fast-json-stringify "^5.7.0" - -"@fastify/send@^2.0.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@fastify/send/-/send-2.1.0.tgz#1aa269ccb4b0940a2dadd1f844443b15d8224ea0" - integrity sha512-yNYiY6sDkexoJR0D8IDy3aRP3+L4wdqCpvx5WP+VtEU58sn7USmKynBzDQex5X42Zzvw2gNzzYgP90UfWShLFA== - dependencies: - "@lukeed/ms" "^2.0.1" - escape-html "~1.0.3" - fast-decode-uri-component "^1.0.1" - http-errors "2.0.0" - mime "^3.0.0" - -"@fastify/static@6.10.2": - version "6.10.2" - resolved "https://registry.yarnpkg.com/@fastify/static/-/static-6.10.2.tgz#dfaaccfa191a4ba85ea8e3926853c9e6d979e67f" - integrity sha512-UoaMvIHSBLCZBYOVZwFRYqX2ufUhd7FFMYGDeSf0Z+D8jhYtwljjmuQGuanUP8kS4y/ZEV1a8mfLha3zNwsnnQ== - dependencies: - "@fastify/accept-negotiator" "^1.0.0" - "@fastify/send" "^2.0.0" - content-disposition "^0.5.3" - fastify-plugin "^4.0.0" - glob "^8.0.1" - p-limit "^3.1.0" - readable-stream "^4.0.0" - -"@float-capital/float-subgraph-uncrashable@^0.0.0-alpha.4": - version "0.0.0-internal-testing.5" - resolved "https://registry.yarnpkg.com/@float-capital/float-subgraph-uncrashable/-/float-subgraph-uncrashable-0.0.0-internal-testing.5.tgz#060f98440f6e410812766c5b040952d2d02e2b73" - integrity sha512-yZ0H5e3EpAYKokX/AbtplzlvSxEJY7ZfpvQyDzyODkks0hakAAlDG6fQu1SlDJMWorY7bbq1j7fCiFeTWci6TA== - dependencies: - "@rescript/std" "9.0.0" - graphql "^16.6.0" - graphql-import-node "^0.0.5" - js-yaml "^4.1.0" - -"@floating-ui/core@^1.1.0": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.5.0.tgz#5c05c60d5ae2d05101c3021c1a2a350ddc027f8c" - integrity sha512-kK1h4m36DQ0UHGj5Ah4db7R0rHemTqqO0QLvUqi1/mUUp3LuAWbWxdxSIf/XsnH9VS6rRVPLJCncjRzUvyCLXg== - dependencies: - "@floating-ui/utils" "^0.1.3" - -"@floating-ui/dom@~1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.1.1.tgz#66aa747e15894910869bf9144fc54fc7d6e9f975" - integrity sha512-TpIO93+DIujg3g7SykEAGZMDtbJRrmnYRCNYSjJlvIbGhBjRSNTLVbNeDQBrzy9qDgUbiWdc7KA0uZHZ2tJmiw== - dependencies: - "@floating-ui/core" "^1.1.0" - -"@floating-ui/utils@^0.1.3": - version "0.1.6" - resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.1.6.tgz#22958c042e10b67463997bd6ea7115fe28cbcaf9" - integrity sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A== - -"@graphprotocol/graph-cli@^0.46.1": - version "0.46.1" - resolved "https://registry.yarnpkg.com/@graphprotocol/graph-cli/-/graph-cli-0.46.1.tgz#9e63bcc1bc085abab804862ecb25e689ac2077fd" - integrity sha512-594BiH2m9gThP1xdvxguVzvVlOb1KzJyVdh2F4dV78NPfMRFY2fe1nakmadKcewc72VVLXNgfdBu/J4IPfo0eg== - dependencies: - "@float-capital/float-subgraph-uncrashable" "^0.0.0-alpha.4" - "@oclif/core" "2.8.0" - "@whatwg-node/fetch" "^0.8.4" - assemblyscript "0.19.23" - binary-install-raw "0.0.13" - chalk "3.0.0" - chokidar "3.5.3" - debug "4.3.4" - docker-compose "0.23.19" - dockerode "2.5.8" - fs-extra "9.1.0" - glob "9.3.4" - gluegun "https://github.com/edgeandnode/gluegun#v4.3.1-pin-colors-dep" - graphql "15.5.0" - immutable "4.2.1" - ipfs-http-client "55.0.0" - jayson "4.0.0" - js-yaml "3.14.1" - prettier "1.19.1" - request "2.88.2" - semver "7.3.8" - sync-request "6.1.0" - tmp-promise "3.0.3" - web3-eth-abi "1.7.0" - which "2.0.2" - yaml "1.10.2" - -"@graphprotocol/graph-ts@^0.29.3": - version "0.29.3" - resolved "https://registry.yarnpkg.com/@graphprotocol/graph-ts/-/graph-ts-0.29.3.tgz#f0a664790e966f5fb9bce317a8861e84ec1f3394" - integrity sha512-FXBLGlunOSwjiUXYEz1J9J/I2D/myldyib/9v0R+gn/NJaYqUkXD39UmIuRxqj9cBzB/FYojHzoHidIG5nYZDw== - dependencies: - assemblyscript "0.19.10" - -"@graphql-codegen/cli@^3.3.0": - version "3.3.1" - resolved "https://registry.yarnpkg.com/@graphql-codegen/cli/-/cli-3.3.1.tgz#103e7a2263126fdde168a1ce623fc2bdc05352f0" - integrity sha512-4Es8Y9zFeT0Zx2qRL7L3qXDbbqvXK6aID+8v8lP6gaYD+uWx3Jd4Hsq5vxwVBR+6flm0BW/C85Qm0cvmT7O6LA== - dependencies: - "@babel/generator" "^7.18.13" - "@babel/template" "^7.18.10" - "@babel/types" "^7.18.13" - "@graphql-codegen/core" "^3.1.0" - "@graphql-codegen/plugin-helpers" "^4.2.0" - "@graphql-tools/apollo-engine-loader" "^7.3.6" - "@graphql-tools/code-file-loader" "^7.3.17" - "@graphql-tools/git-loader" "^7.2.13" - "@graphql-tools/github-loader" "^7.3.20" - "@graphql-tools/graphql-file-loader" "^7.5.0" - "@graphql-tools/json-file-loader" "^7.4.1" - "@graphql-tools/load" "^7.8.0" - "@graphql-tools/prisma-loader" "^7.2.49" - "@graphql-tools/url-loader" "^7.13.2" - "@graphql-tools/utils" "^9.0.0" - "@parcel/watcher" "^2.1.0" - "@whatwg-node/fetch" "^0.8.0" - chalk "^4.1.0" - cosmiconfig "^7.0.0" - debounce "^1.2.0" - detect-indent "^6.0.0" - graphql-config "^4.5.0" - inquirer "^8.0.0" - is-glob "^4.0.1" - jiti "^1.17.1" - json-to-pretty-yaml "^1.2.2" - listr2 "^4.0.5" - log-symbols "^4.0.0" - micromatch "^4.0.5" - shell-quote "^1.7.3" - string-env-interpolation "^1.0.1" - ts-log "^2.2.3" - tslib "^2.4.0" - yaml "^1.10.0" - yargs "^17.0.0" - -"@graphql-codegen/core@^3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@graphql-codegen/core/-/core-3.1.0.tgz#ad859d52d509a4eb2ebe5aabba6543a628fb181b" - integrity sha512-DH1/yaR7oJE6/B+c6ZF2Tbdh7LixF1K8L+8BoSubjNyQ8pNwR4a70mvc1sv6H7qgp6y1bPQ9tKE+aazRRshysw== - dependencies: - "@graphql-codegen/plugin-helpers" "^4.1.0" - "@graphql-tools/schema" "^9.0.0" - "@graphql-tools/utils" "^9.1.1" - tslib "~2.5.0" - -"@graphql-codegen/plugin-helpers@^2.7.2": - version "2.7.2" - resolved "https://registry.yarnpkg.com/@graphql-codegen/plugin-helpers/-/plugin-helpers-2.7.2.tgz#6544f739d725441c826a8af6a49519f588ff9bed" - integrity sha512-kln2AZ12uii6U59OQXdjLk5nOlh1pHis1R98cDZGFnfaiAbX9V3fxcZ1MMJkB7qFUymTALzyjZoXXdyVmPMfRg== - dependencies: - "@graphql-tools/utils" "^8.8.0" - change-case-all "1.0.14" - common-tags "1.8.2" - import-from "4.0.0" - lodash "~4.17.0" - tslib "~2.4.0" - -"@graphql-codegen/plugin-helpers@^3.0.0": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@graphql-codegen/plugin-helpers/-/plugin-helpers-3.1.2.tgz#69a2e91178f478ea6849846ade0a59a844d34389" - integrity sha512-emOQiHyIliVOIjKVKdsI5MXj312zmRDwmHpyUTZMjfpvxq/UVAHUJIVdVf+lnjjrI+LXBTgMlTWTgHQfmICxjg== - dependencies: - "@graphql-tools/utils" "^9.0.0" - change-case-all "1.0.15" - common-tags "1.8.2" - import-from "4.0.0" - lodash "~4.17.0" - tslib "~2.4.0" - -"@graphql-codegen/plugin-helpers@^4.1.0", "@graphql-codegen/plugin-helpers@^4.2.0": - version "4.2.0" - resolved "https://registry.yarnpkg.com/@graphql-codegen/plugin-helpers/-/plugin-helpers-4.2.0.tgz#8324914d0f99162a223cfa01796cdd6be972d2ae" - integrity sha512-THFTCfg+46PXlXobYJ/OoCX6pzjI+9woQqCjdyKtgoI0tn3Xq2HUUCiidndxUpEYVrXb5pRiRXb7b/ZbMQqD0A== - dependencies: - "@graphql-tools/utils" "^9.0.0" - change-case-all "1.0.15" - common-tags "1.8.2" - import-from "4.0.0" - lodash "~4.17.0" - tslib "~2.5.0" - -"@graphql-codegen/schema-ast@^3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@graphql-codegen/schema-ast/-/schema-ast-3.0.1.tgz#37b458bb57b95715a9eb4259341c856dae2a461d" - integrity sha512-rTKTi4XiW4QFZnrEqetpiYEWVsOFNoiR/v3rY9mFSttXFbIwNXPme32EspTiGWmEEdHY8UuTDtZN3vEcs/31zw== - dependencies: - "@graphql-codegen/plugin-helpers" "^4.1.0" - "@graphql-tools/utils" "^9.0.0" - tslib "~2.5.0" - -"@graphql-codegen/typescript-graphql-request@^4.5.9": - version "4.5.9" - resolved "https://registry.yarnpkg.com/@graphql-codegen/typescript-graphql-request/-/typescript-graphql-request-4.5.9.tgz#d8a9488b7419cabf2ca98ae3936e82b9d244f2e9" - integrity sha512-Vtv5qymUXcR4UFdHOlJHzK5TN+CZUwMwFDGb3n4Gjcr4yln1BWbUb7DXgD0GHzpXwDIj5G2XmJnFtr0jihBfrg== - dependencies: - "@graphql-codegen/plugin-helpers" "^3.0.0" - "@graphql-codegen/visitor-plugin-common" "2.13.1" - auto-bind "~4.0.0" - tslib "~2.4.0" - -"@graphql-codegen/typescript-operations@^3.0.3": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@graphql-codegen/typescript-operations/-/typescript-operations-3.0.4.tgz#60163c07f0ef73655779ece450d02c1172c44027" - integrity sha512-6yE2OL2+WJ1vd5MwFEGXpaxsFGzjAGUytPVHDML3Bi3TwP1F3lnQlIko4untwvHW0JhZEGQ7Ck30H9HjcxpdKA== - dependencies: - "@graphql-codegen/plugin-helpers" "^4.2.0" - "@graphql-codegen/typescript" "^3.0.4" - "@graphql-codegen/visitor-plugin-common" "3.1.1" - auto-bind "~4.0.0" - tslib "~2.5.0" - -"@graphql-codegen/typescript@^3.0.3", "@graphql-codegen/typescript@^3.0.4": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@graphql-codegen/typescript/-/typescript-3.0.4.tgz#e12dc106a2722ebc7d18556980ccf47fa9d0805f" - integrity sha512-x4O47447DZrWNtE/l5CU9QzzW4m1RbmCEdijlA3s2flG/y1Ckqdemob4CWfilSm5/tZ3w1junVDY616RDTSvZw== - dependencies: - "@graphql-codegen/plugin-helpers" "^4.2.0" - "@graphql-codegen/schema-ast" "^3.0.1" - "@graphql-codegen/visitor-plugin-common" "3.1.1" - auto-bind "~4.0.0" - tslib "~2.5.0" - -"@graphql-codegen/visitor-plugin-common@2.13.1": - version "2.13.1" - resolved "https://registry.yarnpkg.com/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-2.13.1.tgz#2228660f6692bcdb96b1f6d91a0661624266b76b" - integrity sha512-mD9ufZhDGhyrSaWQGrU1Q1c5f01TeWtSWy/cDwXYjJcHIj1Y/DG2x0tOflEfCvh5WcnmHNIw4lzDsg1W7iFJEg== - dependencies: - "@graphql-codegen/plugin-helpers" "^2.7.2" - "@graphql-tools/optimize" "^1.3.0" - "@graphql-tools/relay-operation-optimizer" "^6.5.0" - "@graphql-tools/utils" "^8.8.0" - auto-bind "~4.0.0" - change-case-all "1.0.14" - dependency-graph "^0.11.0" - graphql-tag "^2.11.0" - parse-filepath "^1.0.2" - tslib "~2.4.0" - -"@graphql-codegen/visitor-plugin-common@3.1.1": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-3.1.1.tgz#50c2aa3c537a805ce68d2f115d0a9811b151428c" - integrity sha512-uAfp+zu/009R3HUAuTK2AamR1bxIltM6rrYYI6EXSmkM3rFtFsLTuJhjUDj98HcUCszJZrADppz8KKLGRUVlNg== - dependencies: - "@graphql-codegen/plugin-helpers" "^4.2.0" - "@graphql-tools/optimize" "^1.3.0" - "@graphql-tools/relay-operation-optimizer" "^6.5.0" - "@graphql-tools/utils" "^9.0.0" - auto-bind "~4.0.0" - change-case-all "1.0.15" - dependency-graph "^0.11.0" - graphql-tag "^2.11.0" - parse-filepath "^1.0.2" - tslib "~2.5.0" - -"@graphql-tools/apollo-engine-loader@^7.3.6": - version "7.3.26" - resolved "https://registry.yarnpkg.com/@graphql-tools/apollo-engine-loader/-/apollo-engine-loader-7.3.26.tgz#91e54460d5579933e42a2010b8688c3459c245d8" - integrity sha512-h1vfhdJFjnCYn9b5EY1Z91JTF0KB3hHVJNQIsiUV2mpQXZdeOXQoaWeYEKaiI5R6kwBw5PP9B0fv3jfUIG8LyQ== - dependencies: - "@ardatan/sync-fetch" "^0.0.1" - "@graphql-tools/utils" "^9.2.1" - "@whatwg-node/fetch" "^0.8.0" - tslib "^2.4.0" - -"@graphql-tools/batch-execute@^8.5.22": - version "8.5.22" - resolved "https://registry.yarnpkg.com/@graphql-tools/batch-execute/-/batch-execute-8.5.22.tgz#a742aa9d138fe794e786d8fb6429665dc7df5455" - integrity sha512-hcV1JaY6NJQFQEwCKrYhpfLK8frSXDbtNMoTur98u10Cmecy1zrqNKSqhEyGetpgHxaJRqszGzKeI3RuroDN6A== - dependencies: - "@graphql-tools/utils" "^9.2.1" - dataloader "^2.2.2" - tslib "^2.4.0" - value-or-promise "^1.0.12" - -"@graphql-tools/code-file-loader@^7.3.17": - version "7.3.23" - resolved "https://registry.yarnpkg.com/@graphql-tools/code-file-loader/-/code-file-loader-7.3.23.tgz#33793f9a1f8e74981f8ae6ec4ab7061f9713db15" - integrity sha512-8Wt1rTtyTEs0p47uzsPJ1vAtfAx0jmxPifiNdmo9EOCuUPyQGEbMaik/YkqZ7QUFIEYEQu+Vgfo8tElwOPtx5Q== - dependencies: - "@graphql-tools/graphql-tag-pluck" "7.5.2" - "@graphql-tools/utils" "^9.2.1" - globby "^11.0.3" - tslib "^2.4.0" - unixify "^1.0.0" - -"@graphql-tools/delegate@^9.0.31": - version "9.0.35" - resolved "https://registry.yarnpkg.com/@graphql-tools/delegate/-/delegate-9.0.35.tgz#94683f4bcec63520b4a6c8b2abf2e2e9324ea4f1" - integrity sha512-jwPu8NJbzRRMqi4Vp/5QX1vIUeUPpWmlQpOkXQD2r1X45YsVceyUUBnktCrlJlDB4jPRVy7JQGwmYo3KFiOBMA== - dependencies: - "@graphql-tools/batch-execute" "^8.5.22" - "@graphql-tools/executor" "^0.0.20" - "@graphql-tools/schema" "^9.0.19" - "@graphql-tools/utils" "^9.2.1" - dataloader "^2.2.2" - tslib "^2.5.0" - value-or-promise "^1.0.12" - -"@graphql-tools/executor-graphql-ws@^0.0.14": - version "0.0.14" - resolved "https://registry.yarnpkg.com/@graphql-tools/executor-graphql-ws/-/executor-graphql-ws-0.0.14.tgz#e0f53fc4cfc8a06cc461b2bc1edb4bb9a8e837ed" - integrity sha512-P2nlkAsPZKLIXImFhj0YTtny5NQVGSsKnhi7PzXiaHSXc6KkzqbWZHKvikD4PObanqg+7IO58rKFpGXP7eeO+w== - dependencies: - "@graphql-tools/utils" "^9.2.1" - "@repeaterjs/repeater" "3.0.4" - "@types/ws" "^8.0.0" - graphql-ws "5.12.1" - isomorphic-ws "5.0.0" - tslib "^2.4.0" - ws "8.13.0" - -"@graphql-tools/executor-http@^0.1.7", "@graphql-tools/executor-http@^0.1.9": - version "0.1.10" - resolved "https://registry.yarnpkg.com/@graphql-tools/executor-http/-/executor-http-0.1.10.tgz#faf48e18e62a925796c9653c2f50cf2095bc8e6f" - integrity sha512-hnAfbKv0/lb9s31LhWzawQ5hghBfHS+gYWtqxME6Rl0Aufq9GltiiLBcl7OVVOnkLF0KhwgbYP1mB5VKmgTGpg== - dependencies: - "@graphql-tools/utils" "^9.2.1" - "@repeaterjs/repeater" "^3.0.4" - "@whatwg-node/fetch" "^0.8.1" - dset "^3.1.2" - extract-files "^11.0.0" - meros "^1.2.1" - tslib "^2.4.0" - value-or-promise "^1.0.12" - -"@graphql-tools/executor-legacy-ws@^0.0.11": - version "0.0.11" - resolved "https://registry.yarnpkg.com/@graphql-tools/executor-legacy-ws/-/executor-legacy-ws-0.0.11.tgz#a1e12be8279e92a363a23d4105461a34cd9e389e" - integrity sha512-4ai+NnxlNfvIQ4c70hWFvOZlSUN8lt7yc+ZsrwtNFbFPH/EroIzFMapAxM9zwyv9bH38AdO3TQxZ5zNxgBdvUw== - dependencies: - "@graphql-tools/utils" "^9.2.1" - "@types/ws" "^8.0.0" - isomorphic-ws "5.0.0" - tslib "^2.4.0" - ws "8.13.0" - -"@graphql-tools/executor@^0.0.20": - version "0.0.20" - resolved "https://registry.yarnpkg.com/@graphql-tools/executor/-/executor-0.0.20.tgz#d51d159696e839522dd49d936636af251670e425" - integrity sha512-GdvNc4vszmfeGvUqlcaH1FjBoguvMYzxAfT6tDd4/LgwymepHhinqLNA5otqwVLW+JETcDaK7xGENzFomuE6TA== - dependencies: - "@graphql-tools/utils" "^9.2.1" - "@graphql-typed-document-node/core" "3.2.0" - "@repeaterjs/repeater" "^3.0.4" - tslib "^2.4.0" - value-or-promise "^1.0.12" - -"@graphql-tools/git-loader@^7.2.13": - version "7.3.0" - resolved "https://registry.yarnpkg.com/@graphql-tools/git-loader/-/git-loader-7.3.0.tgz#ca10c17d4f58c4592432d9d2ac1c2b393aebad16" - integrity sha512-gcGAK+u16eHkwsMYqqghZbmDquh8QaO24Scsxq+cVR+vx1ekRlsEiXvu+yXVDbZdcJ6PBIbeLcQbEu+xhDLmvQ== - dependencies: - "@graphql-tools/graphql-tag-pluck" "7.5.2" - "@graphql-tools/utils" "^9.2.1" - is-glob "4.0.3" - micromatch "^4.0.4" - tslib "^2.4.0" - unixify "^1.0.0" - -"@graphql-tools/github-loader@^7.3.20": - version "7.3.28" - resolved "https://registry.yarnpkg.com/@graphql-tools/github-loader/-/github-loader-7.3.28.tgz#a7166b136e8442bd8b3ab943ad3b66c84bcabfcf" - integrity sha512-OK92Lf9pmxPQvjUNv05b3tnVhw0JRfPqOf15jZjyQ8BfdEUrJoP32b4dRQQem/wyRL24KY4wOfArJNqzpsbwCA== - dependencies: - "@ardatan/sync-fetch" "^0.0.1" - "@graphql-tools/executor-http" "^0.1.9" - "@graphql-tools/graphql-tag-pluck" "^7.4.6" - "@graphql-tools/utils" "^9.2.1" - "@whatwg-node/fetch" "^0.8.0" - tslib "^2.4.0" - value-or-promise "^1.0.12" - -"@graphql-tools/graphql-file-loader@^7.3.7", "@graphql-tools/graphql-file-loader@^7.5.0": - version "7.5.17" - resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-file-loader/-/graphql-file-loader-7.5.17.tgz#7c281617ea3ab4db4d42a2bdb49850f2b937f0f9" - integrity sha512-hVwwxPf41zOYgm4gdaZILCYnKB9Zap7Ys9OhY1hbwuAuC4MMNY9GpUjoTU3CQc3zUiPoYStyRtUGkHSJZ3HxBw== - dependencies: - "@graphql-tools/import" "6.7.18" - "@graphql-tools/utils" "^9.2.1" - globby "^11.0.3" - tslib "^2.4.0" - unixify "^1.0.0" - -"@graphql-tools/graphql-tag-pluck@7.5.2", "@graphql-tools/graphql-tag-pluck@^7.4.6": - version "7.5.2" - resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-7.5.2.tgz#502f1e066e19d832ebdeba5f571d7636dc27572d" - integrity sha512-RW+H8FqOOLQw0BPXaahYepVSRjuOHw+7IL8Opaa5G5uYGOBxoXR7DceyQ7BcpMgktAOOmpDNQ2WtcboChOJSRA== - dependencies: - "@babel/parser" "^7.16.8" - "@babel/plugin-syntax-import-assertions" "^7.20.0" - "@babel/traverse" "^7.16.8" - "@babel/types" "^7.16.8" - "@graphql-tools/utils" "^9.2.1" - tslib "^2.4.0" - -"@graphql-tools/import@6.7.18": - version "6.7.18" - resolved "https://registry.yarnpkg.com/@graphql-tools/import/-/import-6.7.18.tgz#ad092d8a4546bb6ffc3e871e499eec7ac368680b" - integrity sha512-XQDdyZTp+FYmT7as3xRWH/x8dx0QZA2WZqfMF5EWb36a0PiH7WwlRQYIdyYXj8YCLpiWkeBXgBRHmMnwEYR8iQ== - dependencies: - "@graphql-tools/utils" "^9.2.1" - resolve-from "5.0.0" - tslib "^2.4.0" - -"@graphql-tools/json-file-loader@^7.3.7", "@graphql-tools/json-file-loader@^7.4.1": - version "7.4.18" - resolved "https://registry.yarnpkg.com/@graphql-tools/json-file-loader/-/json-file-loader-7.4.18.tgz#d78ae40979bde51cfc59717757354afc9e35fba2" - integrity sha512-AJ1b6Y1wiVgkwsxT5dELXhIVUPs/u3VZ8/0/oOtpcoyO/vAeM5rOvvWegzicOOnQw8G45fgBRMkkRfeuwVt6+w== - dependencies: - "@graphql-tools/utils" "^9.2.1" - globby "^11.0.3" - tslib "^2.4.0" - unixify "^1.0.0" - -"@graphql-tools/load@^7.5.5", "@graphql-tools/load@^7.8.0": - version "7.8.14" - resolved "https://registry.yarnpkg.com/@graphql-tools/load/-/load-7.8.14.tgz#f2356f9a5f658a42e33934ae036e4b2cadf2d1e9" - integrity sha512-ASQvP+snHMYm+FhIaLxxFgVdRaM0vrN9wW2BKInQpktwWTXVyk+yP5nQUCEGmn0RTdlPKrffBaigxepkEAJPrg== - dependencies: - "@graphql-tools/schema" "^9.0.18" - "@graphql-tools/utils" "^9.2.1" - p-limit "3.1.0" - tslib "^2.4.0" - -"@graphql-tools/merge@^8.2.6", "@graphql-tools/merge@^8.4.1": - version "8.4.2" - resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-8.4.2.tgz#95778bbe26b635e8d2f60ce9856b388f11fe8288" - integrity sha512-XbrHAaj8yDuINph+sAfuq3QCZ/tKblrTLOpirK0+CAgNlZUCHs0Fa+xtMUURgwCVThLle1AF7svJCxFizygLsw== - dependencies: - "@graphql-tools/utils" "^9.2.1" - tslib "^2.4.0" - -"@graphql-tools/optimize@^1.3.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@graphql-tools/optimize/-/optimize-1.4.0.tgz#20d6a9efa185ef8fc4af4fd409963e0907c6e112" - integrity sha512-dJs/2XvZp+wgHH8T5J2TqptT9/6uVzIYvA6uFACha+ufvdMBedkfR4b4GbT8jAKLRARiqRTxy3dctnwkTM2tdw== - dependencies: - tslib "^2.4.0" - -"@graphql-tools/prisma-loader@^7.2.49": - version "7.2.72" - resolved "https://registry.yarnpkg.com/@graphql-tools/prisma-loader/-/prisma-loader-7.2.72.tgz#6304fc23600458396f3ede713d8e2371df7850e3" - integrity sha512-0a7uV7Fky6yDqd0tI9+XMuvgIo6GAqiVzzzFV4OSLry4AwiQlI3igYseBV7ZVOGhedOTqj/URxjpiv07hRcwag== - dependencies: - "@graphql-tools/url-loader" "^7.17.18" - "@graphql-tools/utils" "^9.2.1" - "@types/js-yaml" "^4.0.0" - "@types/json-stable-stringify" "^1.0.32" - "@whatwg-node/fetch" "^0.8.2" - chalk "^4.1.0" - debug "^4.3.1" - dotenv "^16.0.0" - graphql-request "^6.0.0" - http-proxy-agent "^6.0.0" - https-proxy-agent "^6.0.0" - jose "^4.11.4" - js-yaml "^4.0.0" - json-stable-stringify "^1.0.1" - lodash "^4.17.20" - scuid "^1.1.0" - tslib "^2.4.0" - yaml-ast-parser "^0.0.43" - -"@graphql-tools/relay-operation-optimizer@^6.5.0": - version "6.5.18" - resolved "https://registry.yarnpkg.com/@graphql-tools/relay-operation-optimizer/-/relay-operation-optimizer-6.5.18.tgz#a1b74a8e0a5d0c795b8a4d19629b654cf66aa5ab" - integrity sha512-mc5VPyTeV+LwiM+DNvoDQfPqwQYhPV/cl5jOBjTgSniyaq8/86aODfMkrE2OduhQ5E00hqrkuL2Fdrgk0w1QJg== - dependencies: - "@ardatan/relay-compiler" "12.0.0" - "@graphql-tools/utils" "^9.2.1" - tslib "^2.4.0" - -"@graphql-tools/schema@^9.0.0", "@graphql-tools/schema@^9.0.18", "@graphql-tools/schema@^9.0.19": - version "9.0.19" - resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-9.0.19.tgz#c4ad373b5e1b8a0cf365163435b7d236ebdd06e7" - integrity sha512-oBRPoNBtCkk0zbUsyP4GaIzCt8C0aCI4ycIRUL67KK5pOHljKLBBtGT+Jr6hkzA74C8Gco8bpZPe7aWFjiaK2w== - dependencies: - "@graphql-tools/merge" "^8.4.1" - "@graphql-tools/utils" "^9.2.1" - tslib "^2.4.0" - value-or-promise "^1.0.12" - -"@graphql-tools/url-loader@^7.13.2", "@graphql-tools/url-loader@^7.17.18", "@graphql-tools/url-loader@^7.9.7": - version "7.17.18" - resolved "https://registry.yarnpkg.com/@graphql-tools/url-loader/-/url-loader-7.17.18.tgz#3e253594d23483e4c0dd3a4c3dd2ad5cd0141192" - integrity sha512-ear0CiyTj04jCVAxi7TvgbnGDIN2HgqzXzwsfcqiVg9cvjT40NcMlZ2P1lZDgqMkZ9oyLTV8Bw6j+SyG6A+xPw== - dependencies: - "@ardatan/sync-fetch" "^0.0.1" - "@graphql-tools/delegate" "^9.0.31" - "@graphql-tools/executor-graphql-ws" "^0.0.14" - "@graphql-tools/executor-http" "^0.1.7" - "@graphql-tools/executor-legacy-ws" "^0.0.11" - "@graphql-tools/utils" "^9.2.1" - "@graphql-tools/wrap" "^9.4.2" - "@types/ws" "^8.0.0" - "@whatwg-node/fetch" "^0.8.0" - isomorphic-ws "^5.0.0" - tslib "^2.4.0" - value-or-promise "^1.0.11" - ws "^8.12.0" - -"@graphql-tools/utils@^8.8.0": - version "8.13.1" - resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-8.13.1.tgz#b247607e400365c2cd87ff54654d4ad25a7ac491" - integrity sha512-qIh9yYpdUFmctVqovwMdheVNJqFh+DQNWIhX87FJStfXYnmweBUDATok9fWPleKeFwxnW8IapKmY8m8toJEkAw== - dependencies: - tslib "^2.4.0" - -"@graphql-tools/utils@^9.0.0", "@graphql-tools/utils@^9.1.1", "@graphql-tools/utils@^9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-9.2.1.tgz#1b3df0ef166cfa3eae706e3518b17d5922721c57" - integrity sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A== - dependencies: - "@graphql-typed-document-node/core" "^3.1.1" - tslib "^2.4.0" - -"@graphql-tools/wrap@^9.4.2": - version "9.4.2" - resolved "https://registry.yarnpkg.com/@graphql-tools/wrap/-/wrap-9.4.2.tgz#30835587c4c73be1780908a7cb077d8013aa2703" - integrity sha512-DFcd9r51lmcEKn0JW43CWkkI2D6T9XI1juW/Yo86i04v43O9w2/k4/nx2XTJv4Yv+iXwUw7Ok81PGltwGJSDSA== - dependencies: - "@graphql-tools/delegate" "^9.0.31" - "@graphql-tools/schema" "^9.0.18" - "@graphql-tools/utils" "^9.2.1" - tslib "^2.4.0" - value-or-promise "^1.0.12" - -"@graphql-typed-document-node/core@3.2.0", "@graphql-typed-document-node/core@^3.1.1", "@graphql-typed-document-node/core@^3.2.0": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.2.0.tgz#5f3d96ec6b2354ad6d8a28bf216a1d97b5426861" - integrity sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ== - -"@grpc/grpc-js@^1.7.1", "@grpc/grpc-js@^1.7.3": - version "1.9.11" - resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.9.11.tgz#7b21195c910a49c0bb5d0df21d28a30c4e174851" - integrity sha512-QDhMfbTROOXUhLHMroow8f3EHiCKUOh6UwxMP5S3EuXMnWMNSVIhatGZRwkpg9OUTYdZPsDUVH3cOAkWhGFUJw== - dependencies: - "@grpc/proto-loader" "^0.7.8" - "@types/node" ">=12.12.47" - -"@grpc/proto-loader@^0.7.8": - version "0.7.10" - resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.7.10.tgz#6bf26742b1b54d0a473067743da5d3189d06d720" - integrity sha512-CAqDfoaQ8ykFd9zqBDn4k6iWT9loLAlc2ETmDFS9JCD70gDcnA4L3AFEo2iV7KyAtAAHFW9ftq1Fz+Vsgq80RQ== - dependencies: - lodash.camelcase "^4.3.0" - long "^5.0.0" - protobufjs "^7.2.4" - yargs "^17.7.2" - -"@honeycombio/opentelemetry-node@^0.5.0": - version "0.5.0" - resolved "https://registry.yarnpkg.com/@honeycombio/opentelemetry-node/-/opentelemetry-node-0.5.0.tgz#67f3eb12b923199bf83d3a32758e9091012a9e2b" - integrity sha512-bAg//j0Lh0SFC0LhUrrgpO4FVScOBDt+my4YXeIo9lHi1aXXn6meaB/ycecjVfjyQLaGYWKPKu2C66rTgKIzMQ== - dependencies: - "@grpc/grpc-js" "^1.7.3" - "@opentelemetry/api" "^1.4.1" - "@opentelemetry/core" "^1.13.0" - "@opentelemetry/exporter-metrics-otlp-grpc" "^0.41.0" - "@opentelemetry/exporter-metrics-otlp-proto" "^0.39.1" - "@opentelemetry/exporter-trace-otlp-grpc" "^0.41.0" - "@opentelemetry/exporter-trace-otlp-proto" "^0.41.0" - "@opentelemetry/resources" "^1.13.0" - "@opentelemetry/sdk-metrics" "^1.13.0" - "@opentelemetry/sdk-node" "^0.39.1" - "@opentelemetry/sdk-trace-base" "^1.13.0" - axios "^1.1.3" - -"@humanwhocodes/config-array@^0.11.10", "@humanwhocodes/config-array@^0.11.13": - version "0.11.13" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.13.tgz#075dc9684f40a531d9b26b0822153c1e832ee297" - integrity sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ== - dependencies: - "@humanwhocodes/object-schema" "^2.0.1" - debug "^4.1.1" - minimatch "^3.0.5" - -"@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" - integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== - -"@humanwhocodes/momoa@^2.0.2": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@humanwhocodes/momoa/-/momoa-2.0.4.tgz#8b9e7a629651d15009c3587d07a222deeb829385" - integrity sha512-RE815I4arJFtt+FVeU1Tgp9/Xvecacji8w/V6XtXsWWH/wz/eNkNbhb+ny/+PlVZjV0rxQpRSQKNKE3lcktHEA== - -"@humanwhocodes/object-schema@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz#e5211452df060fa8522b55c7b3c0c4d1981cb044" - integrity sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw== - -"@iden3/bigarray@0.0.2": - version "0.0.2" - resolved "https://registry.yarnpkg.com/@iden3/bigarray/-/bigarray-0.0.2.tgz#6fc4ba5be18daf8a26ee393f2fb62b80d98c05e9" - integrity sha512-Xzdyxqm1bOFF6pdIsiHLLl3HkSLjbhqJHVyqaTxXt3RqXBEnmsUmEW47H7VOi/ak7TdkRpNkxjyK5Zbkm+y52g== - -"@iden3/binfileutils@0.0.11": - version "0.0.11" - resolved "https://registry.yarnpkg.com/@iden3/binfileutils/-/binfileutils-0.0.11.tgz#9ffbbcc1279f2b2182bb6dcff4eee8a5b2167911" - integrity sha512-LylnJoZ0CTdgErnKY8OxohvW4K+p6UHD3sxt+3P9AmMyBQjYR4IpoqoYZZ+9aMj89cmCQ21UvdhndAx04er3NA== - dependencies: - fastfile "0.0.20" - ffjavascript "^0.2.48" - -"@iden3/binfileutils@0.0.8": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@iden3/binfileutils/-/binfileutils-0.0.8.tgz#d1d349bdbaa9f0a99644232c7d75ea0db98ea1c7" - integrity sha512-/GqTsujUssGuQY+sd/XaLrA+OiCwzm+6yH28C57QQDWCHET2Logry9fGxU10n6XKdhCQBjZ7T/YMQkLwwkpRTQ== - dependencies: - fastfile "0.0.19" - ffjavascript "^0.2.30" - -"@import-maps/resolve@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@import-maps/resolve/-/resolve-1.0.1.tgz#1e9fcadcf23aa0822256a329aabca241879d37c9" - integrity sha512-tWZNBIS1CoekcwlMuyG2mr0a1Wo5lb5lEHwwWvZo+5GLgr3e9LLDTtmgtCWEwBpXMkxn9D+2W9j2FY6eZQq0tA== - -"@intlify/bundle-utils@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@intlify/bundle-utils/-/bundle-utils-4.0.0.tgz#29c1d602c7e4e33b516581496a7c6740ed7e2585" - integrity sha512-klXrYT9VXyKEXsD6UY3pShg0O5MPC07n0TZ5RrSs5ry6T1eZVolIFGJi9c3qcDrh1qjJxgikRnPBmD7qGDqbjw== - dependencies: - "@intlify/message-compiler" next - "@intlify/shared" next - jsonc-eslint-parser "^1.0.1" - source-map "0.6.1" - yaml-eslint-parser "^0.3.2" - -"@intlify/core-base@9.7.1": - version "9.7.1" - resolved "https://registry.yarnpkg.com/@intlify/core-base/-/core-base-9.7.1.tgz#d31315a8e9cf027678b65a4155287143ab91b8fd" - integrity sha512-jPJTeECEhqQ7g//8g3Fb79j5SzSSRqlFCWD6pcX94uMLXU+L1m07gVZnnvzoJBnaMyJHiiwxOqZVfvu6rQfLvw== - dependencies: - "@intlify/message-compiler" "9.7.1" - "@intlify/shared" "9.7.1" - -"@intlify/message-compiler@9.7.1": - version "9.7.1" - resolved "https://registry.yarnpkg.com/@intlify/message-compiler/-/message-compiler-9.7.1.tgz#2cd5f26c6b9f19afffd62e69d192cc4e9e51ba9a" - integrity sha512-HfIr2Hn/K7b0Zv4kGqkxAxwtipyxAwhI9a3krN5cuhH/G9gkaik7of1PdzjR3Mix43t2onBiKYQyaU7mo7e0aA== - dependencies: - "@intlify/shared" "9.7.1" - source-map-js "^1.0.2" - -"@intlify/message-compiler@next": - version "9.4.1" - resolved "https://registry.yarnpkg.com/@intlify/message-compiler/-/message-compiler-9.4.1.tgz#aa00629a455e23cece3464293834a02994b4fb04" - integrity sha512-aN2N+dUx320108QhH51Ycd2LEpZ+NKbzyQ2kjjhqMcxhHdxtOnkgdx+MDBhOy/CObwBmhC3Nygzc6hNlfKvPNw== - dependencies: - "@intlify/shared" "9.4.1" - source-map-js "^1.0.2" - -"@intlify/shared@9.4.1", "@intlify/shared@next": - version "9.4.1" - resolved "https://registry.yarnpkg.com/@intlify/shared/-/shared-9.4.1.tgz#bd0d221aaac476b6778a10ddcd0472f812c64e27" - integrity sha512-A51elBmZWf1FS80inf/32diO9DeXoqg9GR9aUDHFcfHoNDuT46Q+fpPOdj8jiJnSHSBh8E1E+6qWRhAZXdK3Ng== - -"@intlify/shared@9.7.1": - version "9.7.1" - resolved "https://registry.yarnpkg.com/@intlify/shared/-/shared-9.7.1.tgz#a4902421aacda2d716981eb9528aef0163c7bb0a" - integrity sha512-CBKnHzlUYGrk5QII9q4nElAQKO5cX1rRx8VmSWXltyOZjbkGHXYQTHULn6KwRi+CypuBCfmPkyPBHMzosypIeg== - -"@intlify/unplugin-vue-i18n@^0.8.1": - version "0.8.2" - resolved "https://registry.yarnpkg.com/@intlify/unplugin-vue-i18n/-/unplugin-vue-i18n-0.8.2.tgz#4196cb5bee4243bb3a33af76ce9663f3e106809a" - integrity sha512-cRnzPqSEZQOmTD+p4pwc3RTS9HxreLqfID0keoqZDZweCy/CGRMLLTNd15S4TUf1vSBhPF03DItEFDr1F+8MDA== - dependencies: - "@intlify/bundle-utils" "^4.0.0" - "@intlify/shared" next - "@rollup/pluginutils" "^4.2.0" - "@vue/compiler-sfc" "^3.2.45" - debug "^4.3.1" - fast-glob "^3.2.5" - js-yaml "^4.1.0" - json5 "^2.2.0" - pathe "^1.0.0" - picocolors "^1.0.0" - source-map "0.6.1" - unplugin "^1.0.0" - -"@ioredis/commands@^1.1.1": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@ioredis/commands/-/commands-1.2.0.tgz#6d61b3097470af1fdbbe622795b8921d42018e11" - integrity sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg== - -"@ipld/dag-cbor@^7.0.0": - version "7.0.3" - resolved "https://registry.yarnpkg.com/@ipld/dag-cbor/-/dag-cbor-7.0.3.tgz#aa31b28afb11a807c3d627828a344e5521ac4a1e" - integrity sha512-1VVh2huHsuohdXC1bGJNE8WR72slZ9XE2T3wbBBq31dm7ZBatmKLLxrB+XAqafxfRFjv08RZmj/W/ZqaM13AuA== - dependencies: - cborg "^1.6.0" - multiformats "^9.5.4" - -"@ipld/dag-json@^8.0.1": - version "8.0.11" - resolved "https://registry.yarnpkg.com/@ipld/dag-json/-/dag-json-8.0.11.tgz#8d30cc2dfacb0aef04d327465d3df91e79e8b6ce" - integrity sha512-Pea7JXeYHTWXRTIhBqBlhw7G53PJ7yta3G/sizGEZyzdeEwhZRr0od5IQ0r2ZxOt1Do+2czddjeEPp+YTxDwCA== - dependencies: - cborg "^1.5.4" - multiformats "^9.5.4" - -"@ipld/dag-pb@^2.1.3": - version "2.1.18" - resolved "https://registry.yarnpkg.com/@ipld/dag-pb/-/dag-pb-2.1.18.tgz#12d63e21580e87c75fd1a2c62e375a78e355c16f" - integrity sha512-ZBnf2fuX9y3KccADURG5vb9FaOeMjFkCrNysB0PtftME/4iCTjxfaLoNq/IAh5fTqUOMXvryN6Jyka4ZGuMLIg== - dependencies: - multiformats "^9.5.4" - -"@jest/types@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.5.1.tgz#3c79ec4a8ba61c170bf937bcf9e98a9df175ec80" - integrity sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^16.0.0" - chalk "^4.0.0" - -"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": - version "0.3.3" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" - 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" - integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== - -"@jridgewell/set-array@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" - integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== - -"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.13", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.4.15": - version "1.4.15" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" - integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== - -"@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" - integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== - dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.20" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz#72e45707cf240fa6b081d0366f8265b0cd10197f" - integrity sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q== - dependencies: - "@jridgewell/resolve-uri" "^3.1.0" - "@jridgewell/sourcemap-codec" "^1.4.14" - -"@kleros/gtcr-encoder@1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@kleros/gtcr-encoder/-/gtcr-encoder-1.4.0.tgz#8c2dc9497e271ab7a84da124c43ba449bc6e39bc" - integrity sha512-HSLly6CY1f9hBtC9TQV8LcyZ78e9YBhrWlB7VTFyZGr1fvh6ky4/E/xnPt/OLaVNosSZeg5XpTQksOm0LLRFrQ== - dependencies: - bn.js "^5.1.2" - ethers "^5.0.3" - rlp "^2.2.5" - -"@kleros/gtcr-encoder@^1.4.0": - version "1.6.1" - resolved "https://registry.yarnpkg.com/@kleros/gtcr-encoder/-/gtcr-encoder-1.6.1.tgz#665a652cd004ec0e9e2bfda9d2dec9fda3df236a" - integrity sha512-MlkswcT1B6xIgDEOAs0cdfd6UWUBMmFpQxeEKonIXpdG2Rjg1ZmQU82rr4MiWHflycA7nzYPqlQk+q/OGQRQbQ== - dependencies: - bn.js "^5.1.2" - ethers "^5.0.3" - rlp "^2.2.5" - -"@lit-labs/ssr-dom-shim@^1.0.0", "@lit-labs/ssr-dom-shim@^1.1.0": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.1.2.tgz#d693d972974a354034454ec1317eb6afd0b00312" - integrity sha512-jnOD+/+dSrfTWYfSXBXlo5l5f0q1UuJo3tkbMDCYA2lKUYq79jaxqtGEvnRoh049nt1vdo1+45RinipU6FGY2g== - -"@lit/reactive-element@^1.3.0", "@lit/reactive-element@^1.6.0": - version "1.6.3" - resolved "https://registry.yarnpkg.com/@lit/reactive-element/-/reactive-element-1.6.3.tgz#25b4eece2592132845d303e091bad9b04cdcfe03" - integrity sha512-QuTgnG52Poic7uM1AN5yJ09QMe0O28e10XzSvWDz02TJiiKee4stsiownEIadWm8nYzyDAyT+gKzUoZmiWQtsQ== - dependencies: - "@lit-labs/ssr-dom-shim" "^1.0.0" - -"@ljharb/resumer@~0.0.1": - version "0.0.1" - resolved "https://registry.yarnpkg.com/@ljharb/resumer/-/resumer-0.0.1.tgz#8a940a9192dd31f6a1df17564bbd26dc6ad3e68d" - 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.yarnpkg.com/@ljharb/through/-/through-2.3.11.tgz#783600ff12c06f21a76cc26e33abd0b1595092f9" - integrity sha512-ccfcIDlogiXNq5KcbAwbaO7lMh3Tm1i3khMPYpxlK8hH/W53zN81KM9coerRLOnTGu3nfXIniAmQbRI9OxbC0w== - dependencies: - call-bind "^1.0.2" - -"@lukeed/ms@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@lukeed/ms/-/ms-2.0.1.tgz#3c2bbc258affd9cc0e0cc7828477383c73afa6ee" - integrity sha512-Xs/4RZltsAL7pkvaNStUQt7netTkyxrS0K+RILcVr3TRMS/ToOg4I6uNfhB9SlGsnWBym4U+EaXq0f0cEMNkHA== - -"@mapbox/node-pre-gyp@^1.0.5": - version "1.0.11" - resolved "https://registry.yarnpkg.com/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz#417db42b7f5323d79e93b34a6d7a2a12c0df43fa" - integrity sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ== - dependencies: - detect-libc "^2.0.0" - https-proxy-agent "^5.0.0" - make-dir "^3.1.0" - node-fetch "^2.6.7" - nopt "^5.0.0" - npmlog "^5.0.1" - rimraf "^3.0.2" - semver "^7.3.5" - tar "^6.1.11" - -"@metamask/eth-sig-util@^4.0.0": - version "4.0.1" - 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" - ethereumjs-util "^6.2.1" - ethjs-util "^0.1.6" - tweetnacl "^1.0.3" - tweetnacl-util "^0.15.1" - -"@motionone/animation@^10.15.1", "@motionone/animation@^10.16.3": - version "10.16.3" - resolved "https://registry.yarnpkg.com/@motionone/animation/-/animation-10.16.3.tgz#f5b71e27fd8b88b61f983adb0ed6c8e3e89281f9" - integrity sha512-QUGWpLbMFLhyqKlngjZhjtxM8IqiJQjLK0DF+XOF6od9nhSvlaeEpOY/UMCRVcZn/9Tr2rZO22EkuCIjYdI74g== - dependencies: - "@motionone/easing" "^10.16.3" - "@motionone/types" "^10.16.3" - "@motionone/utils" "^10.16.3" - tslib "^2.3.1" - -"@motionone/dom@^10.16.2", "@motionone/dom@^10.16.4": - version "10.16.4" - resolved "https://registry.yarnpkg.com/@motionone/dom/-/dom-10.16.4.tgz#9385716928cc2d5b3208a7dcaf504b69b47fd1ae" - integrity sha512-HPHlVo/030qpRj9R8fgY50KTN4Ko30moWRTA3L3imrsRBmob93cTYmodln49HYFbQm01lFF7X523OkKY0DX6UA== - dependencies: - "@motionone/animation" "^10.16.3" - "@motionone/generators" "^10.16.4" - "@motionone/types" "^10.16.3" - "@motionone/utils" "^10.16.3" - hey-listen "^1.0.8" - tslib "^2.3.1" - -"@motionone/easing@^10.16.3": - version "10.16.3" - resolved "https://registry.yarnpkg.com/@motionone/easing/-/easing-10.16.3.tgz#a62abe0ba2841861f167f286782e287eab8d7466" - integrity sha512-HWTMZbTmZojzwEuKT/xCdvoMPXjYSyQvuVM6jmM0yoGU6BWzsmYMeB4bn38UFf618fJCNtP9XeC/zxtKWfbr0w== - dependencies: - "@motionone/utils" "^10.16.3" - tslib "^2.3.1" - -"@motionone/generators@^10.16.4": - version "10.16.4" - resolved "https://registry.yarnpkg.com/@motionone/generators/-/generators-10.16.4.tgz#4a38708244bce733bfcebd4a26d19f4bbabd36af" - integrity sha512-geFZ3w0Rm0ZXXpctWsSf3REGywmLLujEjxPYpBR0j+ymYwof0xbV6S5kGqqsDKgyWKVWpUInqQYvQfL6fRbXeg== - dependencies: - "@motionone/types" "^10.16.3" - "@motionone/utils" "^10.16.3" - tslib "^2.3.1" - -"@motionone/svelte@^10.16.2": - version "10.16.4" - resolved "https://registry.yarnpkg.com/@motionone/svelte/-/svelte-10.16.4.tgz#5daf117cf5b2576fc6dd487c5e0500938a742470" - integrity sha512-zRVqk20lD1xqe+yEDZhMYgftsuHc25+9JSo+r0a0OWUJFocjSV9D/+UGhX4xgJsuwB9acPzXLr20w40VnY2PQA== - dependencies: - "@motionone/dom" "^10.16.4" - tslib "^2.3.1" - -"@motionone/types@^10.15.1", "@motionone/types@^10.16.3": - version "10.16.3" - resolved "https://registry.yarnpkg.com/@motionone/types/-/types-10.16.3.tgz#9284ea8a52f6b32c51c54b617214f20e43ac6c59" - integrity sha512-W4jkEGFifDq73DlaZs3HUfamV2t1wM35zN/zX7Q79LfZ2sc6C0R1baUHZmqc/K5F3vSw3PavgQ6HyHLd/MXcWg== - -"@motionone/utils@^10.15.1", "@motionone/utils@^10.16.3": - version "10.16.3" - resolved "https://registry.yarnpkg.com/@motionone/utils/-/utils-10.16.3.tgz#ddf07ab6cf3000d89e3bcbdc9a8c3e1fd64f8520" - integrity sha512-WNWDksJIxQkaI9p9Z9z0+K27xdqISGNFy1SsWVGaiedTHq0iaT6iZujby8fT/ZnZxj1EOaxJtSfUPCFNU5CRoA== - dependencies: - "@motionone/types" "^10.16.3" - hey-listen "^1.0.8" - tslib "^2.3.1" - -"@motionone/vue@^10.16.2": - version "10.16.4" - resolved "https://registry.yarnpkg.com/@motionone/vue/-/vue-10.16.4.tgz#07d09e3aa5115ca0bcc0076cb9e5322775277c09" - integrity sha512-z10PF9JV6SbjFq+/rYabM+8CVlMokgl8RFGvieSGNTmrkQanfHn+15XBrhG3BgUfvmTeSeyShfOHpG0i9zEdcg== - dependencies: - "@motionone/dom" "^10.16.4" - tslib "^2.3.1" - -"@netlify/binary-info@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@netlify/binary-info/-/binary-info-1.0.0.tgz#cd0d86fb783fb03e52067f0cd284865e57be86c8" - integrity sha512-4wMPu9iN3/HL97QblBsBay3E1etIciR84izI3U+4iALY+JHCrI+a2jO0qbAZ/nxKoegypYEaiiqWXylm+/zfrw== - -"@netlify/build-info@7.10.1": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@netlify/build-info/-/build-info-7.10.1.tgz#c30c96282581dd99cdb9ee6e155e48846f997ce7" - integrity sha512-bBEDehGo47ERzAHvOb0AZ/P5zNeDOzqpQFEGqc2djoLjBOcgDkRhyMxy7VZMBiaJ//ujxyTVIBXxrqVKWCpmrQ== - dependencies: - "@bugsnag/js" "^7.20.0" - dot-prop "^7.2.0" - find-up "^6.3.0" - minimatch "^9.0.0" - read-pkg "^7.1.0" - semver "^7.3.8" - toml "^3.0.0" - yaml "^2.1.3" - yargs "^17.6.0" - -"@netlify/build@29.23.4": - version "29.23.4" - resolved "https://registry.yarnpkg.com/@netlify/build/-/build-29.23.4.tgz#c2db3a4bbed462c46e48d21d4649b32c90cb0076" - integrity sha512-3EGLnobIyB5B/HkHdLfbFFgzm0Qd2kN1xa3MdAoXksO2Wmysip6KFMD3/9fzoDNJEjw58IVCf8yT55cNgX/Prg== - dependencies: - "@bugsnag/js" "^7.0.0" - "@honeycombio/opentelemetry-node" "^0.5.0" - "@netlify/cache-utils" "^5.1.5" - "@netlify/config" "^20.9.0" - "@netlify/edge-bundler" "9.3.0" - "@netlify/framework-info" "^9.8.10" - "@netlify/functions-utils" "^5.2.37" - "@netlify/git-utils" "^5.1.1" - "@netlify/plugins-list" "^6.71.0" - "@netlify/run-utils" "^5.1.1" - "@netlify/zip-it-and-ship-it" "9.25.4" - "@opentelemetry/api" "^1.4.1" - "@sindresorhus/slugify" "^2.0.0" - ansi-escapes "^6.0.0" - chalk "^5.0.0" - clean-stack "^4.0.0" - execa "^6.0.0" - fdir "^6.0.1" - figures "^5.0.0" - filter-obj "^5.0.0" - got "^12.0.0" - hot-shots "10.0.0" - indent-string "^5.0.0" - is-plain-obj "^4.0.0" - js-yaml "^4.0.0" - keep-func-props "^4.0.0" - locate-path "^7.0.0" - log-process-errors "^8.0.0" - map-obj "^5.0.0" - memoize-one "^6.0.0" - os-name "^5.0.0" - p-event "^5.0.0" - p-every "^2.0.0" - p-filter "^3.0.0" - p-locate "^6.0.0" - p-reduce "^3.0.0" - path-exists "^5.0.0" - path-type "^5.0.0" - pkg-dir "^7.0.0" - pretty-ms "^8.0.0" - ps-list "^8.0.0" - read-pkg-up "^9.0.0" - readdirp "^3.4.0" - resolve "^2.0.0-next.1" - rfdc "^1.3.0" - safe-json-stringify "^1.2.0" - semver "^7.3.8" - string-width "^5.0.0" - strip-ansi "^7.0.0" - supports-color "^9.0.0" - terminal-link "^3.0.0" - ts-node "^10.9.1" - typescript "^5.0.0" - uuid "^9.0.0" - yargs "^17.6.0" - -"@netlify/cache-utils@^5.1.5": - version "5.1.5" - resolved "https://registry.yarnpkg.com/@netlify/cache-utils/-/cache-utils-5.1.5.tgz#848c59003e576fa0b2f9c6ca270eff27af938b25" - integrity sha512-lMNdFmy2Yu3oVquSPooRDLxJ8QOsIX6X6vzA2pKz/9V2LQFJiqBukggXM+Rnqzk1regPpdJ0jK3dPGvOKaRQgg== - dependencies: - cpy "^9.0.0" - get-stream "^6.0.0" - globby "^13.0.0" - junk "^4.0.0" - locate-path "^7.0.0" - move-file "^3.0.0" - path-exists "^5.0.0" - readdirp "^3.4.0" - -"@netlify/config@20.9.0": - version "20.9.0" - resolved "https://registry.yarnpkg.com/@netlify/config/-/config-20.9.0.tgz#b6664414da1f12ed56f7a4137f7887658bb644dd" - integrity sha512-+bKrRDhoUiZbAbdILPtlF5tmR1Ttt6plHQawQVByw9fHaQZ0Kxh6hA896sVFgkR1wGqu2v/5OFhH2t9eJO0nuw== - dependencies: - chalk "^5.0.0" - cron-parser "^4.1.0" - deepmerge "^4.2.2" - dot-prop "^7.0.0" - execa "^6.0.0" - fast-safe-stringify "^2.0.7" - figures "^5.0.0" - filter-obj "^5.0.0" - find-up "^6.0.0" - indent-string "^5.0.0" - is-plain-obj "^4.0.0" - js-yaml "^4.0.0" - map-obj "^5.0.0" - netlify "^13.1.10" - netlify-headers-parser "^7.1.2" - netlify-redirect-parser "^14.2.0" - node-fetch "^3.3.1" - omit.js "^2.0.2" - p-locate "^6.0.0" - path-type "^5.0.0" - toml "^3.0.0" - tomlify-j0.4 "^3.0.0" - validate-npm-package-name "^4.0.0" - yargs "^17.6.0" - -"@netlify/config@^20.9.0": - version "20.10.0" - resolved "https://registry.yarnpkg.com/@netlify/config/-/config-20.10.0.tgz#df51f277c7eaa984105f4e90c3ea676b935c5df3" - integrity sha512-7CNoL5IPSRBzDVzxuQgltZ71D/vZ/oYR29sfN8EXjAFOZPSLtnZgborcPa9V9BXLN4N5h0hFp2A26lnnCttEFg== - dependencies: - chalk "^5.0.0" - cron-parser "^4.1.0" - deepmerge "^4.2.2" - dot-prop "^7.0.0" - execa "^6.0.0" - fast-safe-stringify "^2.0.7" - figures "^5.0.0" - filter-obj "^5.0.0" - find-up "^6.0.0" - indent-string "^5.0.0" - is-plain-obj "^4.0.0" - js-yaml "^4.0.0" - map-obj "^5.0.0" - netlify "^13.1.11" - netlify-headers-parser "^7.1.2" - netlify-redirect-parser "^14.2.0" - node-fetch "^3.3.1" - omit.js "^2.0.2" - p-locate "^6.0.0" - path-type "^5.0.0" - toml "^3.0.0" - tomlify-j0.4 "^3.0.0" - validate-npm-package-name "^4.0.0" - yargs "^17.6.0" - -"@netlify/edge-bundler@9.3.0": - version "9.3.0" - resolved "https://registry.yarnpkg.com/@netlify/edge-bundler/-/edge-bundler-9.3.0.tgz#e3d8847480d69f255177ba373755752a5815ef26" - integrity sha512-qKY4DKxBKn8TFbil5d7i71ztuOdRBfSXzYW9vN3t7WP0R4MKcgUg6nqo4a9llso/TNGlPv9tDrKq+w4jhpfGhA== - dependencies: - "@import-maps/resolve" "^1.0.1" - "@vercel/nft" "^0.24.3" - ajv "^8.11.2" - ajv-errors "^3.0.0" - better-ajv-errors "^1.2.0" - common-path-prefix "^3.0.0" - env-paths "^3.0.0" - esbuild "0.19.4" - execa "^6.0.0" - find-up "^6.3.0" - get-package-name "^2.2.0" - get-port "^6.1.2" - is-path-inside "^4.0.0" - jsonc-parser "^3.2.0" - node-fetch "^3.1.1" - node-stream-zip "^1.15.0" - p-retry "^5.1.1" - p-wait-for "^4.1.0" - path-key "^4.0.0" - regexp-tree "^0.1.24" - semver "^7.3.8" - tmp-promise "^3.0.3" - urlpattern-polyfill "8.0.2" - uuid "^9.0.0" - -"@netlify/edge-bundler@9.4.1": - version "9.4.1" - resolved "https://registry.yarnpkg.com/@netlify/edge-bundler/-/edge-bundler-9.4.1.tgz#edf7126d3f1bf6b7c962f4622ca264197c54c571" - integrity sha512-vcmKLIQL57NEcYBZtBptWWdK5JmWZc3r1ba+kEg939aXPEI5nT5D5qT5PyMiIQwWuFtR0t+DH3koOm8UOfsuwg== - dependencies: - "@import-maps/resolve" "^1.0.1" - "@vercel/nft" "^0.24.3" - ajv "^8.11.2" - ajv-errors "^3.0.0" - better-ajv-errors "^1.2.0" - common-path-prefix "^3.0.0" - env-paths "^3.0.0" - esbuild "0.19.4" - execa "^6.0.0" - find-up "^6.3.0" - get-package-name "^2.2.0" - get-port "^6.1.2" - is-path-inside "^4.0.0" - jsonc-parser "^3.2.0" - node-fetch "^3.1.1" - node-stream-zip "^1.15.0" - p-retry "^5.1.1" - p-wait-for "^4.1.0" - path-key "^4.0.0" - regexp-tree "^0.1.24" - semver "^7.3.8" - tmp-promise "^3.0.3" - urlpattern-polyfill "8.0.2" - uuid "^9.0.0" - -"@netlify/framework-info@^9.8.10": - version "9.8.10" - resolved "https://registry.yarnpkg.com/@netlify/framework-info/-/framework-info-9.8.10.tgz#a18589f132dafb5cb7f86c05a9895b9118633fe1" - integrity sha512-VT8ejAaB/XU2xRpdpQinHUO1YL3+BMx6LJ49wJk2u9Yq/VI1/gYCi5VqbqTHBQXJUlOi84YuiRlrDBsLpPr8eg== - dependencies: - ajv "^8.12.0" - filter-obj "^5.0.0" - find-up "^6.3.0" - is-plain-obj "^4.0.0" - locate-path "^7.0.0" - p-filter "^3.0.0" - p-locate "^6.0.0" - process "^0.11.10" - read-pkg-up "^9.0.0" - semver "^7.3.8" - -"@netlify/functions-utils@^5.2.37": - version "5.2.42" - resolved "https://registry.yarnpkg.com/@netlify/functions-utils/-/functions-utils-5.2.42.tgz#ced51cc91dcd44d813662ce94e7081fbf91edc45" - integrity sha512-ltZ5Vtop8IiJOgSnKApxZdXArOq4cLDs9WpZ3Xoa1lJDojjyPvAH6Vpp3DxFAdi9a8pzYK70vTb048SzMwffnA== - dependencies: - "@netlify/zip-it-and-ship-it" "9.26.4" - cpy "^9.0.0" - path-exists "^5.0.0" - -"@netlify/git-utils@^5.1.1": - version "5.1.1" - resolved "https://registry.yarnpkg.com/@netlify/git-utils/-/git-utils-5.1.1.tgz#36d5a6433a070035099b47d9151638053752cd7b" - integrity sha512-oyHieuTZH3rKTmg7EKpGEGa28IFxta2oXuVwpPJI/FJAtBje3UE+yko0eDjNufgm3AyGa8G77trUxgBhInAYuw== - dependencies: - execa "^6.0.0" - map-obj "^5.0.0" - micromatch "^4.0.2" - moize "^6.1.3" - path-exists "^5.0.0" - -"@netlify/local-functions-proxy-darwin-arm64@1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@netlify/local-functions-proxy-darwin-arm64/-/local-functions-proxy-darwin-arm64-1.1.1.tgz#c83a0a142637fb8cefe25c95f5c5cf6f2d7e32ed" - integrity sha512-lphJ9qqZ3glnKWEqlemU1LMqXxtJ/tKf7VzakqqyjigwLscXSZSb6fupSjQfd4tR1xqxA76ylws/2HDhc/gs+Q== - -"@netlify/local-functions-proxy-darwin-x64@1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@netlify/local-functions-proxy-darwin-x64/-/local-functions-proxy-darwin-x64-1.1.1.tgz#e8b558cfd459a5d8343d468e5c128a144638967a" - integrity sha512-4CRB0H+dXZzoEklq5Jpmg+chizXlVwCko94d8+UHWCgy/bA3M/rU/BJ8OLZisnJaAktHoeLABKtcLOhtRHpxZQ== - -"@netlify/local-functions-proxy-freebsd-arm64@1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@netlify/local-functions-proxy-freebsd-arm64/-/local-functions-proxy-freebsd-arm64-1.1.1.tgz#3a60e32fe1929f97817db5da0925c37feea7606e" - integrity sha512-u13lWTVMJDF0A6jX7V4N3HYGTIHLe5d1Z2wT43fSIHwXkTs6UXi72cGSraisajG+5JFIwHfPr7asw5vxFC0P9w== - -"@netlify/local-functions-proxy-freebsd-x64@1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@netlify/local-functions-proxy-freebsd-x64/-/local-functions-proxy-freebsd-x64-1.1.1.tgz#ddc526256cb835f6dbd6747d75a7f3dbcca77da8" - integrity sha512-g5xw4xATK5YDzvXtzJ8S1qSkWBiyF8VVRehXPMOAMzpGjCX86twYhWp8rbAk7yA1zBWmmWrWNA2Odq/MgpKJJg== - -"@netlify/local-functions-proxy-linux-arm64@1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@netlify/local-functions-proxy-linux-arm64/-/local-functions-proxy-linux-arm64-1.1.1.tgz#c88c3d8eacdaf655f871eb1eff58b1b3262c38ff" - integrity sha512-dPGu1H5n8na7mBKxiXQ+FNmthDAiA57wqgpm5JMAHtcdcmRvcXwJkwWVGvwfj8ShhYJHQaSaS9oPgO+mpKkgmA== - -"@netlify/local-functions-proxy-linux-arm@1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@netlify/local-functions-proxy-linux-arm/-/local-functions-proxy-linux-arm-1.1.1.tgz#d92905605f3f17c442001e6ead3710b64366fbd1" - integrity sha512-YsTpL+AbHwQrfHWXmKnwUrJBjoUON363nr6jUG1ueYnpbbv6wTUA7gI5snMi/gkGpqFusBthAA7C30e6bixfiA== - -"@netlify/local-functions-proxy-linux-ia32@1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@netlify/local-functions-proxy-linux-ia32/-/local-functions-proxy-linux-ia32-1.1.1.tgz#b4cb57c438a82f42c2e30ee4ec50cfa233379d59" - integrity sha512-Ra0FlXDrmPRaq+rYH3/ttkXSrwk1D5Zx/Na7UPfJZxMY7Qo5iY4bgi/FuzjzWzlp0uuKZOhYOYzYzsIIyrSvmw== - -"@netlify/local-functions-proxy-linux-ppc64@1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@netlify/local-functions-proxy-linux-ppc64/-/local-functions-proxy-linux-ppc64-1.1.1.tgz#3fdef281191dd819fee72ac58ccbca1ac650fee3" - integrity sha512-oXf1satwqwUUxz7LHS1BxbRqc4FFEKIDFTls04eXiLReFR3sqv9H/QuYNTCCDMuRcCOd92qKyDfATdnxT4HR8w== - -"@netlify/local-functions-proxy-linux-x64@1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@netlify/local-functions-proxy-linux-x64/-/local-functions-proxy-linux-x64-1.1.1.tgz#bd2c8059c5d7dd46ef5da174723ca2cdd7bfdb2f" - integrity sha512-bS3u4JuDg/eC0y4Na3i/29JBOxrdUvsK5JSjHfzUeZEbOcuXYf4KavTpHS5uikdvTgyczoSrvbmQJ5m0FLXfLA== - -"@netlify/local-functions-proxy-openbsd-x64@1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@netlify/local-functions-proxy-openbsd-x64/-/local-functions-proxy-openbsd-x64-1.1.1.tgz#31a3340f4f10dd5c95cd3f2dc9f1e967c051aa2a" - integrity sha512-1xLef/kLRNkBTXJ+ZGoRFcwsFxd/B2H3oeJZyXaZ3CN5umd9Mv9wZuAD74NuMt/535yRva8jtAJqvEgl9xMSdA== - -"@netlify/local-functions-proxy-win32-ia32@1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@netlify/local-functions-proxy-win32-ia32/-/local-functions-proxy-win32-ia32-1.1.1.tgz#354890bc58f54e8b26721447f243c49945f2fe74" - integrity sha512-4IOMDBxp2f8VbIkhZ85zGNDrZR4ey8d68fCMSOIwitjsnKav35YrCf8UmAh3UR6CNIRJdJL4MW1GYePJ7iJ8uA== - -"@netlify/local-functions-proxy-win32-x64@1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@netlify/local-functions-proxy-win32-x64/-/local-functions-proxy-win32-x64-1.1.1.tgz#7ee183b4ccd0062b6124275387d844530ea0b224" - integrity sha512-VCBXBJWBujVxyo5f+3r8ovLc9I7wJqpmgDn3ixs1fvdrER5Ac+SzYwYH4mUug9HI08mzTSAKZErzKeuadSez3w== - -"@netlify/local-functions-proxy@1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@netlify/local-functions-proxy/-/local-functions-proxy-1.1.1.tgz#e5d1416e6d607f8e8bd4d295b1ee1e550d5bd3cb" - integrity sha512-eXSsayLT6PMvjzFQpjC9nkg2Otc3lZ5GoYele9M6f8PmsvWpaXRhwjNQ0NYhQQ2UZbLMIiO2dH8dbRsT3bMkFw== - optionalDependencies: - "@netlify/local-functions-proxy-darwin-arm64" "1.1.1" - "@netlify/local-functions-proxy-darwin-x64" "1.1.1" - "@netlify/local-functions-proxy-freebsd-arm64" "1.1.1" - "@netlify/local-functions-proxy-freebsd-x64" "1.1.1" - "@netlify/local-functions-proxy-linux-arm" "1.1.1" - "@netlify/local-functions-proxy-linux-arm64" "1.1.1" - "@netlify/local-functions-proxy-linux-ia32" "1.1.1" - "@netlify/local-functions-proxy-linux-ppc64" "1.1.1" - "@netlify/local-functions-proxy-linux-x64" "1.1.1" - "@netlify/local-functions-proxy-openbsd-x64" "1.1.1" - "@netlify/local-functions-proxy-win32-ia32" "1.1.1" - "@netlify/local-functions-proxy-win32-x64" "1.1.1" - -"@netlify/node-cookies@^0.1.0": - version "0.1.0" - resolved "https://registry.yarnpkg.com/@netlify/node-cookies/-/node-cookies-0.1.0.tgz#dda912ba618527695cf519fafa221c5e6777c612" - integrity sha512-OAs1xG+FfLX0LoRASpqzVntVV/RpYkgpI0VrUnw2u0Q1qiZUzcPffxRK8HF3gc4GjuhG5ahOEMJ9bswBiZPq0g== - -"@netlify/open-api@^2.19.1", "@netlify/open-api@^2.26.0": - version "2.26.0" - resolved "https://registry.yarnpkg.com/@netlify/open-api/-/open-api-2.26.0.tgz#cdc8033371079955501f4b9a5323f2dcd76741c2" - integrity sha512-B7q+ySzQm6rJhaGbY0Pzqnb1p3FsBqwiPLnLtA17JgTsqmXgQ7j6OQImW9fRJy/Al1ob9M6Oxng/FA2c7aIW1g== - -"@netlify/plugins-list@^6.71.0": - version "6.72.0" - resolved "https://registry.yarnpkg.com/@netlify/plugins-list/-/plugins-list-6.72.0.tgz#b77611f0ada5b57aff62219cd321f75ed5f6c424" - integrity sha512-GB3HxvUmOAkB6V3Tau7iQT7aH2NssmQHAgHWMrdD7pDfjcU6Vg0WcQfOWovjx2Bh6M0urOsJkBboX2egCuicEQ== - -"@netlify/run-utils@^5.1.1": - version "5.1.1" - resolved "https://registry.yarnpkg.com/@netlify/run-utils/-/run-utils-5.1.1.tgz#be1938aaca58f9032054cddea02e2673ffa9c4ee" - integrity sha512-V2B8ZB19heVKa715uOeDkztxLH7uaqZ+9U5fV7BRzbQ2514DO5Vxj9hG0irzuRLfZXZZjp/chPUesv4VVsce/A== - dependencies: - execa "^6.0.0" - -"@netlify/serverless-functions-api@^1.10.1", "@netlify/serverless-functions-api@^1.12.1": - version "1.12.1" - resolved "https://registry.yarnpkg.com/@netlify/serverless-functions-api/-/serverless-functions-api-1.12.1.tgz#fb926f62377d84719c70f9a4493f3d04d6f6e7dc" - integrity sha512-+G9cTltqfH54dF4dLqoEOV2P4qTIY8dM9blUVqg+NtVTXyuadzgpHqtffhVeyeLytVnTx1238kWJUe+sV3bnlg== - dependencies: - "@netlify/node-cookies" "^0.1.0" - urlpattern-polyfill "8.0.2" - -"@netlify/zip-it-and-ship-it@9.25.4": - version "9.25.4" - resolved "https://registry.yarnpkg.com/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-9.25.4.tgz#712b743a83501a1e845348373926e910fa0a217e" - integrity sha512-y2xl6yLwwDCUoE/XTMKZFYO6uWeZbci4LWK+8v6TyQ3xWDl23pGJyFrkKSPLDn/jeJsKNsdJG4fBo4/S2p+YNA== - dependencies: - "@babel/parser" "^7.22.5" - "@babel/types" "7.22.19" - "@netlify/binary-info" "^1.0.0" - "@netlify/serverless-functions-api" "^1.10.1" - "@vercel/nft" "^0.23.0" - archiver "^6.0.0" - common-path-prefix "^3.0.0" - cp-file "^10.0.0" - es-module-lexer "^1.0.0" - esbuild "0.19.4" - execa "^6.0.0" - filter-obj "^5.0.0" - find-up "^6.0.0" - glob "^8.0.3" - is-builtin-module "^3.1.0" - is-path-inside "^4.0.0" - junk "^4.0.0" - locate-path "^7.0.0" - merge-options "^3.0.4" - minimatch "^9.0.0" - normalize-path "^3.0.0" - p-map "^5.0.0" - path-exists "^5.0.0" - precinct "^11.0.0" - require-package-name "^2.0.1" - resolve "^2.0.0-next.1" - semver "^7.3.8" - tmp-promise "^3.0.2" - toml "^3.0.0" - unixify "^1.0.0" - urlpattern-polyfill "8.0.2" - yargs "^17.0.0" - -"@netlify/zip-it-and-ship-it@9.26.4": - version "9.26.4" - resolved "https://registry.yarnpkg.com/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-9.26.4.tgz#aa855ab7603f83bdfcdee225f8d730ffb1979be6" - integrity sha512-lGdmHz5ppP6VmVEuvuL5nKP7a3/dUGRLBotqs2x/lwp35/1lbR+CIbXV6y8IYc4yn1hDfDtp+Lcqe6Np2KcFtg== - dependencies: - "@babel/parser" "^7.22.5" - "@babel/types" "7.23.3" - "@netlify/binary-info" "^1.0.0" - "@netlify/serverless-functions-api" "^1.12.1" - "@vercel/nft" "^0.23.0" - archiver "^6.0.0" - common-path-prefix "^3.0.0" - cp-file "^10.0.0" - es-module-lexer "^1.0.0" - esbuild "0.19.6" - execa "^6.0.0" - filter-obj "^5.0.0" - find-up "^6.0.0" - glob "^8.0.3" - is-builtin-module "^3.1.0" - is-path-inside "^4.0.0" - junk "^4.0.0" - locate-path "^7.0.0" - merge-options "^3.0.4" - minimatch "^9.0.0" - normalize-path "^3.0.0" - p-map "^5.0.0" - path-exists "^5.0.0" - precinct "^11.0.0" - require-package-name "^2.0.1" - resolve "^2.0.0-next.1" - semver "^7.3.8" - tmp-promise "^3.0.2" - toml "^3.0.0" - unixify "^1.0.0" - urlpattern-polyfill "8.0.2" - yargs "^17.0.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" - integrity sha512-091oBExgENk/kGj3AZmtBDMpxQPDtxQABR2B9lb1JbVTs6ytdzZNwvhxQ4MWasRNEzlbEH8jCWFCwhF/Obj5AA== - dependencies: - "@noble/hashes" "1.3.1" - -"@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" - integrity sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ== - -"@noble/hashes@1.3.1": - version "1.3.1" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.1.tgz#8831ef002114670c603c458ab8b11328406953a9" - integrity sha512-EbqwksQwz9xDRGfDST86whPBgM65E0OH/pCgqW0GBVzO22bNE+NuIbeTb714+IfSjU3aRk47EUvXIb5bTsenKA== - -"@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.7.1", "@noble/secp256k1@~1.7.0": - version "1.7.1" - 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.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.5", "@nodelib/fs.stat@^2.0.2": - version "2.0.5" - 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.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" - fastq "^1.6.0" - -"@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" - 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" - -"@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" - 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" - -"@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" - integrity sha512-I2WGP3HMGsOoycSdOTSqIaES0ughQTueOsddJ36aYVpI3SN8YSusgRFLwzDJwRFVIYDKx/iJz0sQ5kBHVgdDwg== - dependencies: - "@nomicfoundation/ethereumjs-util" "9.0.2" - crc-32 "^1.2.0" - -"@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" - 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" - -"@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" - 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" - -"@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" - 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" - 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" - -"@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" - 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" - -"@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" - 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" - -"@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" - integrity sha512-4Wu9D3LykbSBWZo8nJCnzVIYGvGCuyiYLIJa9XXNVt1q1jUzHdB+sJvx95VGCpPkCT+IbLecW6yfzy3E1bQrwQ== - dependencies: - "@chainsafe/ssz" "^0.10.0" - "@nomicfoundation/ethereumjs-rlp" "5.0.2" - ethereum-cryptography "0.1.3" - -"@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" - 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" - -"@nomicfoundation/hardhat-chai-matchers@^1.0.0": - version "1.0.6" - resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-chai-matchers/-/hardhat-chai-matchers-1.0.6.tgz#72a2e312e1504ee5dd73fe302932736432ba96bc" - integrity sha512-f5ZMNmabZeZegEfuxn/0kW+mm7+yV7VNDxLpMOMGXWFJ2l/Ct3QShujzDRF9cOkK9Ui/hbDeOWGZqyQALDXVCQ== - dependencies: - "@ethersproject/abi" "^5.1.2" - "@types/chai-as-promised" "^7.1.3" - chai-as-promised "^7.1.1" - deep-eql "^4.0.1" - ordinal "^1.0.3" - -"@nomicfoundation/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" - 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" - integrity sha512-1LMtXj1puAxyFusBgUIy5pZk3073cNXYnXUpuNKFghHbIit/xZgbk0AokpUADbNm3gyD6bFWl3LRFh3dhVdREg== - 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" - -"@nomiclabs/hardhat-ethers@^2.0.0", "@nomiclabs/hardhat-ethers@^2.0.2", "@nomiclabs/hardhat-ethers@^2.2.3": - version "2.2.3" - 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.4": - version "3.1.7" - resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-etherscan/-/hardhat-etherscan-3.1.7.tgz#72e3d5bd5d0ceb695e097a7f6f5ff6fcbf062b9a" - integrity sha512-tZ3TvSgpvsQ6B6OGmo1/Au6u8BrAkvs1mIC/eURA3xgIfznUZBhmpne8hv7BXUzw9xNL3fXdpOYgOQlVMTcoHQ== - 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" - -"@nomiclabs/hardhat-ganache@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-ganache/-/hardhat-ganache-2.0.1.tgz#d4974dc379cef1892904378de00e12709c0719aa" - integrity sha512-Q3D8iTtsvQVkJd1EzhhYYvXAFY8fF/JEUt6l6jW7tduhFDRCKvyoSMCw+lH/3nBOHsBolr80pF76NHZ2mYCMeQ== - dependencies: - debug "^4.1.1" - ganache-core "^2.7.0" - ts-interface-checker "^0.1.9" - -"@nomiclabs/hardhat-waffle@^2.0.3": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-waffle/-/hardhat-waffle-2.0.6.tgz#d11cb063a5f61a77806053e54009c40ddee49a54" - integrity sha512-+Wz0hwmJGSI17B+BhU/qFRZ1l6/xMW82QGXE/Gi+WTmwgJrQefuBs1lIf7hzQ1hLk6hpkvb/zwcNkpVKRYTQYg== - -"@oclif/core@2.8.0": - version "2.8.0" - resolved "https://registry.yarnpkg.com/@oclif/core/-/core-2.8.0.tgz#4948de3168804169fa68895af8ec4853f332b307" - integrity sha512-A2wHItFrD/WOw5bJ6Mtv9MD7If0bsKNR0pwEY0me+fo4HSXlJOtgYGqmzb8t8akX3DUUT7XsjPajsoHLkIJyvg== - dependencies: - "@types/cli-progress" "^3.11.0" - ansi-escapes "^4.3.2" - ansi-styles "^4.3.0" - cardinal "^2.1.1" - chalk "^4.1.2" - clean-stack "^3.0.1" - cli-progress "^3.12.0" - debug "^4.3.4" - ejs "^3.1.8" - fs-extra "^9.1.0" - get-package-type "^0.1.0" - globby "^11.1.0" - hyperlinker "^1.0.0" - indent-string "^4.0.0" - is-wsl "^2.2.0" - js-yaml "^3.14.1" - natural-orderby "^2.0.3" - object-treeify "^1.1.33" - password-prompt "^1.1.2" - semver "^7.3.7" - string-width "^4.2.3" - strip-ansi "^6.0.1" - supports-color "^8.1.1" - supports-hyperlinks "^2.2.0" - ts-node "^10.9.1" - tslib "^2.5.0" - widest-line "^3.1.0" - wordwrap "^1.0.0" - wrap-ansi "^7.0.0" - -"@octokit/auth-token@^3.0.0": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-3.0.4.tgz#70e941ba742bdd2b49bdb7393e821dea8520a3db" - integrity sha512-TWFX7cZF2LXoCvdmJWY7XVPi74aSY0+FfBZNSXEXFkMpjcqsQwDSYVv5FhRFaI0V1ECnwbz4j59T/G+rXNWaIQ== - -"@octokit/core@^4.2.1": - version "4.2.4" - resolved "https://registry.yarnpkg.com/@octokit/core/-/core-4.2.4.tgz#d8769ec2b43ff37cc3ea89ec4681a20ba58ef907" - integrity sha512-rYKilwgzQ7/imScn3M9/pFfUf4I1AZEH3KhyJmtPdE2zfaXAn2mFfUy4FbKewzc2We5y/LlKLj36fWJLKC2SIQ== - dependencies: - "@octokit/auth-token" "^3.0.0" - "@octokit/graphql" "^5.0.0" - "@octokit/request" "^6.0.0" - "@octokit/request-error" "^3.0.0" - "@octokit/types" "^9.0.0" - before-after-hook "^2.2.0" - universal-user-agent "^6.0.0" - -"@octokit/endpoint@^7.0.0": - version "7.0.6" - resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-7.0.6.tgz#791f65d3937555141fb6c08f91d618a7d645f1e2" - integrity sha512-5L4fseVRUsDFGR00tMWD/Trdeeihn999rTMGRMC1G/Ldi1uWlWJzI98H4Iak5DB/RVvQuyMYKqSK/R6mbSOQyg== - dependencies: - "@octokit/types" "^9.0.0" - is-plain-object "^5.0.0" - universal-user-agent "^6.0.0" - -"@octokit/graphql@^5.0.0": - version "5.0.6" - resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-5.0.6.tgz#9eac411ac4353ccc5d3fca7d76736e6888c5d248" - integrity sha512-Fxyxdy/JH0MnIB5h+UQ3yCoh1FG4kWXfFKkpWqjZHw/p+Kc8Y44Hu/kCgNBT6nU1shNumEchmW/sUO1JuQnPcw== - dependencies: - "@octokit/request" "^6.0.0" - "@octokit/types" "^9.0.0" - universal-user-agent "^6.0.0" - -"@octokit/openapi-types@^18.0.0": - version "18.1.1" - resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-18.1.1.tgz#09bdfdabfd8e16d16324326da5148010d765f009" - integrity sha512-VRaeH8nCDtF5aXWnjPuEMIYf1itK/s3JYyJcWFJT8X9pSNnBtriDf7wlEWsGuhPLl4QIH4xM8fqTXDwJ3Mu6sw== - -"@octokit/plugin-paginate-rest@^6.1.2": - version "6.1.2" - resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-6.1.2.tgz#f86456a7a1fe9e58fec6385a85cf1b34072341f8" - integrity sha512-qhrmtQeHU/IivxucOV1bbI/xZyC/iOBhclokv7Sut5vnejAIAEXVcGQeRpQlU39E0WwK9lNvJHphHri/DB6lbQ== - dependencies: - "@octokit/tsconfig" "^1.0.2" - "@octokit/types" "^9.2.3" - -"@octokit/plugin-request-log@^1.0.4": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz#5e50ed7083a613816b1e4a28aeec5fb7f1462e85" - integrity sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA== - -"@octokit/plugin-rest-endpoint-methods@^7.1.2": - version "7.2.3" - resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-7.2.3.tgz#37a84b171a6cb6658816c82c4082ac3512021797" - integrity sha512-I5Gml6kTAkzVlN7KCtjOM+Ruwe/rQppp0QU372K1GP7kNOYEKe8Xn5BW4sE62JAHdwpq95OQK/qGNyKQMUzVgA== - dependencies: - "@octokit/types" "^10.0.0" - -"@octokit/request-error@^3.0.0": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-3.0.3.tgz#ef3dd08b8e964e53e55d471acfe00baa892b9c69" - integrity sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ== - dependencies: - "@octokit/types" "^9.0.0" - deprecation "^2.0.0" - once "^1.4.0" - -"@octokit/request@^6.0.0": - version "6.2.8" - resolved "https://registry.yarnpkg.com/@octokit/request/-/request-6.2.8.tgz#aaf480b32ab2b210e9dadd8271d187c93171d8eb" - integrity sha512-ow4+pkVQ+6XVVsekSYBzJC0VTVvh/FCTUUgTsboGq+DTeWdyIFV8WSCdo0RIxk6wSkBTHqIK1mYuY7nOBXOchw== - dependencies: - "@octokit/endpoint" "^7.0.0" - "@octokit/request-error" "^3.0.0" - "@octokit/types" "^9.0.0" - is-plain-object "^5.0.0" - node-fetch "^2.6.7" - universal-user-agent "^6.0.0" - -"@octokit/rest@19.0.13": - version "19.0.13" - resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-19.0.13.tgz#e799393264edc6d3c67eeda9e5bd7832dcf974e4" - integrity sha512-/EzVox5V9gYGdbAI+ovYj3nXQT1TtTHRT+0eZPcuC05UFSWO3mdO9UY1C0i2eLF9Un1ONJkAk+IEtYGAC+TahA== - dependencies: - "@octokit/core" "^4.2.1" - "@octokit/plugin-paginate-rest" "^6.1.2" - "@octokit/plugin-request-log" "^1.0.4" - "@octokit/plugin-rest-endpoint-methods" "^7.1.2" - -"@octokit/tsconfig@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@octokit/tsconfig/-/tsconfig-1.0.2.tgz#59b024d6f3c0ed82f00d08ead5b3750469125af7" - integrity sha512-I0vDR0rdtP8p2lGMzvsJzbhdOWy405HcGovrspJ8RRibHnyRgggUSNO5AIox5LmqiwmatHKYsvj6VGFHkqS7lA== - -"@octokit/types@^10.0.0": - version "10.0.0" - resolved "https://registry.yarnpkg.com/@octokit/types/-/types-10.0.0.tgz#7ee19c464ea4ada306c43f1a45d444000f419a4a" - integrity sha512-Vm8IddVmhCgU1fxC1eyinpwqzXPEYu0NrYzD3YZjlGjyftdLBTeqNblRC0jmJmgxbJIsQlyogVeGnrNaaMVzIg== - dependencies: - "@octokit/openapi-types" "^18.0.0" - -"@octokit/types@^9.0.0", "@octokit/types@^9.2.3": - version "9.3.2" - resolved "https://registry.yarnpkg.com/@octokit/types/-/types-9.3.2.tgz#3f5f89903b69f6a2d196d78ec35f888c0013cac5" - integrity sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA== - dependencies: - "@octokit/openapi-types" "^18.0.0" - -"@openfonts/inter_all@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@openfonts/inter_all/-/inter_all-1.0.2.tgz#87fc59c58926d2e5e63022a0960f12be82915d00" - integrity sha512-hdB3gPFLztuDbEDLImVRTQyH4EHHrX9iEsw6wZW+VuwUoTwMJEhOV9dWliM6WZtJYF/cqYuiMK+Bqdd2XztnDg== - -"@opentelemetry/api-logs@0.39.1": - version "0.39.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/api-logs/-/api-logs-0.39.1.tgz#3ea1e9dda11c35f993cb60dc5e52780b8175e702" - integrity sha512-9BJ8lMcOzEN0lu+Qji801y707oFO4xT3db6cosPvl+k7ItUHKN5ofWqtSbM9gbt1H4JJ/4/2TVrqI9Rq7hNv6Q== - dependencies: - "@opentelemetry/api" "^1.0.0" - -"@opentelemetry/api-logs@0.41.2": - version "0.41.2" - resolved "https://registry.yarnpkg.com/@opentelemetry/api-logs/-/api-logs-0.41.2.tgz#600c9b3d79018e7421d2ff7189f41b6d2c987d6a" - integrity sha512-JEV2RAqijAFdWeT6HddYymfnkiRu2ASxoTBr4WsnGJhOjWZkEy6vp+Sx9ozr1NaIODOa2HUyckExIqQjn6qywQ== - dependencies: - "@opentelemetry/api" "^1.0.0" - -"@opentelemetry/api@^1.0.0", "@opentelemetry/api@^1.4.1": - version "1.7.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-1.7.0.tgz#b139c81999c23e3c8d3c0a7234480e945920fc40" - integrity sha512-AdY5wvN0P2vXBi3b29hxZgSFvdhdxPB9+f0B6s//P9Q8nibRWeA3cHm8UmLpio9ABigkVHJ5NMPk+Mz8VCCyrw== - -"@opentelemetry/context-async-hooks@1.13.0": - version "1.13.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/context-async-hooks/-/context-async-hooks-1.13.0.tgz#b697317c1670eaa9b1c23201d09dd29250dcc8fa" - integrity sha512-pS5fU4lrRjOIPZQqA2V1SUM9QUFXbO+8flubAiy6ntLjnAjJJUdRFOUOxK6v86ZHI2p2S8A0vD0BTu95FZYvjA== - -"@opentelemetry/core@1.13.0": - version "1.13.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/core/-/core-1.13.0.tgz#7cdcb4176d260d279b0aa31456c4ce2ba7f410aa" - integrity sha512-2dBX3Sj99H96uwJKvc2w9NOiNgbvAO6mOFJFramNkKfS9O4Um+VWgpnlAazoYjT6kUJ1MP70KQ5ngD4ed+4NUw== - dependencies: - "@opentelemetry/semantic-conventions" "1.13.0" - -"@opentelemetry/core@1.15.2": - version "1.15.2" - resolved "https://registry.yarnpkg.com/@opentelemetry/core/-/core-1.15.2.tgz#5b170bf223a2333884bbc2d29d95812cdbda7c9f" - integrity sha512-+gBv15ta96WqkHZaPpcDHiaz0utiiHZVfm2YOYSqFGrUaJpPkMoSuLBB58YFQGi6Rsb9EHos84X6X5+9JspmLw== - dependencies: - "@opentelemetry/semantic-conventions" "1.15.2" - -"@opentelemetry/core@1.18.1", "@opentelemetry/core@^1.13.0": - version "1.18.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/core/-/core-1.18.1.tgz#d2e45f6bd6be4f00d20d18d4f1b230ec33805ae9" - integrity sha512-kvnUqezHMhsQvdsnhnqTNfAJs3ox/isB0SVrM1dhVFw7SsB7TstuVa6fgWnN2GdPyilIFLUvvbTZoVRmx6eiRg== - dependencies: - "@opentelemetry/semantic-conventions" "1.18.1" - -"@opentelemetry/exporter-jaeger@1.13.0": - version "1.13.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-jaeger/-/exporter-jaeger-1.13.0.tgz#e96436438d3f8cc7b262ab4e517d55f96f413161" - integrity sha512-ke/STs/erRDqKmNv6Dv+5SetXsVD+Zm1/Wo8cLdAGrZn6kG6Fyp5EXVO/BJuzx6q+jHCdODm8jV4veXl4m71nQ== - dependencies: - "@opentelemetry/core" "1.13.0" - "@opentelemetry/sdk-trace-base" "1.13.0" - "@opentelemetry/semantic-conventions" "1.13.0" - jaeger-client "^3.15.0" - -"@opentelemetry/exporter-metrics-otlp-grpc@^0.41.0": - version "0.41.2" - resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-metrics-otlp-grpc/-/exporter-metrics-otlp-grpc-0.41.2.tgz#3272e67e63167bdaf26585f930a2b60cf3ae76cb" - integrity sha512-gQuCcd5QSMkfi1XIriWAoak/vaRvFzpvtzh2hjziIvbnA3VtoGD3bDb2dzEzOA1iSWO0/tHwnBsSmmUZsETyOA== - dependencies: - "@grpc/grpc-js" "^1.7.1" - "@opentelemetry/core" "1.15.2" - "@opentelemetry/exporter-metrics-otlp-http" "0.41.2" - "@opentelemetry/otlp-grpc-exporter-base" "0.41.2" - "@opentelemetry/otlp-transformer" "0.41.2" - "@opentelemetry/resources" "1.15.2" - "@opentelemetry/sdk-metrics" "1.15.2" - -"@opentelemetry/exporter-metrics-otlp-http@0.39.1": - version "0.39.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-metrics-otlp-http/-/exporter-metrics-otlp-http-0.39.1.tgz#be2a9954db69b3c11779bf30c51e2fa901721c78" - integrity sha512-Uj2i6t5v9aexV03xvVobwLV0Yxn7lQcCxBGN5KKxcs8BTZYSfjdwhrFjsOxvEQ2cXugL0aIzCuTKxrlXYTmFwA== - dependencies: - "@opentelemetry/core" "1.13.0" - "@opentelemetry/otlp-exporter-base" "0.39.1" - "@opentelemetry/otlp-transformer" "0.39.1" - "@opentelemetry/resources" "1.13.0" - "@opentelemetry/sdk-metrics" "1.13.0" - -"@opentelemetry/exporter-metrics-otlp-http@0.41.2": - version "0.41.2" - resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-metrics-otlp-http/-/exporter-metrics-otlp-http-0.41.2.tgz#b4e5483d00d913daec950a07784e459d1c60fb3d" - integrity sha512-+YeIcL4nuldWE89K8NBLImpXCvih04u1MBnn8EzvoywG2TKR5JC3CZEPepODIxlsfGSgP8W5khCEP1NHZzftYw== - dependencies: - "@opentelemetry/core" "1.15.2" - "@opentelemetry/otlp-exporter-base" "0.41.2" - "@opentelemetry/otlp-transformer" "0.41.2" - "@opentelemetry/resources" "1.15.2" - "@opentelemetry/sdk-metrics" "1.15.2" - -"@opentelemetry/exporter-metrics-otlp-proto@^0.39.1": - version "0.39.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-metrics-otlp-proto/-/exporter-metrics-otlp-proto-0.39.1.tgz#872a7f8ab6a7f57ef39225d073d89840f89b0bf4" - integrity sha512-S+FgIhmZiFMsUivtAlCyzf3L5ezPyCqvlzt4hSZmiKs0kqapau1HS4cSpGacs9Jy499TRSNtqfjj7GxZrNIevw== - dependencies: - "@opentelemetry/core" "1.13.0" - "@opentelemetry/exporter-metrics-otlp-http" "0.39.1" - "@opentelemetry/otlp-exporter-base" "0.39.1" - "@opentelemetry/otlp-proto-exporter-base" "0.39.1" - "@opentelemetry/otlp-transformer" "0.39.1" - "@opentelemetry/resources" "1.13.0" - "@opentelemetry/sdk-metrics" "1.13.0" - -"@opentelemetry/exporter-trace-otlp-grpc@0.39.1": - version "0.39.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-trace-otlp-grpc/-/exporter-trace-otlp-grpc-0.39.1.tgz#3949f909fb3f8cbb456480a35829bb2630331bd3" - integrity sha512-l5RhLKx6U+yuLhMrtgavTDthX50E1mZM3/SSySC7OPZiArFHV/b/9x9jxAzrOgIQUDxyj4N0V9aLKSA2t7Qzxg== - dependencies: - "@grpc/grpc-js" "^1.7.1" - "@opentelemetry/core" "1.13.0" - "@opentelemetry/otlp-grpc-exporter-base" "0.39.1" - "@opentelemetry/otlp-transformer" "0.39.1" - "@opentelemetry/resources" "1.13.0" - "@opentelemetry/sdk-trace-base" "1.13.0" - -"@opentelemetry/exporter-trace-otlp-grpc@^0.41.0": - version "0.41.2" - resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-trace-otlp-grpc/-/exporter-trace-otlp-grpc-0.41.2.tgz#445f850f4675e0afc3e326b2663576fa0b5fbee4" - integrity sha512-tRM/mq7PFj7mXCws5ICMVp/rmgU93JvZdoLE0uLj4tugNz231u2ZgeRYXulBjdeHM88ZQSsWTJMu2mvr/3JV1A== - dependencies: - "@grpc/grpc-js" "^1.7.1" - "@opentelemetry/core" "1.15.2" - "@opentelemetry/otlp-grpc-exporter-base" "0.41.2" - "@opentelemetry/otlp-transformer" "0.41.2" - "@opentelemetry/resources" "1.15.2" - "@opentelemetry/sdk-trace-base" "1.15.2" - -"@opentelemetry/exporter-trace-otlp-http@0.39.1": - version "0.39.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-trace-otlp-http/-/exporter-trace-otlp-http-0.39.1.tgz#9625b04451f91d308395333c188f4841a173a781" - integrity sha512-AEhnJfVmo1g+7NxszAuf3c6vddld2DGH2+IM4XrPxCklucCsIpuStuC5EVZbCXXXBMpAY+n3t04QMxIQqNrcSw== - dependencies: - "@opentelemetry/core" "1.13.0" - "@opentelemetry/otlp-exporter-base" "0.39.1" - "@opentelemetry/otlp-transformer" "0.39.1" - "@opentelemetry/resources" "1.13.0" - "@opentelemetry/sdk-trace-base" "1.13.0" - -"@opentelemetry/exporter-trace-otlp-proto@0.39.1": - version "0.39.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-trace-otlp-proto/-/exporter-trace-otlp-proto-0.39.1.tgz#0d8f8a57e2a4e61849e19fb325292d0c2c32f7bc" - integrity sha512-oJQC7a67iwExRYynKqn/O9Fl5gUjDa43ZQsZu2iKAADs/6YJ+u5MJ/wcq3CpJsn2KU/8j8HWAKOcDkkQXPuJ9A== - dependencies: - "@opentelemetry/core" "1.13.0" - "@opentelemetry/otlp-exporter-base" "0.39.1" - "@opentelemetry/otlp-proto-exporter-base" "0.39.1" - "@opentelemetry/otlp-transformer" "0.39.1" - "@opentelemetry/resources" "1.13.0" - "@opentelemetry/sdk-trace-base" "1.13.0" - -"@opentelemetry/exporter-trace-otlp-proto@^0.41.0": - version "0.41.2" - resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-trace-otlp-proto/-/exporter-trace-otlp-proto-0.41.2.tgz#8e8f823d5264e34dc7c8b400f9d03871c7bfcbc5" - integrity sha512-IGZga9IIckqYE3IpRE9FO9G5umabObIrChlXUHYpMJtDgx797dsb3qXCvLeuAwB+HoB8NsEZstlzmLnoa6/HmA== - dependencies: - "@opentelemetry/core" "1.15.2" - "@opentelemetry/otlp-exporter-base" "0.41.2" - "@opentelemetry/otlp-proto-exporter-base" "0.41.2" - "@opentelemetry/otlp-transformer" "0.41.2" - "@opentelemetry/resources" "1.15.2" - "@opentelemetry/sdk-trace-base" "1.15.2" - -"@opentelemetry/exporter-zipkin@1.13.0": - version "1.13.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-zipkin/-/exporter-zipkin-1.13.0.tgz#156ea40629e293a8bf5d80d7862df43440de13ea" - integrity sha512-4IuUmYEhlHm8tAGtd6KKkktEO9Bt7dpdBdAPVAzhmXsPwGi0yExo7E5qfi9HtHQcdfP9SnrGRkeorVtrZkGlhg== - dependencies: - "@opentelemetry/core" "1.13.0" - "@opentelemetry/resources" "1.13.0" - "@opentelemetry/sdk-trace-base" "1.13.0" - "@opentelemetry/semantic-conventions" "1.13.0" - -"@opentelemetry/instrumentation@0.39.1": - version "0.39.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation/-/instrumentation-0.39.1.tgz#46d03b4c7ce9f8d08f575d756acc801fa1283615" - integrity sha512-s7/9tPmM0l5KCd07VQizC4AO2/5UJdkXq5gMSHPdCeiMKSeBEdyDyQX7A+Cq+RYZM452qzFmrJ4ut628J5bnSg== - dependencies: - require-in-the-middle "^7.1.0" - semver "^7.3.2" - shimmer "^1.2.1" - -"@opentelemetry/otlp-exporter-base@0.39.1": - version "0.39.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.39.1.tgz#650c9b23bbc6eb335c5f9b7f433aca87e9dc88a3" - integrity sha512-Pv5X8fbi6jD/RJBePyn7MnCSuE6MbPB6dl+7YYBWJ5RcMGYMwvLXjd4h2jWsPV2TSUg38H/RoSP0aXvQ06Y7iw== - dependencies: - "@opentelemetry/core" "1.13.0" - -"@opentelemetry/otlp-exporter-base@0.41.2": - version "0.41.2" - resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.41.2.tgz#5928dfedb2a70117f03809862cf2cbdf8b7f9bf3" - integrity sha512-pfwa6d+Dax3itZcGWiA0AoXeVaCuZbbqUTsCtOysd2re8C2PWXNxDONUfBWsn+KgxAdi+ljwTjJGiaVLDaIEvQ== - dependencies: - "@opentelemetry/core" "1.15.2" - -"@opentelemetry/otlp-grpc-exporter-base@0.39.1": - version "0.39.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-grpc-exporter-base/-/otlp-grpc-exporter-base-0.39.1.tgz#944f2ab384c08c37641c02f63381380d9d0714f4" - integrity sha512-u3ErFRQqQFKjjIMuwLWxz/tLPYInfmiAmSy//fGSCzCh2ZdJgqQjMOAxBgqFtCF2xFL+OmMhyuC2ThMzceGRWA== - dependencies: - "@grpc/grpc-js" "^1.7.1" - "@opentelemetry/core" "1.13.0" - "@opentelemetry/otlp-exporter-base" "0.39.1" - protobufjs "^7.2.2" - -"@opentelemetry/otlp-grpc-exporter-base@0.41.2": - version "0.41.2" - resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-grpc-exporter-base/-/otlp-grpc-exporter-base-0.41.2.tgz#b056915aa274947517ac86b0c78533db274404e8" - integrity sha512-OErK8dYjXG01XIMIpmOV2SzL9ctkZ0Nyhf2UumICOAKtgLvR5dG1JMlsNVp8Jn0RzpsKc6Urv7JpP69wzRXN+A== - dependencies: - "@grpc/grpc-js" "^1.7.1" - "@opentelemetry/core" "1.15.2" - "@opentelemetry/otlp-exporter-base" "0.41.2" - protobufjs "^7.2.3" - -"@opentelemetry/otlp-proto-exporter-base@0.39.1": - version "0.39.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-proto-exporter-base/-/otlp-proto-exporter-base-0.39.1.tgz#04a46c7497724759a260d8ded5463a20ac5c6d39" - integrity sha512-VssdfGYu6LkSliQATdkvoP8lPSQuNLENRdHTUOV2veF4iqY/UpxBFFlkarY29W+MYjWXIBfYntgNjQvcn78A+w== - dependencies: - "@opentelemetry/core" "1.13.0" - "@opentelemetry/otlp-exporter-base" "0.39.1" - protobufjs "^7.1.2" - -"@opentelemetry/otlp-proto-exporter-base@0.41.2": - version "0.41.2" - resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-proto-exporter-base/-/otlp-proto-exporter-base-0.41.2.tgz#10b1a4bb973bd6e0e741931d90f22387c5a3a151" - integrity sha512-BxmEMiP6tHiFroe5/dTt9BsxCci7BTLtF7A6d4DKHLiLweWWZxQ9l7hON7qt/IhpKrQcAFD1OzZ1Gq2ZkNzhCw== - dependencies: - "@opentelemetry/core" "1.15.2" - "@opentelemetry/otlp-exporter-base" "0.41.2" - protobufjs "^7.2.3" - -"@opentelemetry/otlp-transformer@0.39.1": - version "0.39.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-transformer/-/otlp-transformer-0.39.1.tgz#6d83e33d2a031f9ae1dcaf29595eac25b681bebf" - integrity sha512-0hgVnXXz5efI382B/24NxD4b6Zxlh7nxCdJkxkdmQMbn0yRiwoq/ZT+QG8eUL6JNzsBAV1WJlF5aJNsL8skHvw== - dependencies: - "@opentelemetry/api-logs" "0.39.1" - "@opentelemetry/core" "1.13.0" - "@opentelemetry/resources" "1.13.0" - "@opentelemetry/sdk-logs" "0.39.1" - "@opentelemetry/sdk-metrics" "1.13.0" - "@opentelemetry/sdk-trace-base" "1.13.0" - -"@opentelemetry/otlp-transformer@0.41.2": - version "0.41.2" - resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-transformer/-/otlp-transformer-0.41.2.tgz#cd3a7185ef77fe9b7b4c2d2f9e001fa1d2fa6cf8" - integrity sha512-jJbPwB0tNu2v+Xi0c/v/R3YBLJKLonw1p+v3RVjT2VfzeUyzSp/tBeVdY7RZtL6dzZpA9XSmp8UEfWIFQo33yA== - dependencies: - "@opentelemetry/api-logs" "0.41.2" - "@opentelemetry/core" "1.15.2" - "@opentelemetry/resources" "1.15.2" - "@opentelemetry/sdk-logs" "0.41.2" - "@opentelemetry/sdk-metrics" "1.15.2" - "@opentelemetry/sdk-trace-base" "1.15.2" - -"@opentelemetry/propagator-b3@1.13.0": - version "1.13.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/propagator-b3/-/propagator-b3-1.13.0.tgz#30a19a24e61ae8dbc26c2d7d7d3423d804d48f07" - integrity sha512-HOo91EI4UbuG8xQVLFziTzrcIn0MJQhy8m9jorh8aonb94jFVFi3CFNIiAnIGOabmnshJLOABxpYXsiPB8Xnzg== - dependencies: - "@opentelemetry/core" "1.13.0" - -"@opentelemetry/propagator-jaeger@1.13.0": - version "1.13.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/propagator-jaeger/-/propagator-jaeger-1.13.0.tgz#94a79d5301409d49b149227ee5568fcf6b21f9fe" - integrity sha512-IV9TO+u1Jzm9mUDAD3gyXf89eyvgEJUY1t+GB5QmS4wjVeWrSMUtD0JjH3yG9SNqkrQOqOGJq7YUSSetW+Lf5Q== - dependencies: - "@opentelemetry/core" "1.13.0" - -"@opentelemetry/resources@1.13.0": - version "1.13.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/resources/-/resources-1.13.0.tgz#436b33ea950004e66fce6575f2776a05faca7f8e" - integrity sha512-euqjOkiN6xhjE//0vQYGvbStxoD/WWQRhDiO0OTLlnLBO9Yw2Gd/VoSx2H+svsebjzYk5OxLuREBmcdw6rbUNg== - dependencies: - "@opentelemetry/core" "1.13.0" - "@opentelemetry/semantic-conventions" "1.13.0" - -"@opentelemetry/resources@1.15.2": - version "1.15.2" - resolved "https://registry.yarnpkg.com/@opentelemetry/resources/-/resources-1.15.2.tgz#0c9e26cb65652a1402834a3c030cce6028d6dd9d" - integrity sha512-xmMRLenT9CXmm5HMbzpZ1hWhaUowQf8UB4jMjFlAxx1QzQcsD3KFNAVX/CAWzFPtllTyTplrA4JrQ7sCH3qmYw== - dependencies: - "@opentelemetry/core" "1.15.2" - "@opentelemetry/semantic-conventions" "1.15.2" - -"@opentelemetry/resources@1.18.1", "@opentelemetry/resources@^1.13.0": - version "1.18.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/resources/-/resources-1.18.1.tgz#e27bdc4715bccc8cd4a72d4aca3995ad0a496fe7" - integrity sha512-JjbcQLYMttXcIabflLRuaw5oof5gToYV9fuXbcsoOeQ0BlbwUn6DAZi++PNsSz2jjPeASfDls10iaO/8BRIPRA== - dependencies: - "@opentelemetry/core" "1.18.1" - "@opentelemetry/semantic-conventions" "1.18.1" - -"@opentelemetry/sdk-logs@0.39.1": - version "0.39.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-logs/-/sdk-logs-0.39.1.tgz#888af05458af5d097d6263ade118e8db78f76f38" - integrity sha512-/gmgKfZ1ZVFporKuwsewqIyvaUIGpv76JZ7lBpHQQPb37IMpaXO6pdqFI4ebHAWfNIm3akMyhmdtzivcgF3lgw== - dependencies: - "@opentelemetry/core" "1.13.0" - "@opentelemetry/resources" "1.13.0" - -"@opentelemetry/sdk-logs@0.41.2": - version "0.41.2" - resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-logs/-/sdk-logs-0.41.2.tgz#c3eeb6793bdfa52351d66e2e66637e433abed672" - integrity sha512-smqKIw0tTW15waj7BAPHFomii5c3aHnSE4LQYTszGoK5P9nZs8tEAIpu15UBxi3aG31ZfsLmm4EUQkjckdlFrw== - dependencies: - "@opentelemetry/core" "1.15.2" - "@opentelemetry/resources" "1.15.2" - -"@opentelemetry/sdk-metrics@1.13.0": - version "1.13.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-metrics/-/sdk-metrics-1.13.0.tgz#4e859107a7a4389bcda7b37d3952bc7dd34211d7" - integrity sha512-MOjZX6AnSOqLliCcZUrb+DQKjAWXBiGeICGbHAGe5w0BB18PJIeIo995lO5JSaFfHpmUMgJButTPfJJD27W3Vg== - dependencies: - "@opentelemetry/core" "1.13.0" - "@opentelemetry/resources" "1.13.0" - lodash.merge "4.6.2" - -"@opentelemetry/sdk-metrics@1.15.2": - version "1.15.2" - resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-metrics/-/sdk-metrics-1.15.2.tgz#eadd0a049de9cd860e1e0d49eea01156469c4b60" - integrity sha512-9aIlcX8GnhcsAHW/Wl8bzk4ZnWTpNlLtud+fxUfBtFATu6OZ6TrGrF4JkT9EVrnoxwtPIDtjHdEsSjOqisY/iA== - dependencies: - "@opentelemetry/core" "1.15.2" - "@opentelemetry/resources" "1.15.2" - lodash.merge "^4.6.2" - -"@opentelemetry/sdk-metrics@^1.13.0": - version "1.18.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-metrics/-/sdk-metrics-1.18.1.tgz#1dd334744a1e5d2eec27e9e9765c73cd2f43aef3" - integrity sha512-TEFgeNFhdULBYiCoHbz31Y4PDsfjjxRp8Wmdp6ybLQZPqMNEb+dRq+XN8Xw3ivIgTaf9gYsomgV5ensX99RuEQ== - dependencies: - "@opentelemetry/core" "1.18.1" - "@opentelemetry/resources" "1.18.1" - lodash.merge "^4.6.2" - -"@opentelemetry/sdk-node@^0.39.1": - version "0.39.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-node/-/sdk-node-0.39.1.tgz#0e3c0ee36c500e715a4c61fa4dd1985408ad0bb8" - integrity sha512-qODReBGNSdfRS5gvCFj1SdiIi/3ZFTZb0H1KvWE/OrTkklyL5RhIs7vDwvEGHmha+YpUu0Y2+R2+itSBSu/jCA== - dependencies: - "@opentelemetry/core" "1.13.0" - "@opentelemetry/exporter-jaeger" "1.13.0" - "@opentelemetry/exporter-trace-otlp-grpc" "0.39.1" - "@opentelemetry/exporter-trace-otlp-http" "0.39.1" - "@opentelemetry/exporter-trace-otlp-proto" "0.39.1" - "@opentelemetry/exporter-zipkin" "1.13.0" - "@opentelemetry/instrumentation" "0.39.1" - "@opentelemetry/resources" "1.13.0" - "@opentelemetry/sdk-metrics" "1.13.0" - "@opentelemetry/sdk-trace-base" "1.13.0" - "@opentelemetry/sdk-trace-node" "1.13.0" - "@opentelemetry/semantic-conventions" "1.13.0" - -"@opentelemetry/sdk-trace-base@1.13.0": - version "1.13.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.13.0.tgz#096cc2759430d880c5d886e009df2605097403dc" - integrity sha512-moTiQtc0uPR1hQLt6gLDJH9IIkeBhgRb71OKjNHZPE1VF45fHtD6nBDi5J/DkTHTwYP5X3kBJLa3xN7ub6J4eg== - dependencies: - "@opentelemetry/core" "1.13.0" - "@opentelemetry/resources" "1.13.0" - "@opentelemetry/semantic-conventions" "1.13.0" - -"@opentelemetry/sdk-trace-base@1.15.2": - version "1.15.2" - resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.15.2.tgz#4821f94033c55a6c8bbd35ae387b715b6108517a" - integrity sha512-BEaxGZbWtvnSPchV98qqqqa96AOcb41pjgvhfzDij10tkBhIu9m0Jd6tZ1tJB5ZHfHbTffqYVYE0AOGobec/EQ== - dependencies: - "@opentelemetry/core" "1.15.2" - "@opentelemetry/resources" "1.15.2" - "@opentelemetry/semantic-conventions" "1.15.2" - -"@opentelemetry/sdk-trace-base@^1.13.0": - version "1.18.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.18.1.tgz#256605d90b202002d5672305c66dbcf377132379" - integrity sha512-tRHfDxN5dO+nop78EWJpzZwHsN1ewrZRVVwo03VJa3JQZxToRDH29/+MB24+yoa+IArerdr7INFJiX/iN4gjqg== - dependencies: - "@opentelemetry/core" "1.18.1" - "@opentelemetry/resources" "1.18.1" - "@opentelemetry/semantic-conventions" "1.18.1" - -"@opentelemetry/sdk-trace-node@1.13.0": - version "1.13.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-node/-/sdk-trace-node-1.13.0.tgz#baadf62218ca69e37486debfbcf15b2563f75979" - integrity sha512-FXA85lXKTsnbOflA/TBuBf2pmhD3c8uDjNjG0YqK+ap8UayfALmfJhf+aG1yBOUHevCY0JXJ4/xtbXExxpsMog== - dependencies: - "@opentelemetry/context-async-hooks" "1.13.0" - "@opentelemetry/core" "1.13.0" - "@opentelemetry/propagator-b3" "1.13.0" - "@opentelemetry/propagator-jaeger" "1.13.0" - "@opentelemetry/sdk-trace-base" "1.13.0" - semver "^7.3.5" - -"@opentelemetry/semantic-conventions@1.13.0": - version "1.13.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.13.0.tgz#0290398b3eaebc6029c348988a78c3b688fe9219" - integrity sha512-LMGqfSZkaMQXqewO0o1wvWr/2fQdCh4a3Sqlxka/UsJCe0cfLulh6x2aqnKLnsrSGiCq5rSCwvINd152i0nCqw== - -"@opentelemetry/semantic-conventions@1.15.2": - version "1.15.2" - resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.15.2.tgz#3bafb5de3e20e841dff6cb3c66f4d6e9694c4241" - integrity sha512-CjbOKwk2s+3xPIMcd5UNYQzsf+v94RczbdNix9/kQh38WiQkM90sUOi3if8eyHFgiBjBjhwXrA7W3ydiSQP9mw== - -"@opentelemetry/semantic-conventions@1.18.1": - version "1.18.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.18.1.tgz#8e47caf57a84b1dcc1722b2025693348cdf443b4" - integrity sha512-+NLGHr6VZwcgE/2lw8zDIufOCGnzsA5CbQIMleXZTrgkBd0TanCX+MiDYJ1TOS4KL/Tqk0nFRxawnaYr6pkZkA== - -"@openzeppelin/contracts@4.9.0": - version "4.9.0" - resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-4.9.0.tgz#683f33b6598970051bc5f0806fd8660da9e018dd" - integrity sha512-DUP74AFGKlic2sQb/CmgrN2aUPMFGxRrmCTUxLHsiU2RzwWqVuMPZBxiAyvlff6Pea77uylAX6B5x9W6evEbhA== - -"@openzeppelin/contracts@^4.8.0": - version "4.9.3" - resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-4.9.3.tgz#00d7a8cf35a475b160b3f0293a6403c511099364" - integrity sha512-He3LieZ1pP2TNt5JbkPA4PNT9WC3gOTOlDcFGJW4Le4QKqwmiNJCRt44APfxMxvq7OugU/cqYuPcSBzOw38DAg== - -"@openzeppelin/merkle-tree@^1.0.5": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@openzeppelin/merkle-tree/-/merkle-tree-1.0.5.tgz#4836d377777a7e39f31674f06ec3d6909def7913" - integrity sha512-JkwG2ysdHeIphrScNxYagPy6jZeNONgDRyqU6lbFgE8HKCZFSkcP8r6AjZs+3HZk4uRNV0kNBBzuWhKQ3YV7Kw== - dependencies: - "@ethersproject/abi" "^5.7.0" - ethereum-cryptography "^1.1.2" - -"@parcel/watcher-android-arm64@2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.3.0.tgz#d82e74bb564ebd4d8a88791d273a3d2bd61e27ab" - integrity sha512-f4o9eA3dgk0XRT3XhB0UWpWpLnKgrh1IwNJKJ7UJek7eTYccQ8LR7XUWFKqw6aEq5KUNlCcGvSzKqSX/vtWVVA== - -"@parcel/watcher-darwin-arm64@2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.3.0.tgz#c9cd03f8f233d512fcfc873d5b4e23f1569a82ad" - integrity sha512-mKY+oijI4ahBMc/GygVGvEdOq0L4DxhYgwQqYAz/7yPzuGi79oXrZG52WdpGA1wLBPrYb0T8uBaGFo7I6rvSKw== - -"@parcel/watcher-darwin-x64@2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.3.0.tgz#83c902994a2a49b9e1ab5050dba24876fdc2c219" - integrity sha512-20oBj8LcEOnLE3mgpy6zuOq8AplPu9NcSSSfyVKgfOhNAc4eF4ob3ldj0xWjGGbOF7Dcy1Tvm6ytvgdjlfUeow== - -"@parcel/watcher-freebsd-x64@2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.3.0.tgz#7a0f4593a887e2752b706aff2dae509aef430cf6" - integrity sha512-7LftKlaHunueAEiojhCn+Ef2CTXWsLgTl4hq0pkhkTBFI3ssj2bJXmH2L67mKpiAD5dz66JYk4zS66qzdnIOgw== - -"@parcel/watcher-linux-arm-glibc@2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.3.0.tgz#3fc90c3ebe67de3648ed2f138068722f9b1d47da" - integrity sha512-1apPw5cD2xBv1XIHPUlq0cO6iAaEUQ3BcY0ysSyD9Kuyw4MoWm1DV+W9mneWI+1g6OeP6dhikiFE6BlU+AToTQ== - -"@parcel/watcher-linux-arm64-glibc@2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.3.0.tgz#f7bbbf2497d85fd11e4c9e9c26ace8f10ea9bcbc" - integrity sha512-mQ0gBSQEiq1k/MMkgcSB0Ic47UORZBmWoAWlMrTW6nbAGoLZP+h7AtUM7H3oDu34TBFFvjy4JCGP43JlylkTQA== - -"@parcel/watcher-linux-arm64-musl@2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.3.0.tgz#de131a9fcbe1fa0854e9cbf4c55bed3b35bcff43" - integrity sha512-LXZAExpepJew0Gp8ZkJ+xDZaTQjLHv48h0p0Vw2VMFQ8A+RKrAvpFuPVCVwKJCr5SE+zvaG+Etg56qXvTDIedw== - -"@parcel/watcher-linux-x64-glibc@2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.3.0.tgz#193dd1c798003cdb5a1e59470ff26300f418a943" - integrity sha512-P7Wo91lKSeSgMTtG7CnBS6WrA5otr1K7shhSjKHNePVmfBHDoAOHYRXgUmhiNfbcGk0uMCHVcdbfxtuiZCHVow== - -"@parcel/watcher-linux-x64-musl@2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.3.0.tgz#6dbdb86d96e955ab0fe4a4b60734ec0025a689dd" - integrity sha512-+kiRE1JIq8QdxzwoYY+wzBs9YbJ34guBweTK8nlzLKimn5EQ2b2FSC+tAOpq302BuIMjyuUGvBiUhEcLIGMQ5g== - -"@parcel/watcher-wasm@2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@parcel/watcher-wasm/-/watcher-wasm-2.3.0.tgz#73b66c6fbd2a3326ae86a1ec77eab7139d0dd725" - integrity sha512-ejBAX8H0ZGsD8lSICDNyMbSEtPMWgDL0WFCt/0z7hyf5v8Imz4rAM8xY379mBsECkq/Wdqa5WEDLqtjZ+6NxfA== - dependencies: - is-glob "^4.0.3" - micromatch "^4.0.5" - napi-wasm "^1.1.0" - -"@parcel/watcher-win32-arm64@2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.3.0.tgz#59da26a431da946e6c74fa6b0f30b120ea6650b6" - integrity sha512-35gXCnaz1AqIXpG42evcoP2+sNL62gZTMZne3IackM+6QlfMcJLy3DrjuL6Iks7Czpd3j4xRBzez3ADCj1l7Aw== - -"@parcel/watcher-win32-ia32@2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.3.0.tgz#3ee6a18b08929cd3b788e8cc9547fd9a540c013a" - integrity sha512-FJS/IBQHhRpZ6PiCjFt1UAcPr0YmCLHRbTc00IBTrelEjlmmgIVLeOx4MSXzx2HFEy5Jo5YdhGpxCuqCyDJ5ow== - -"@parcel/watcher-win32-x64@2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.3.0.tgz#14e7246289861acc589fd608de39fe5d8b4bb0a7" - integrity sha512-dLx+0XRdMnVI62kU3wbXvbIRhLck4aE28bIGKbRGS7BJNt54IIj9+c/Dkqb+7DJEbHUZAX1bwaoM8PqVlHJmCA== - -"@parcel/watcher@^2.1.0", "@parcel/watcher@^2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@parcel/watcher/-/watcher-2.3.0.tgz#803517abbc3981a1a1221791d9f59dc0590d50f9" - integrity sha512-pW7QaFiL11O0BphO+bq3MgqeX/INAk9jgBldVDYjlQPO4VddoZnF22TcF9onMhnLVHuNqBJeRf+Fj7eezi/+rQ== - dependencies: - detect-libc "^1.0.3" - is-glob "^4.0.3" - micromatch "^4.0.5" - node-addon-api "^7.0.0" - optionalDependencies: - "@parcel/watcher-android-arm64" "2.3.0" - "@parcel/watcher-darwin-arm64" "2.3.0" - "@parcel/watcher-darwin-x64" "2.3.0" - "@parcel/watcher-freebsd-x64" "2.3.0" - "@parcel/watcher-linux-arm-glibc" "2.3.0" - "@parcel/watcher-linux-arm64-glibc" "2.3.0" - "@parcel/watcher-linux-arm64-musl" "2.3.0" - "@parcel/watcher-linux-x64-glibc" "2.3.0" - "@parcel/watcher-linux-x64-musl" "2.3.0" - "@parcel/watcher-win32-arm64" "2.3.0" - "@parcel/watcher-win32-ia32" "2.3.0" - "@parcel/watcher-win32-x64" "2.3.0" - -"@peculiar/asn1-schema@^2.3.6": - version "2.3.8" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.3.8.tgz#04b38832a814e25731232dd5be883460a156da3b" - integrity sha512-ULB1XqHKx1WBU/tTFIA+uARuRoBVZ4pNdOA878RDrRbBfBGcSzi5HBkdScC6ZbHn8z7L8gmKCgPC1LHRrP46tA== - dependencies: - asn1js "^3.0.5" - pvtsutils "^1.3.5" - tslib "^2.6.2" - -"@peculiar/json-schema@^1.1.12": - version "1.1.12" - resolved "https://registry.yarnpkg.com/@peculiar/json-schema/-/json-schema-1.1.12.tgz#fe61e85259e3b5ba5ad566cb62ca75b3d3cd5339" - integrity sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w== - dependencies: - tslib "^2.0.0" - -"@peculiar/webcrypto@^1.4.0": - version "1.4.3" - resolved "https://registry.yarnpkg.com/@peculiar/webcrypto/-/webcrypto-1.4.3.tgz#078b3e8f598e847b78683dc3ba65feb5029b93a7" - integrity sha512-VtaY4spKTdN5LjJ04im/d/joXuvLbQdgy5Z4DXF4MFZhQ+MTrejbNMkfZBp1Bs3O5+bFqnJgyGdPuZQflvIa5A== - dependencies: - "@peculiar/asn1-schema" "^2.3.6" - "@peculiar/json-schema" "^1.1.12" - pvtsutils "^1.3.2" - tslib "^2.5.0" - webcrypto-core "^1.7.7" - -"@pnpm/config.env-replace@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz#ab29da53df41e8948a00f2433f085f54de8b3a4c" - integrity sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w== - -"@pnpm/network.ca-file@^1.0.1": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz#2ab05e09c1af0cdf2fcf5035bea1484e222f7983" - integrity sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA== - dependencies: - graceful-fs "4.2.10" - -"@pnpm/npm-conf@^2.1.0": - version "2.2.2" - resolved "https://registry.yarnpkg.com/@pnpm/npm-conf/-/npm-conf-2.2.2.tgz#0058baf1c26cbb63a828f0193795401684ac86f0" - integrity sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA== - dependencies: - "@pnpm/config.env-replace" "^1.1.0" - "@pnpm/network.ca-file" "^1.0.1" - config-chain "^1.1.11" - -"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" - integrity sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ== - -"@protobufjs/base64@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" - integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== - -"@protobufjs/codegen@^2.0.4": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" - integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== - -"@protobufjs/eventemitter@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" - integrity sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q== - -"@protobufjs/fetch@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" - integrity sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ== - dependencies: - "@protobufjs/aspromise" "^1.1.1" - "@protobufjs/inquire" "^1.1.0" - -"@protobufjs/float@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" - integrity sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ== - -"@protobufjs/inquire@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" - integrity sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q== - -"@protobufjs/path@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" - integrity sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA== - -"@protobufjs/pool@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" - integrity sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw== - -"@protobufjs/utf8@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" - integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== - -"@repeaterjs/repeater@3.0.4": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@repeaterjs/repeater/-/repeater-3.0.4.tgz#a04d63f4d1bf5540a41b01a921c9a7fddc3bd1ca" - integrity sha512-AW8PKd6iX3vAZ0vA43nOUOnbq/X5ihgU+mSXXqunMkeQADGiqw/PY0JNeYtD5sr0PAy51YPgAPbDoeapv9r8WA== - -"@repeaterjs/repeater@^3.0.4": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@repeaterjs/repeater/-/repeater-3.0.5.tgz#b77571685410217a548a9c753aa3cdfc215bfc78" - integrity sha512-l3YHBLAol6d/IKnB9LhpD0cEZWAoe3eFKUyTYWmFmCO2Q/WOckxLQAUyMZWwZV2M/m3+4vgRoaolFqaII82/TA== - -"@rescript/std@9.0.0": - version "9.0.0" - resolved "https://registry.yarnpkg.com/@rescript/std/-/std-9.0.0.tgz#df53f3fa5911cb4e85bd66b92e9e58ddf3e4a7e1" - integrity sha512-zGzFsgtZ44mgL4Xef2gOy1hrRVdrs9mcxCOOKZrIPsmbZW14yTkaF591GXxpQvjXiHtgZ/iA9qLyWH6oSReIxQ== - -"@resolver-engine/core@^0.3.3": - version "0.3.3" - resolved "https://registry.yarnpkg.com/@resolver-engine/core/-/core-0.3.3.tgz#590f77d85d45bc7ecc4e06c654f41345db6ca967" - integrity sha512-eB8nEbKDJJBi5p5SrvrvILn4a0h42bKtbCTri3ZxCGt6UvoQyp7HnGOfki944bUjBSHKK3RvgfViHn+kqdXtnQ== - dependencies: - debug "^3.1.0" - is-url "^1.2.4" - request "^2.85.0" - -"@resolver-engine/fs@^0.3.3": - version "0.3.3" - 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" - debug "^3.1.0" - -"@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" - integrity sha512-7Pjg/ZAZtxpeyCFlZR5zqYkz+Wdo84ugB5LApwriT8XFeQoLwGUj4tZFFvvCuxaNCcqZzCYbonJgmGObYBzyCA== - dependencies: - "@resolver-engine/fs" "^0.3.3" - "@resolver-engine/imports" "^0.3.3" - debug "^3.1.0" - -"@resolver-engine/imports@^0.3.3": - version "0.3.3" - 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" - debug "^3.1.0" - hosted-git-info "^2.6.0" - path-browserify "^1.0.0" - url "^0.11.0" - -"@rollup/plugin-inject@^5.0.3": - version "5.0.5" - resolved "https://registry.yarnpkg.com/@rollup/plugin-inject/-/plugin-inject-5.0.5.tgz#616f3a73fe075765f91c5bec90176608bed277a3" - integrity sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg== - dependencies: - "@rollup/pluginutils" "^5.0.1" - estree-walker "^2.0.2" - magic-string "^0.30.3" - -"@rollup/pluginutils@^4.0.0", "@rollup/pluginutils@^4.2.0": - version "4.2.1" - resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz#e6c6c3aba0744edce3fb2074922d3776c0af2a6d" - integrity sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ== - dependencies: - estree-walker "^2.0.1" - picomatch "^2.2.2" - -"@rollup/pluginutils@^5.0.1", "@rollup/pluginutils@^5.0.2": - version "5.0.5" - resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.0.5.tgz#bbb4c175e19ebfeeb8c132c2eea0ecb89941a66c" - integrity sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q== - dependencies: - "@types/estree" "^1.0.0" - estree-walker "^2.0.2" - picomatch "^2.3.1" - -"@rushstack/eslint-patch@^1.2.0": - version "1.6.0" - resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.6.0.tgz#1898e7a7b943680d757417a47fb10f5fcc230b39" - integrity sha512-2/U3GXA6YiPYQDLGwtGlnNgKYBSwCFIHf8Y9LUY5VATHdtbLlU0Y1R3QoBnT0aB4qv/BEiVVsj7LJXoQCgJ2vA== - -"@samverschueren/stream-to-observable@^0.3.0": - version "0.3.1" - resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.1.tgz#a21117b19ee9be70c379ec1877537ef2e1c63301" - integrity sha512-c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ== - dependencies: - any-observable "^0.3.0" - -"@scure/base@~1.1.0": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.3.tgz#8584115565228290a6c6c4961973e0903bb3df2f" - integrity sha512-/+SgoRjLq7Xlf0CWuLHq2LUZeL/w65kfzAPG5NH9pcmBhs+nunQTn4gvdwgMTIXnt9b2C/1SeL2XiysZEyIC9Q== - -"@scure/bip32@1.1.5": - version "1.1.5" - resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.1.5.tgz#d2ccae16dcc2e75bc1d75f5ef3c66a338d1ba300" - integrity sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw== - dependencies: - "@noble/hashes" "~1.2.0" - "@noble/secp256k1" "~1.7.0" - "@scure/base" "~1.1.0" - -"@scure/bip32@1.3.1": - version "1.3.1" - 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.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.1.1.tgz#b54557b2e86214319405db819c4b6a370cf340c5" - integrity sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg== - dependencies: - "@noble/hashes" "~1.2.0" - "@scure/base" "~1.1.0" - -"@scure/bip39@1.2.1": - version "1.2.1" - 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" - "@scure/base" "~1.1.0" - -"@sentry/core@5.30.0": - version "5.30.0" - 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" - "@sentry/minimal" "5.30.0" - "@sentry/types" "5.30.0" - "@sentry/utils" "5.30.0" - tslib "^1.9.3" - -"@sentry/hub@5.30.0": - version "5.30.0" - resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-5.30.0.tgz#2453be9b9cb903404366e198bd30c7ca74cdc100" - integrity sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ== - dependencies: - "@sentry/types" "5.30.0" - "@sentry/utils" "5.30.0" - tslib "^1.9.3" - -"@sentry/minimal@5.30.0": - version "5.30.0" - 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" - "@sentry/types" "5.30.0" - tslib "^1.9.3" - -"@sentry/node@^5.18.1": - version "5.30.0" - resolved "https://registry.yarnpkg.com/@sentry/node/-/node-5.30.0.tgz#4ca479e799b1021285d7fe12ac0858951c11cd48" - 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" - -"@sentry/tracing@5.30.0": - version "5.30.0" - resolved "https://registry.yarnpkg.com/@sentry/tracing/-/tracing-5.30.0.tgz#501d21f00c3f3be7f7635d8710da70d9419d4e1f" - 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" - -"@sentry/types@5.30.0": - version "5.30.0" - 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.yarnpkg.com/@sentry/utils/-/utils-5.30.0.tgz#9a5bd7ccff85ccfe7856d493bffa64cabc41e980" - integrity sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww== - dependencies: - "@sentry/types" "5.30.0" - tslib "^1.9.3" - -"@sindresorhus/is@^0.14.0": - version "0.14.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" - integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== - -"@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" - integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== - -"@sindresorhus/is@^5.2.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-5.6.0.tgz#41dd6093d34652cddb5d5bdeee04eafc33826668" - integrity sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g== - -"@sindresorhus/slugify@^2.0.0": - version "2.2.1" - resolved "https://registry.yarnpkg.com/@sindresorhus/slugify/-/slugify-2.2.1.tgz#fa2e2e25d6e1e74a2eeb5e2c37f5ccc516ed2c4b" - integrity sha512-MkngSCRZ8JdSOCHRaYd+D01XhvU3Hjy6MGl06zhOk614hp9EOAp5gIkBeQg7wtmxpitU6eAL4kdiRMcJa2dlrw== - dependencies: - "@sindresorhus/transliterate" "^1.0.0" - escape-string-regexp "^5.0.0" - -"@sindresorhus/transliterate@^1.0.0": - version "1.6.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/transliterate/-/transliterate-1.6.0.tgz#2309fff65a868047e6d2dd70dec747c5b36a8327" - integrity sha512-doH1gimEu3A46VX6aVxpHTeHrytJAG6HgdxntYnCFiIFHEM/ZGpG8KiZGBChchjQmG0XFIBL552kBTjVcMZXwQ== - dependencies: - escape-string-regexp "^5.0.0" - -"@solidity-parser/parser@^0.16.0": - 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" - -"@stablelib/aead@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/aead/-/aead-1.0.1.tgz#c4b1106df9c23d1b867eb9b276d8f42d5fc4c0c3" - integrity sha512-q39ik6sxGHewqtO0nP4BuSe3db5G1fEJE8ukvngS2gLkBXyy6E7pLubhbYgnkDFv6V8cWaxcE4Xn0t6LWcJkyg== - -"@stablelib/binary@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/binary/-/binary-1.0.1.tgz#c5900b94368baf00f811da5bdb1610963dfddf7f" - integrity sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q== - dependencies: - "@stablelib/int" "^1.0.1" - -"@stablelib/bytes@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/bytes/-/bytes-1.0.1.tgz#0f4aa7b03df3080b878c7dea927d01f42d6a20d8" - integrity sha512-Kre4Y4kdwuqL8BR2E9hV/R5sOrUj6NanZaZis0V6lX5yzqC3hBuVSDXUIBqQv/sCpmuWRiHLwqiT1pqqjuBXoQ== - -"@stablelib/chacha20poly1305@1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/chacha20poly1305/-/chacha20poly1305-1.0.1.tgz#de6b18e283a9cb9b7530d8767f99cde1fec4c2ee" - integrity sha512-MmViqnqHd1ymwjOQfghRKw2R/jMIGT3wySN7cthjXCBdO+qErNPUBnRzqNpnvIwg7JBCg3LdeCZZO4de/yEhVA== - dependencies: - "@stablelib/aead" "^1.0.1" - "@stablelib/binary" "^1.0.1" - "@stablelib/chacha" "^1.0.1" - "@stablelib/constant-time" "^1.0.1" - "@stablelib/poly1305" "^1.0.1" - "@stablelib/wipe" "^1.0.1" - -"@stablelib/chacha@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/chacha/-/chacha-1.0.1.tgz#deccfac95083e30600c3f92803a3a1a4fa761371" - integrity sha512-Pmlrswzr0pBzDofdFuVe1q7KdsHKhhU24e8gkEwnTGOmlC7PADzLVxGdn2PoNVBBabdg0l/IfLKg6sHAbTQugg== - dependencies: - "@stablelib/binary" "^1.0.1" - "@stablelib/wipe" "^1.0.1" - -"@stablelib/constant-time@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/constant-time/-/constant-time-1.0.1.tgz#bde361465e1cf7b9753061b77e376b0ca4c77e35" - integrity sha512-tNOs3uD0vSJcK6z1fvef4Y+buN7DXhzHDPqRLSXUel1UfqMB1PWNsnnAezrKfEwTLpN0cGH2p9NNjs6IqeD0eg== - -"@stablelib/ed25519@^1.0.2": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@stablelib/ed25519/-/ed25519-1.0.3.tgz#f8fdeb6f77114897c887bb6a3138d659d3f35996" - integrity sha512-puIMWaX9QlRsbhxfDc5i+mNPMY+0TmQEskunY1rZEBPi1acBCVQAhnsk/1Hk50DGPtVsZtAWQg4NHGlVaO9Hqg== - dependencies: - "@stablelib/random" "^1.0.2" - "@stablelib/sha512" "^1.0.1" - "@stablelib/wipe" "^1.0.1" - -"@stablelib/hash@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/hash/-/hash-1.0.1.tgz#3c944403ff2239fad8ebb9015e33e98444058bc5" - integrity sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg== - -"@stablelib/hkdf@1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/hkdf/-/hkdf-1.0.1.tgz#b4efd47fd56fb43c6a13e8775a54b354f028d98d" - integrity sha512-SBEHYE16ZXlHuaW5RcGk533YlBj4grMeg5TooN80W3NpcHRtLZLLXvKyX0qcRFxf+BGDobJLnwkvgEwHIDBR6g== - dependencies: - "@stablelib/hash" "^1.0.1" - "@stablelib/hmac" "^1.0.1" - "@stablelib/wipe" "^1.0.1" - -"@stablelib/hmac@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/hmac/-/hmac-1.0.1.tgz#3d4c1b8cf194cb05d28155f0eed8a299620a07ec" - integrity sha512-V2APD9NSnhVpV/QMYgCVMIYKiYG6LSqw1S65wxVoirhU/51ACio6D4yDVSwMzuTJXWZoVHbDdINioBwKy5kVmA== - dependencies: - "@stablelib/constant-time" "^1.0.1" - "@stablelib/hash" "^1.0.1" - "@stablelib/wipe" "^1.0.1" - -"@stablelib/int@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/int/-/int-1.0.1.tgz#75928cc25d59d73d75ae361f02128588c15fd008" - integrity sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w== - -"@stablelib/keyagreement@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/keyagreement/-/keyagreement-1.0.1.tgz#4612efb0a30989deb437cd352cee637ca41fc50f" - integrity sha512-VKL6xBwgJnI6l1jKrBAfn265cspaWBPAPEc62VBQrWHLqVgNRE09gQ/AnOEyKUWrrqfD+xSQ3u42gJjLDdMDQg== - dependencies: - "@stablelib/bytes" "^1.0.1" - -"@stablelib/poly1305@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/poly1305/-/poly1305-1.0.1.tgz#93bfb836c9384685d33d70080718deae4ddef1dc" - integrity sha512-1HlG3oTSuQDOhSnLwJRKeTRSAdFNVB/1djy2ZbS35rBSJ/PFqx9cf9qatinWghC2UbfOYD8AcrtbUQl8WoxabA== - dependencies: - "@stablelib/constant-time" "^1.0.1" - "@stablelib/wipe" "^1.0.1" - -"@stablelib/random@^1.0.1", "@stablelib/random@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@stablelib/random/-/random-1.0.2.tgz#2dece393636489bf7e19c51229dd7900eddf742c" - integrity sha512-rIsE83Xpb7clHPVRlBj8qNe5L8ISQOzjghYQm/dZ7VaM2KHYwMW5adjQjrzTZCchFnNCNhkwtnOBa9HTMJCI8w== - dependencies: - "@stablelib/binary" "^1.0.1" - "@stablelib/wipe" "^1.0.1" - -"@stablelib/sha256@1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/sha256/-/sha256-1.0.1.tgz#77b6675b67f9b0ea081d2e31bda4866297a3ae4f" - integrity sha512-GIIH3e6KH+91FqGV42Kcj71Uefd/QEe7Dy42sBTeqppXV95ggCcxLTk39bEr+lZfJmp+ghsR07J++ORkRELsBQ== - dependencies: - "@stablelib/binary" "^1.0.1" - "@stablelib/hash" "^1.0.1" - "@stablelib/wipe" "^1.0.1" - -"@stablelib/sha512@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/sha512/-/sha512-1.0.1.tgz#6da700c901c2c0ceacbd3ae122a38ac57c72145f" - integrity sha512-13gl/iawHV9zvDKciLo1fQ8Bgn2Pvf7OV6amaRVKiq3pjQ3UmEpXxWiAfV8tYjUpeZroBxtyrwtdooQT/i3hzw== - dependencies: - "@stablelib/binary" "^1.0.1" - "@stablelib/hash" "^1.0.1" - "@stablelib/wipe" "^1.0.1" - -"@stablelib/wipe@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/wipe/-/wipe-1.0.1.tgz#d21401f1d59ade56a62e139462a97f104ed19a36" - integrity sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg== - -"@stablelib/x25519@^1.0.3": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@stablelib/x25519/-/x25519-1.0.3.tgz#13c8174f774ea9f3e5e42213cbf9fc68a3c7b7fd" - integrity sha512-KnTbKmUhPhHavzobclVJQG5kuivH+qDLpe84iRqX3CLrKp881cF160JvXJ+hjn1aMyCwYOKeIZefIH/P5cJoRw== - dependencies: - "@stablelib/keyagreement" "^1.0.1" - "@stablelib/random" "^1.0.2" - "@stablelib/wipe" "^1.0.1" - -"@szmarczak/http-timer@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" - integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== - dependencies: - defer-to-connect "^1.0.1" - -"@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" - 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" - integrity sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw== - dependencies: - defer-to-connect "^2.0.1" - -"@tokenizer/token@^0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@tokenizer/token/-/token-0.3.0.tgz#fe98a93fe789247e998c75e74e9c7c63217aa276" - integrity sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A== - -"@tootallnate/once@2": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" - integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== - -"@tsconfig/node10@^1.0.7": - version "1.0.9" - 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.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.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.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" - integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== - -"@typechain/ethers-v5@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@typechain/ethers-v5/-/ethers-v5-2.0.0.tgz#cd3ca1590240d587ca301f4c029b67bfccd08810" - integrity sha512-0xdCkyGOzdqh4h5JSf+zoWx85IusEjDcPIwNEHP8mrWSnCae4rvrqB+/gtpdNfX7zjlFlZiMeePn2r63EI3Lrw== - dependencies: - ethers "^5.0.2" - -"@types/bn.js@^4.11.3", "@types/bn.js@^4.11.5": - version "4.11.6" - 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.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.3.tgz#a430b3260466ca7b5ca5bfd735693b36e7a9d183" - integrity sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw== - dependencies: - "@types/http-cache-semantics" "*" - "@types/keyv" "^3.1.4" - "@types/node" "*" - "@types/responselike" "^1.0.0" - -"@types/chai-as-promised@^7.1.3": - version "7.1.8" - resolved "https://registry.yarnpkg.com/@types/chai-as-promised/-/chai-as-promised-7.1.8.tgz#f2b3d82d53c59626b5d6bbc087667ccb4b677fe9" - integrity sha512-ThlRVIJhr69FLlh6IctTXFkmhtP3NpMZ2QGq69StYLyKZFp/HOp1VdKZj7RvfNWYYcJ1xlbLGLLWj1UvP5u/Gw== - dependencies: - "@types/chai" "*" - -"@types/chai-subset@^1.3.3": - version "1.3.5" - resolved "https://registry.yarnpkg.com/@types/chai-subset/-/chai-subset-1.3.5.tgz#3fc044451f26985f45625230a7f22284808b0a9a" - integrity sha512-c2mPnw+xHtXDoHmdtcCXGwyLMiauiAyxWMzhGpqHC4nqI/Y5G2XhTampslK2rb59kpcuHon03UH8W6iYUzw88A== - dependencies: - "@types/chai" "*" - -"@types/chai@*", "@types/chai@^4.2.11", "@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/cli-progress@^3.11.0": - version "3.11.5" - resolved "https://registry.yarnpkg.com/@types/cli-progress/-/cli-progress-3.11.5.tgz#9518c745e78557efda057e3f96a5990c717268c3" - integrity sha512-D4PbNRbviKyppS5ivBGyFO29POlySLmA2HyUFE4p5QGazAMM3CwkKWcvTl8gvElSuxRh6FPKL8XmidX873ou4g== - dependencies: - "@types/node" "*" - -"@types/commander@^2.12.2": - version "2.12.2" - resolved "https://registry.yarnpkg.com/@types/commander/-/commander-2.12.2.tgz#183041a23842d4281478fa5d23c5ca78e6fd08ae" - integrity sha512-0QEFiR8ljcHp9bAbWxecjVRuAMr16ivPiGOw6KFQBVrVd0RQIcM3xKdRisH2EDWgVWujiYtHwhSkSUoAAGzH7Q== - dependencies: - commander "*" - -"@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" - integrity sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA== - dependencies: - "@types/node" "*" - -"@types/connect@^3.4.33": - version "3.4.38" - resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858" - integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== - dependencies: - "@types/node" "*" - -"@types/estree@^1.0.0": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" - integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== - -"@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" - integrity sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw== - dependencies: - "@types/node" "*" - -"@types/http-cache-semantics@*", "@types/http-cache-semantics@^4.0.2": - 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/http-proxy@^1.17.8": - version "1.17.14" - resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.14.tgz#57f8ccaa1c1c3780644f8a94f9c6b5000b5e2eec" - integrity sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w== - dependencies: - "@types/node" "*" - -"@types/humanize-duration@^3.27.1": - version "3.27.3" - resolved "https://registry.yarnpkg.com/@types/humanize-duration/-/humanize-duration-3.27.3.tgz#fa49ada1cc65222d5f1295c7756b6877f5a96bcf" - integrity sha512-wiiiFYjnrYDJE/ujU7wS/NShqp12IKrejozjDtcejP0zYi+cjyjVcfZHwcFUDKVJ7tHGsmgeW2ED92ABIIjfpg== - -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7" - integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== - -"@types/istanbul-lib-report@*": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz#53047614ae72e19fc0401d872de3ae2b4ce350bf" - integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA== - dependencies: - "@types/istanbul-lib-coverage" "*" - -"@types/istanbul-reports@^3.0.0": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz#0f03e3d2f670fbdac586e34b433783070cc16f54" - integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ== - dependencies: - "@types/istanbul-lib-report" "*" - -"@types/js-yaml@^4.0.0": - version "4.0.9" - resolved "https://registry.yarnpkg.com/@types/js-yaml/-/js-yaml-4.0.9.tgz#cd82382c4f902fed9691a2ed79ec68c5898af4c2" - integrity sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg== - -"@types/json-schema@^7.0.9": - 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/json-stable-stringify@^1.0.32": - version "1.0.36" - resolved "https://registry.yarnpkg.com/@types/json-stable-stringify/-/json-stable-stringify-1.0.36.tgz#fe6c6001a69ff8160a772da08779448a333c7ddd" - integrity sha512-b7bq23s4fgBB76n34m2b3RBf6M369B0Z9uRR8aHTMd8kZISRkmDEpPD8hhpYvDFzr3bJCPES96cm3Q6qRNDbQw== - -"@types/keyv@^3.1.4": - version "3.1.4" - resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.4.tgz#3ccdb1c6751b0c7e52300bcdacd5bcbf8faa75b6" - integrity sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg== - dependencies: - "@types/node" "*" - -"@types/long@^4.0.1": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a" - integrity sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA== - -"@types/lru-cache@^5.1.0": - version "5.1.1" - resolved "https://registry.yarnpkg.com/@types/lru-cache/-/lru-cache-5.1.1.tgz#c48c2e27b65d2a153b19bfc1a317e30872e01eef" - integrity sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw== - -"@types/luxon@^3.1.0": - version "3.3.5" - resolved "https://registry.yarnpkg.com/@types/luxon/-/luxon-3.3.5.tgz#ffdcec196994998dbef6284523b3ac88a9e6c45f" - integrity sha512-1cyf6Ge/94zlaWIZA2ei1pE6SZ8xpad2hXaYa5JEFiaUH0YS494CZwyi4MXNpXD9oEuv6ZH0Bmh0e7F9sPhmZA== - -"@types/minimatch@^3.0.4": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" - integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== - -"@types/minimist@^1.2.0": - version "1.2.5" - resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.5.tgz#ec10755e871497bcd83efe927e43ec46e8c0747e" - integrity sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag== - -"@types/mkdirp@^0.5.2": - version "0.5.2" - resolved "https://registry.yarnpkg.com/@types/mkdirp/-/mkdirp-0.5.2.tgz#503aacfe5cc2703d5484326b1b27efa67a339c1f" - integrity sha512-U5icWpv7YnZYGsN4/cmh3WD2onMY0aJIiTE6+51TwJCttdHvtCYmkBNOobHlXwrJRL0nkH9jH4kD+1FAdMN4Tg== - dependencies: - "@types/node" "*" - -"@types/mocha@^7.0.2": - version "7.0.2" - resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-7.0.2.tgz#b17f16cf933597e10d6d78eae3251e692ce8b0ce" - integrity sha512-ZvO2tAcjmMi8V/5Z3JsyofMe3hasRcaw88cto5etSVMwVQfeivGAlEYmaQgceUSVYFofVjT+ioHsATjdWcFt1w== - -"@types/node-fetch@^2.5.5": - version "2.6.9" - resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.9.tgz#15f529d247f1ede1824f7e7acdaa192d5f28071e" - integrity sha512-bQVlnMLFJ2d35DkPNjEPmd9ueO/rh5EiaZt2bhqiSarPjZIuIV6bPQVqcrEyvNo+AfTrRGVazle1tl597w3gfA== - dependencies: - "@types/node" "*" - form-data "^4.0.0" - -"@types/node@*", "@types/node@>=12.12.47", "@types/node@>=13.7.0": - version "20.10.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.10.0.tgz#16ddf9c0a72b832ec4fcce35b8249cf149214617" - integrity sha512-D0WfRmU9TQ8I9PFx9Yc+EBHw+vSpIub4IDvQivcp26PtPrdMGAq5SDcpXEo/epqa/DXotVpekHiLNTg3iaKXBQ== - dependencies: - undici-types "~5.26.4" - -"@types/node@^10.0.3": - version "10.17.60" - resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" - integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== - -"@types/node@^12.12.54", "@types/node@^12.12.6": - version "12.20.55" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" - integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== - -"@types/node@^13.9.2": - version "13.13.52" - resolved "https://registry.yarnpkg.com/@types/node/-/node-13.13.52.tgz#03c13be70b9031baaed79481c0c0cfb0045e53f7" - integrity sha512-s3nugnZumCC//n4moGGe6tkNMyYEdaDBitVjwPxXmR5lnMG5dHePinH2EdxkG3Rh1ghFHHixAG4NJhpJW1rthQ== - -"@types/node@^8.0.0": - version "8.10.66" - resolved "https://registry.yarnpkg.com/@types/node/-/node-8.10.66.tgz#dd035d409df322acc83dff62a602f12a5783bbb3" - integrity sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw== - -"@types/normalize-package-data@^2.4.0", "@types/normalize-package-data@^2.4.1": - version "2.4.4" - resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz#56e2cc26c397c038fab0e3a917a12d5c5909e901" - integrity sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA== - -"@types/parse-json@^4.0.0": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.2.tgz#5950e50960793055845e956c427fc2b0d70c5239" - integrity sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw== - -"@types/pbkdf2@^3.0.0": - 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@^1.13.2": - version "1.19.1" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-1.19.1.tgz#33509849f8e679e4add158959fdb086440e9553f" - integrity sha512-5qOlnZscTn4xxM5MeGXAMOsIOIKIbh9e85zJWfBRVPlRMEVawzoPhINYbRGkBZCI8LxvBe7tJCdWiarA99OZfQ== - -"@types/prettier@^2.1.1": - version "2.7.3" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.3.tgz#3e51a17e291d01d17d3fc61422015a933af7a08f" - integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA== - -"@types/qrcode@^1.5.0": - version "1.5.5" - resolved "https://registry.yarnpkg.com/@types/qrcode/-/qrcode-1.5.5.tgz#993ff7c6b584277eee7aac0a20861eab682f9dac" - integrity sha512-CdfBi/e3Qk+3Z/fXYShipBT13OJ2fDO2Q2w5CIP5anLTLIndQG9z6P1cnm+8zCWSpm5dnxMFd/uREtb0EXuQzg== - dependencies: - "@types/node" "*" - -"@types/qs@^6.2.31": - version "6.9.10" - resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.10.tgz#0af26845b5067e1c9a622658a51f60a3934d51e8" - integrity sha512-3Gnx08Ns1sEoCrWssEgTSJs/rsT2vhGP+Ja9cnnk9k4ALxinORlQneLXFeFKOTJMOeZUFD1s7w+w2AphTpvzZw== - -"@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" - integrity sha512-oM5JSKQCcICF1wvGgmecmHldZ48OZamtMxcGGVICOJA8o8cahXC1zEVAif8iwoc5j8etxFaRFnf095+CDsuoFQ== - dependencies: - "@types/node" "*" - safe-buffer "~5.1.1" - -"@types/resolve@^0.0.8": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-0.0.8.tgz#f26074d238e02659e323ce1a13d041eee280e194" - integrity sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ== - dependencies: - "@types/node" "*" - -"@types/responselike@^1.0.0": - 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/retry@0.12.1": - version "0.12.1" - resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.1.tgz#d8f1c0d0dc23afad6dc16a9e993a0865774b4065" - integrity sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g== - -"@types/secp256k1@^4.0.1": - 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/semver@^7.3.12": - version "7.5.6" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.6.tgz#c65b2bfce1bec346582c07724e3f8c1017a20339" - integrity sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A== - -"@types/triple-beam@^1.3.2": - version "1.3.5" - resolved "https://registry.yarnpkg.com/@types/triple-beam/-/triple-beam-1.3.5.tgz#74fef9ffbaa198eb8b588be029f38b00299caa2c" - integrity sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw== - -"@types/trusted-types@^2.0.2": - version "2.0.7" - resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.7.tgz#baccb07a970b91707df3a3e8ba6896c57ead2d11" - integrity sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw== - -"@types/web-bluetooth@^0.0.16": - version "0.0.16" - resolved "https://registry.yarnpkg.com/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz#1d12873a8e49567371f2a75fe3e7f7edca6662d8" - integrity sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ== - -"@types/web-bluetooth@^0.0.20": - version "0.0.20" - resolved "https://registry.yarnpkg.com/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz#f066abfcd1cbe66267cdbbf0de010d8a41b41597" - integrity sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow== - -"@types/ws@^7.4.4": - version "7.4.7" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.4.7.tgz#f7c390a36f7a0679aa69de2d501319f4f8d9b702" - integrity sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww== - dependencies: - "@types/node" "*" - -"@types/ws@^8.0.0": - version "8.5.10" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.10.tgz#4acfb517970853fa6574a3a6886791d04a396787" - integrity sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A== - dependencies: - "@types/node" "*" - -"@types/yargs-parser@*": - version "21.0.3" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15" - integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== - -"@types/yargs@^16.0.0": - version "16.0.9" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.9.tgz#ba506215e45f7707e6cbcaf386981155b7ab956e" - integrity sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA== - dependencies: - "@types/yargs-parser" "*" - -"@types/yauzl@^2.9.1": - version "2.10.3" - resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.10.3.tgz#e9b2808b4f109504a03cda958259876f61017999" - integrity sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q== - dependencies: - "@types/node" "*" - -"@typescript-eslint/eslint-plugin@^5.44.0", "@typescript-eslint/eslint-plugin@^5.59.1": - version "5.62.0" - 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" - "@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" - -"@typescript-eslint/parser@^5.44.0", "@typescript-eslint/parser@^5.59.1": - version "5.62.0" - 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" - "@typescript-eslint/types" "5.62.0" - "@typescript-eslint/typescript-estree" "5.62.0" - debug "^4.3.4" - -"@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" - integrity sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w== - dependencies: - "@typescript-eslint/types" "5.62.0" - "@typescript-eslint/visitor-keys" "5.62.0" - -"@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" - integrity sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew== - dependencies: - "@typescript-eslint/typescript-estree" "5.62.0" - "@typescript-eslint/utils" "5.62.0" - debug "^4.3.4" - tsutils "^3.21.0" - -"@typescript-eslint/types@5.62.0": - version "5.62.0" - 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", "@typescript-eslint/typescript-estree@^5.59.5": - version "5.62.0" - 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" - "@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" - -"@typescript-eslint/utils@5.62.0": - version "5.62.0" - 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" - "@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" - -"@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" - integrity sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw== - dependencies: - "@typescript-eslint/types" "5.62.0" - eslint-visitor-keys "^3.3.0" - -"@ungap/promise-all-settled@1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44" - integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q== - -"@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== - -"@vercel/nft@^0.23.0": - version "0.23.1" - resolved "https://registry.yarnpkg.com/@vercel/nft/-/nft-0.23.1.tgz#f17c5f9d3f3a0178ea25eb7397a14618c00529bf" - integrity sha512-NE0xSmGWVhgHF1OIoir71XAd0W0C1UE3nzFyhpFiMr3rVhetww7NvM1kc41trBsPG37Bh+dE5FYCTMzM/gBu0w== - dependencies: - "@mapbox/node-pre-gyp" "^1.0.5" - "@rollup/pluginutils" "^4.0.0" - acorn "^8.6.0" - async-sema "^3.1.1" - bindings "^1.4.0" - estree-walker "2.0.2" - glob "^7.1.3" - graceful-fs "^4.2.9" - micromatch "^4.0.2" - node-gyp-build "^4.2.2" - resolve-from "^5.0.0" - -"@vercel/nft@^0.24.3": - version "0.24.3" - resolved "https://registry.yarnpkg.com/@vercel/nft/-/nft-0.24.3.tgz#7a6c5b17a4ac153bd07d9d0511ccef20d1cefa66" - integrity sha512-IyBdIxmFAeGZnEfMgt4QrGK7XX4lWazlQj34HEi9dw04/WeDBJ7r1yaOIO5tTf9pbfvwUFodj9b0H+NDGGoOMg== - dependencies: - "@mapbox/node-pre-gyp" "^1.0.5" - "@rollup/pluginutils" "^4.0.0" - acorn "^8.6.0" - async-sema "^3.1.1" - bindings "^1.4.0" - estree-walker "2.0.2" - glob "^7.1.3" - graceful-fs "^4.2.9" - micromatch "^4.0.2" - node-gyp-build "^4.2.2" - resolve-from "^5.0.0" - -"@vitejs/plugin-vue@3.2.0": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-3.2.0.tgz#a1484089dd85d6528f435743f84cdd0d215bbb54" - integrity sha512-E0tnaL4fr+qkdCNxJ+Xd0yM31UwMkQje76fsDVBBUCoGOUPexu2VDUYHL8P4CwV+zMvWw6nlRw19OnRKmYAJpw== - -"@volar/language-core@1.10.10", "@volar/language-core@~1.10.5": - version "1.10.10" - resolved "https://registry.yarnpkg.com/@volar/language-core/-/language-core-1.10.10.tgz#9c240a36dd4007b9c4f00739f6cecb81da54a49e" - integrity sha512-nsV1o3AZ5n5jaEAObrS3MWLBWaGwUj/vAsc15FVNIv+DbpizQRISg9wzygsHBr56ELRH8r4K75vkYNMtsSNNWw== - dependencies: - "@volar/source-map" "1.10.10" - -"@volar/source-map@1.10.10", "@volar/source-map@~1.10.5": - version "1.10.10" - resolved "https://registry.yarnpkg.com/@volar/source-map/-/source-map-1.10.10.tgz#ec807fe60b8afe29e19bf6d1c90d2e76502df541" - integrity sha512-GVKjLnifV4voJ9F0vhP56p4+F3WGf+gXlRtjFZsv6v3WxBTWU3ZVeaRaEHJmWrcv5LXmoYYpk/SC25BKemPRkg== - dependencies: - muggle-string "^0.3.1" - -"@volar/typescript@~1.10.5": - version "1.10.10" - resolved "https://registry.yarnpkg.com/@volar/typescript/-/typescript-1.10.10.tgz#1f88202c63988ddfcee154a93050312041b83329" - integrity sha512-4a2r5bdUub2m+mYVnLu2wt59fuoYWe7nf0uXtGHU8QQ5LDNfzAR0wK7NgDiQ9rcl2WT3fxT2AA9AylAwFtj50A== - dependencies: - "@volar/language-core" "1.10.10" - path-browserify "^1.0.1" - -"@vue/compiler-core@3.3.8": - version "3.3.8" - resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.3.8.tgz#301bb60d0245265a88ed5b30e200fbf223acb313" - integrity sha512-hN/NNBUECw8SusQvDSqqcVv6gWq8L6iAktUR0UF3vGu2OhzRqcOiAno0FmBJWwxhYEXRlQJT5XnoKsVq1WZx4g== - dependencies: - "@babel/parser" "^7.23.0" - "@vue/shared" "3.3.8" - estree-walker "^2.0.2" - source-map-js "^1.0.2" - -"@vue/compiler-dom@3.3.8", "@vue/compiler-dom@^3.3.0": - version "3.3.8" - resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.3.8.tgz#09d832514b9b8d9415a3816b065d69dbefcc7e9b" - integrity sha512-+PPtv+p/nWDd0AvJu3w8HS0RIm/C6VGBIRe24b9hSyNWOAPEUosFZ5diwawwP8ip5sJ8n0Pe87TNNNHnvjs0FQ== - dependencies: - "@vue/compiler-core" "3.3.8" - "@vue/shared" "3.3.8" - -"@vue/compiler-sfc@3.3.8", "@vue/compiler-sfc@^3.2.45": - version "3.3.8" - resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.3.8.tgz#40b18e48aa00260950964d1d72157668521be0e1" - integrity sha512-WMzbUrlTjfYF8joyT84HfwwXo+8WPALuPxhy+BZ6R4Aafls+jDBnSz8PDz60uFhuqFbl3HxRfxvDzrUf3THwpA== - dependencies: - "@babel/parser" "^7.23.0" - "@vue/compiler-core" "3.3.8" - "@vue/compiler-dom" "3.3.8" - "@vue/compiler-ssr" "3.3.8" - "@vue/reactivity-transform" "3.3.8" - "@vue/shared" "3.3.8" - estree-walker "^2.0.2" - magic-string "^0.30.5" - postcss "^8.4.31" - source-map-js "^1.0.2" - -"@vue/compiler-ssr@3.3.8": - version "3.3.8" - resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.3.8.tgz#136eed54411e4694815d961048a237191063fbce" - integrity sha512-hXCqQL/15kMVDBuoBYpUnSYT8doDNwsjvm3jTefnXr+ytn294ySnT8NlsFHmTgKNjwpuFy7XVV8yTeLtNl/P6w== - dependencies: - "@vue/compiler-dom" "3.3.8" - "@vue/shared" "3.3.8" - -"@vue/devtools-api@^6.5.0": - version "6.5.1" - resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.5.1.tgz#7f71f31e40973eeee65b9a64382b13593fdbd697" - integrity sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA== - -"@vue/eslint-config-prettier@^7.0.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@vue/eslint-config-prettier/-/eslint-config-prettier-7.1.0.tgz#97936379c7fb1d982b9d2c6b122306e3c2e464c8" - integrity sha512-Pv/lVr0bAzSIHLd9iz0KnvAr4GKyCEl+h52bc4e5yWuDVtLgFwycF7nrbWTAQAS+FU6q1geVd07lc6EWfJiWKQ== - dependencies: - eslint-config-prettier "^8.3.0" - eslint-plugin-prettier "^4.0.0" - -"@vue/eslint-config-typescript@^11.0.2": - version "11.0.3" - resolved "https://registry.yarnpkg.com/@vue/eslint-config-typescript/-/eslint-config-typescript-11.0.3.tgz#c720efa657d102cd2945bc54b4a79f35d57f6307" - integrity sha512-dkt6W0PX6H/4Xuxg/BlFj5xHvksjpSlVjtkQCpaYJBIEuKj2hOVU7r+TIe+ysCwRYFz/lGqvklntRkCAibsbPw== - dependencies: - "@typescript-eslint/eslint-plugin" "^5.59.1" - "@typescript-eslint/parser" "^5.59.1" - vue-eslint-parser "^9.1.1" - -"@vue/language-core@1.8.22": - version "1.8.22" - resolved "https://registry.yarnpkg.com/@vue/language-core/-/language-core-1.8.22.tgz#1ef62645fb9b1f830c6c84a5586e49e74727b1e3" - integrity sha512-bsMoJzCrXZqGsxawtUea1cLjUT9dZnDsy5TuZ+l1fxRMzUGQUG9+Ypq4w//CqpWmrx7nIAJpw2JVF/t258miRw== - dependencies: - "@volar/language-core" "~1.10.5" - "@volar/source-map" "~1.10.5" - "@vue/compiler-dom" "^3.3.0" - "@vue/shared" "^3.3.0" - computeds "^0.0.1" - minimatch "^9.0.3" - muggle-string "^0.3.1" - vue-template-compiler "^2.7.14" - -"@vue/reactivity-transform@3.3.8": - version "3.3.8" - resolved "https://registry.yarnpkg.com/@vue/reactivity-transform/-/reactivity-transform-3.3.8.tgz#6d07649013b0be5c670f0ab6cc7ddd3150ad03f2" - integrity sha512-49CvBzmZNtcHua0XJ7GdGifM8GOXoUMOX4dD40Y5DxI3R8OUhMlvf2nvgUAcPxaXiV5MQQ1Nwy09ADpnLQUqRw== - dependencies: - "@babel/parser" "^7.23.0" - "@vue/compiler-core" "3.3.8" - "@vue/shared" "3.3.8" - estree-walker "^2.0.2" - magic-string "^0.30.5" - -"@vue/reactivity@3.3.8": - version "3.3.8" - resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.3.8.tgz#cce8a03a3fd3539c3eeda53e277ba365d160dd4d" - integrity sha512-ctLWitmFBu6mtddPyOKpHg8+5ahouoTCRtmAHZAXmolDtuZXfjL2T3OJ6DL6ezBPQB1SmMnpzjiWjCiMYmpIuw== - dependencies: - "@vue/shared" "3.3.8" - -"@vue/runtime-core@3.3.8": - version "3.3.8" - resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.3.8.tgz#fba5a632cbf2b5d29e171489570149cb6975dcdb" - integrity sha512-qurzOlb6q26KWQ/8IShHkMDOuJkQnQcTIp1sdP4I9MbCf9FJeGVRXJFr2mF+6bXh/3Zjr9TDgURXrsCr9bfjUw== - dependencies: - "@vue/reactivity" "3.3.8" - "@vue/shared" "3.3.8" - -"@vue/runtime-dom@3.3.8": - version "3.3.8" - resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.3.8.tgz#e2d7aa795cf50914dda9a951887765a594b38af4" - integrity sha512-Noy5yM5UIf9UeFoowBVgghyGGPIDPy1Qlqt0yVsUdAVbqI8eeMSsTqBtauaEoT2UFXUk5S64aWVNJN4MJ2vRdA== - dependencies: - "@vue/runtime-core" "3.3.8" - "@vue/shared" "3.3.8" - csstype "^3.1.2" - -"@vue/server-renderer@3.3.8": - version "3.3.8" - resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.3.8.tgz#9b1779010e75783edeed8fcfb97d9c95fc3ac5d2" - integrity sha512-zVCUw7RFskvPuNlPn/8xISbrf0zTWsTSdYTsUTN1ERGGZGVnRxM2QZ3x1OR32+vwkkCm0IW6HmJ49IsPm7ilLg== - dependencies: - "@vue/compiler-ssr" "3.3.8" - "@vue/shared" "3.3.8" - -"@vue/shared@3.3.8", "@vue/shared@^3.3.0": - version "3.3.8" - resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.3.8.tgz#f044942142e1d3a395f24132e6203a784838542d" - integrity sha512-8PGwybFwM4x8pcfgqEQFy70NaQxASvOC5DJwLQfpArw1UDfUXrJkdxD3BhVTMS+0Lef/TU7YO0Jvr0jJY8T+mw== - -"@vue/tsconfig@^0.1.3": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@vue/tsconfig/-/tsconfig-0.1.3.tgz#4a61dbd29783d01ddab504276dcf0c2b6988654f" - integrity sha512-kQVsh8yyWPvHpb8gIc9l/HIDiiVUy1amynLNpCy8p+FoCiZXCo6fQos5/097MmnNZc9AtseDsCrfkhqCrJ8Olg== - -"@vuelidate/core@^2.0.0": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@vuelidate/core/-/core-2.0.3.tgz#40468c5ed15b72bde880a026b0699c2f0f1ecede" - integrity sha512-AN6l7KF7+mEfyWG0doT96z+47ljwPpZfi9/JrNMkOGLFv27XVZvKzRLXlmDPQjPl/wOB1GNnHuc54jlCLRNqGA== - dependencies: - vue-demi "^0.13.11" - -"@vuelidate/validators@^2.0.0": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@vuelidate/validators/-/validators-2.0.4.tgz#0a88a7b2b18f15fd9c384095593f369a6f7384e9" - integrity sha512-odTxtUZ2JpwwiQ10t0QWYJkkYrfd0SyFYhdHH44QQ1jDatlZgTh/KRzrWVmn/ib9Gq7H4hFD4e8ahoo5YlUlDw== - dependencies: - vue-demi "^0.13.11" - -"@vueuse/core@10.6.1", "@vueuse/core@^10.5.0": - version "10.6.1" - resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-10.6.1.tgz#5b16d8238054c6983b6cb7cd77a78035f098dd89" - integrity sha512-Pc26IJbqgC9VG1u6VY/xrXXfxD33hnvxBnKrLlA2LJlyHII+BSrRoTPJgGYq7qZOu61itITFUnm6QbacwZ4H8Q== - dependencies: - "@types/web-bluetooth" "^0.0.20" - "@vueuse/metadata" "10.6.1" - "@vueuse/shared" "10.6.1" - vue-demi ">=0.14.6" - -"@vueuse/core@^9.6.0": - version "9.13.0" - resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-9.13.0.tgz#2f69e66d1905c1e4eebc249a01759cf88ea00cf4" - integrity sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw== - dependencies: - "@types/web-bluetooth" "^0.0.16" - "@vueuse/metadata" "9.13.0" - "@vueuse/shared" "9.13.0" - vue-demi "*" - -"@vueuse/integrations@^10.5.0": - version "10.6.1" - resolved "https://registry.yarnpkg.com/@vueuse/integrations/-/integrations-10.6.1.tgz#8358ced20d1a976422693ae3711ad29b70948504" - integrity sha512-mPDupuofMJ4DPmtX/FfP1MajmWRzYDv8WSaTCo8LQ5kFznjWgmUQ16ApjYqgMquqffNY6+IRMdMgosLDRZOSZA== - dependencies: - "@vueuse/core" "10.6.1" - "@vueuse/shared" "10.6.1" - vue-demi ">=0.14.6" - -"@vueuse/metadata@10.6.1": - version "10.6.1" - resolved "https://registry.yarnpkg.com/@vueuse/metadata/-/metadata-10.6.1.tgz#100faa0ced3c0ab4c014fb8e66e781e85e4eb88d" - integrity sha512-qhdwPI65Bgcj23e5lpGfQsxcy0bMjCAsUGoXkJ7DsoeDUdasbZ2DBa4dinFCOER3lF4gwUv+UD2AlA11zdzMFw== - -"@vueuse/metadata@9.13.0": - version "9.13.0" - resolved "https://registry.yarnpkg.com/@vueuse/metadata/-/metadata-9.13.0.tgz#bc25a6cdad1b1a93c36ce30191124da6520539ff" - integrity sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ== - -"@vueuse/shared@10.6.1": - version "10.6.1" - resolved "https://registry.yarnpkg.com/@vueuse/shared/-/shared-10.6.1.tgz#1d9fc1e3f9083e45b59a693fc372bc50ad62a9e4" - integrity sha512-TECVDTIedFlL0NUfHWncf3zF9Gc4VfdxfQc8JFwoVZQmxpONhLxFrlm0eHQeidHj4rdTPL3KXJa0TZCk1wnc5Q== - dependencies: - vue-demi ">=0.14.6" - -"@vueuse/shared@9.13.0": - version "9.13.0" - resolved "https://registry.yarnpkg.com/@vueuse/shared/-/shared-9.13.0.tgz#089ff4cc4e2e7a4015e57a8f32e4b39d096353b9" - integrity sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw== - dependencies: - vue-demi "*" - -"@walletconnect/core@2.10.5": - version "2.10.5" - resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-2.10.5.tgz#d61706c6459d9baaef05e83907df8cab82a03251" - integrity sha512-QnGHkA05KzJrtqExPqXm/TsstM1uTDI8tQT0x86/DuR6LdiYEntzSpVjnv7kKK6Mo9UxlXfud431dNRfOW5uJg== - dependencies: - "@walletconnect/heartbeat" "1.2.1" - "@walletconnect/jsonrpc-provider" "1.0.13" - "@walletconnect/jsonrpc-types" "1.0.3" - "@walletconnect/jsonrpc-utils" "1.0.8" - "@walletconnect/jsonrpc-ws-connection" "1.0.14" - "@walletconnect/keyvaluestorage" "^1.1.1" - "@walletconnect/logger" "^2.0.1" - "@walletconnect/relay-api" "^1.0.9" - "@walletconnect/relay-auth" "^1.0.4" - "@walletconnect/safe-json" "^1.0.2" - "@walletconnect/time" "^1.0.2" - "@walletconnect/types" "2.10.5" - "@walletconnect/utils" "2.10.5" - events "^3.3.0" - lodash.isequal "4.5.0" - uint8arrays "^3.1.0" - -"@walletconnect/environment@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@walletconnect/environment/-/environment-1.0.1.tgz#1d7f82f0009ab821a2ba5ad5e5a7b8ae3b214cd7" - integrity sha512-T426LLZtHj8e8rYnKfzsw1aG6+M0BT1ZxayMdv/p8yM0MU+eJDISqNY3/bccxRr4LrF9csq02Rhqt08Ibl0VRg== - dependencies: - tslib "1.14.1" - -"@walletconnect/ethereum-provider@^2.9.0": - version "2.10.5" - resolved "https://registry.yarnpkg.com/@walletconnect/ethereum-provider/-/ethereum-provider-2.10.5.tgz#a14ede16a751f115f8a0d050736155c8654835d5" - integrity sha512-Pihi2M03cRkWEiGetRUiO2A506YTj/Bbbxp+Ct7t5N5SccoeuhrzsEt30pA7I0XAiOnAeKp79OKmXHRhXfRmhg== - dependencies: - "@walletconnect/jsonrpc-http-connection" "^1.0.7" - "@walletconnect/jsonrpc-provider" "^1.0.13" - "@walletconnect/jsonrpc-types" "^1.0.3" - "@walletconnect/jsonrpc-utils" "^1.0.8" - "@walletconnect/modal" "^2.4.3" - "@walletconnect/sign-client" "2.10.5" - "@walletconnect/types" "2.10.5" - "@walletconnect/universal-provider" "2.10.5" - "@walletconnect/utils" "2.10.5" - events "^3.3.0" - -"@walletconnect/events@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@walletconnect/events/-/events-1.0.1.tgz#2b5f9c7202019e229d7ccae1369a9e86bda7816c" - integrity sha512-NPTqaoi0oPBVNuLv7qPaJazmGHs5JGyO8eEAk5VGKmJzDR7AHzD4k6ilox5kxk1iwiOnFopBOOMLs86Oa76HpQ== - dependencies: - keyvaluestorage-interface "^1.0.0" - tslib "1.14.1" - -"@walletconnect/heartbeat@1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@walletconnect/heartbeat/-/heartbeat-1.2.1.tgz#afaa3a53232ae182d7c9cff41c1084472d8f32e9" - integrity sha512-yVzws616xsDLJxuG/28FqtZ5rzrTA4gUjdEMTbWB5Y8V1XHRmqq4efAxCw5ie7WjbXFSUyBHaWlMR+2/CpQC5Q== - dependencies: - "@walletconnect/events" "^1.0.1" - "@walletconnect/time" "^1.0.2" - tslib "1.14.1" - -"@walletconnect/jsonrpc-http-connection@^1.0.7": - version "1.0.7" - resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-http-connection/-/jsonrpc-http-connection-1.0.7.tgz#a6973569b8854c22da707a759d241e4f5c2d5a98" - integrity sha512-qlfh8fCfu8LOM9JRR9KE0s0wxP6ZG9/Jom8M0qsoIQeKF3Ni0FyV4V1qy/cc7nfI46SLQLSl4tgWSfLiE1swyQ== - dependencies: - "@walletconnect/jsonrpc-utils" "^1.0.6" - "@walletconnect/safe-json" "^1.0.1" - cross-fetch "^3.1.4" - tslib "1.14.1" - -"@walletconnect/jsonrpc-provider@1.0.13", "@walletconnect/jsonrpc-provider@^1.0.13": - version "1.0.13" - resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-provider/-/jsonrpc-provider-1.0.13.tgz#9a74da648d015e1fffc745f0c7d629457f53648b" - integrity sha512-K73EpThqHnSR26gOyNEL+acEex3P7VWZe6KE12ZwKzAt2H4e5gldZHbjsu2QR9cLeJ8AXuO7kEMOIcRv1QEc7g== - dependencies: - "@walletconnect/jsonrpc-utils" "^1.0.8" - "@walletconnect/safe-json" "^1.0.2" - tslib "1.14.1" - -"@walletconnect/jsonrpc-types@1.0.3", "@walletconnect/jsonrpc-types@^1.0.2", "@walletconnect/jsonrpc-types@^1.0.3": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.3.tgz#65e3b77046f1a7fa8347ae02bc1b841abe6f290c" - integrity sha512-iIQ8hboBl3o5ufmJ8cuduGad0CQm3ZlsHtujv9Eu16xq89q+BG7Nh5VLxxUgmtpnrePgFkTwXirCTkwJH1v+Yw== - dependencies: - keyvaluestorage-interface "^1.0.0" - tslib "1.14.1" - -"@walletconnect/jsonrpc-utils@1.0.8", "@walletconnect/jsonrpc-utils@^1.0.6", "@walletconnect/jsonrpc-utils@^1.0.7", "@walletconnect/jsonrpc-utils@^1.0.8": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.8.tgz#82d0cc6a5d6ff0ecc277cb35f71402c91ad48d72" - integrity sha512-vdeb03bD8VzJUL6ZtzRYsFMq1eZQcM3EAzT0a3st59dyLfJ0wq+tKMpmGH7HlB7waD858UWgfIcudbPFsbzVdw== - dependencies: - "@walletconnect/environment" "^1.0.1" - "@walletconnect/jsonrpc-types" "^1.0.3" - tslib "1.14.1" - -"@walletconnect/jsonrpc-ws-connection@1.0.14": - version "1.0.14" - resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-ws-connection/-/jsonrpc-ws-connection-1.0.14.tgz#eec700e74766c7887de2bd76c91a0206628732aa" - integrity sha512-Jsl6fC55AYcbkNVkwNM6Jo+ufsuCQRqViOQ8ZBPH9pRREHH9welbBiszuTLqEJiQcO/6XfFDl6bzCJIkrEi8XA== - dependencies: - "@walletconnect/jsonrpc-utils" "^1.0.6" - "@walletconnect/safe-json" "^1.0.2" - events "^3.3.0" - ws "^7.5.1" - -"@walletconnect/keyvaluestorage@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@walletconnect/keyvaluestorage/-/keyvaluestorage-1.1.1.tgz#dd2caddabfbaf80f6b8993a0704d8b83115a1842" - integrity sha512-V7ZQq2+mSxAq7MrRqDxanTzu2RcElfK1PfNYiaVnJgJ7Q7G7hTVwF8voIBx92qsRyGHZihrwNPHuZd1aKkd0rA== - dependencies: - "@walletconnect/safe-json" "^1.0.1" - idb-keyval "^6.2.1" - unstorage "^1.9.0" - -"@walletconnect/logger@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@walletconnect/logger/-/logger-2.0.1.tgz#7f489b96e9a1ff6bf3e58f0fbd6d69718bf844a8" - integrity sha512-SsTKdsgWm+oDTBeNE/zHxxr5eJfZmE9/5yp/Ku+zJtcTAjELb3DXueWkDXmE9h8uHIbJzIb5wj5lPdzyrjT6hQ== - dependencies: - pino "7.11.0" - tslib "1.14.1" - -"@walletconnect/modal-core@2.6.2": - version "2.6.2" - resolved "https://registry.yarnpkg.com/@walletconnect/modal-core/-/modal-core-2.6.2.tgz#d73e45d96668764e0c8668ea07a45bb8b81119e9" - integrity sha512-cv8ibvdOJQv2B+nyxP9IIFdxvQznMz8OOr/oR/AaUZym4hjXNL/l1a2UlSQBXrVjo3xxbouMxLb3kBsHoYP2CA== - dependencies: - valtio "1.11.2" - -"@walletconnect/modal-ui@2.6.2": - version "2.6.2" - resolved "https://registry.yarnpkg.com/@walletconnect/modal-ui/-/modal-ui-2.6.2.tgz#fa57c087c57b7f76aaae93deab0f84bb68b59cf9" - integrity sha512-rbdstM1HPGvr7jprQkyPggX7rP4XiCG85ZA+zWBEX0dVQg8PpAgRUqpeub4xQKDgY7pY/xLRXSiCVdWGqvG2HA== - dependencies: - "@walletconnect/modal-core" "2.6.2" - lit "2.8.0" - motion "10.16.2" - qrcode "1.5.3" - -"@walletconnect/modal@^2.4.3", "@walletconnect/modal@^2.6.0": - version "2.6.2" - resolved "https://registry.yarnpkg.com/@walletconnect/modal/-/modal-2.6.2.tgz#4b534a836f5039eeb3268b80be7217a94dd12651" - integrity sha512-eFopgKi8AjKf/0U4SemvcYw9zlLpx9njVN8sf6DAkowC2Md0gPU/UNEbH1Wwj407pEKnEds98pKWib1NN1ACoA== - dependencies: - "@walletconnect/modal-core" "2.6.2" - "@walletconnect/modal-ui" "2.6.2" - -"@walletconnect/relay-api@^1.0.9": - version "1.0.9" - resolved "https://registry.yarnpkg.com/@walletconnect/relay-api/-/relay-api-1.0.9.tgz#f8c2c3993dddaa9f33ed42197fc9bfebd790ecaf" - integrity sha512-Q3+rylJOqRkO1D9Su0DPE3mmznbAalYapJ9qmzDgK28mYF9alcP3UwG/og5V7l7CFOqzCLi7B8BvcBUrpDj0Rg== - dependencies: - "@walletconnect/jsonrpc-types" "^1.0.2" - tslib "1.14.1" - -"@walletconnect/relay-auth@^1.0.4": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@walletconnect/relay-auth/-/relay-auth-1.0.4.tgz#0b5c55c9aa3b0ef61f526ce679f3ff8a5c4c2c7c" - integrity sha512-kKJcS6+WxYq5kshpPaxGHdwf5y98ZwbfuS4EE/NkQzqrDFm5Cj+dP8LofzWvjrrLkZq7Afy7WrQMXdLy8Sx7HQ== - dependencies: - "@stablelib/ed25519" "^1.0.2" - "@stablelib/random" "^1.0.1" - "@walletconnect/safe-json" "^1.0.1" - "@walletconnect/time" "^1.0.2" - tslib "1.14.1" - uint8arrays "^3.0.0" - -"@walletconnect/safe-json@^1.0.1", "@walletconnect/safe-json@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@walletconnect/safe-json/-/safe-json-1.0.2.tgz#7237e5ca48046e4476154e503c6d3c914126fa77" - integrity sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA== - dependencies: - tslib "1.14.1" - -"@walletconnect/sign-client@2.10.5": - version "2.10.5" - resolved "https://registry.yarnpkg.com/@walletconnect/sign-client/-/sign-client-2.10.5.tgz#f97f0fed544179a3303941f3bebd13ede3a736ed" - integrity sha512-HEYsoeGC6fGplQy0NIZSRNHgOwZwQ892UWG1Ahkcasf2R35QaBgnTVQkSCisl1PAAOKXZG7yB1YDoAAZBF+g5Q== - dependencies: - "@walletconnect/core" "2.10.5" - "@walletconnect/events" "^1.0.1" - "@walletconnect/heartbeat" "1.2.1" - "@walletconnect/jsonrpc-utils" "1.0.8" - "@walletconnect/logger" "^2.0.1" - "@walletconnect/time" "^1.0.2" - "@walletconnect/types" "2.10.5" - "@walletconnect/utils" "2.10.5" - events "^3.3.0" - -"@walletconnect/time@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@walletconnect/time/-/time-1.0.2.tgz#6c5888b835750ecb4299d28eecc5e72c6d336523" - integrity sha512-uzdd9woDcJ1AaBZRhqy5rNC9laqWGErfc4dxA9a87mPdKOgWMD85mcFo9dIYIts/Jwocfwn07EC6EzclKubk/g== - dependencies: - tslib "1.14.1" - -"@walletconnect/types@2.10.5": - version "2.10.5" - resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-2.10.5.tgz#bf4e692cf736b6e71423f96a106d7a96089245de" - integrity sha512-N8xaN7/Kob93rKxKDaT6oy6symgIkAwyLqq0/dLJEhXfv7S/gyNvDka4SosjVVTc4oTvE1+OmxNIR8pB1DuwJw== - dependencies: - "@walletconnect/events" "^1.0.1" - "@walletconnect/heartbeat" "1.2.1" - "@walletconnect/jsonrpc-types" "1.0.3" - "@walletconnect/keyvaluestorage" "^1.1.1" - "@walletconnect/logger" "^2.0.1" - events "^3.3.0" - -"@walletconnect/universal-provider@2.10.5": - version "2.10.5" - resolved "https://registry.yarnpkg.com/@walletconnect/universal-provider/-/universal-provider-2.10.5.tgz#b08965a9306a30775796cc0cc384f2dfc9fde512" - integrity sha512-sQOvjrGF6za7+6zv7KI9eQz2gzRbS19j7U1z+JwIWdn4VBJmriaTjVHDz/R1liwKcS4sUiUthDC6WmQvjukjZQ== - dependencies: - "@walletconnect/jsonrpc-http-connection" "^1.0.7" - "@walletconnect/jsonrpc-provider" "1.0.13" - "@walletconnect/jsonrpc-types" "^1.0.2" - "@walletconnect/jsonrpc-utils" "^1.0.7" - "@walletconnect/logger" "^2.0.1" - "@walletconnect/sign-client" "2.10.5" - "@walletconnect/types" "2.10.5" - "@walletconnect/utils" "2.10.5" - events "^3.3.0" - -"@walletconnect/utils@2.10.5": - version "2.10.5" - resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-2.10.5.tgz#8c8ef90c9e2b59886aae002ab8cbbdb35da1df9a" - integrity sha512-3yeclD9/AlPEIHBqBVzrHUO/KRAEIXVK0ViIQ5oUH+zT3TpdsDGDiW1Z0TsAQ1EiYoiiz8dOQzd80a3eZVwnrg== - dependencies: - "@stablelib/chacha20poly1305" "1.0.1" - "@stablelib/hkdf" "1.0.1" - "@stablelib/random" "^1.0.2" - "@stablelib/sha256" "1.0.1" - "@stablelib/x25519" "^1.0.3" - "@walletconnect/relay-api" "^1.0.9" - "@walletconnect/safe-json" "^1.0.2" - "@walletconnect/time" "^1.0.2" - "@walletconnect/types" "2.10.5" - "@walletconnect/window-getters" "^1.0.1" - "@walletconnect/window-metadata" "^1.0.1" - detect-browser "5.3.0" - query-string "7.1.3" - uint8arrays "^3.1.0" - -"@walletconnect/window-getters@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@walletconnect/window-getters/-/window-getters-1.0.1.tgz#f36d1c72558a7f6b87ecc4451fc8bd44f63cbbdc" - integrity sha512-vHp+HqzGxORPAN8gY03qnbTMnhqIwjeRJNOMOAzePRg4xVEEE2WvYsI9G2NMjOknA8hnuYbU3/hwLcKbjhc8+Q== - dependencies: - tslib "1.14.1" - -"@walletconnect/window-metadata@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@walletconnect/window-metadata/-/window-metadata-1.0.1.tgz#2124f75447b7e989e4e4e1581d55d25bc75f7be5" - integrity sha512-9koTqyGrM2cqFRW517BPY/iEtUDx2r1+Pwwu5m7sJ7ka79wi3EyqhqcICk/yDmv6jAS1rjKgTKXlEhanYjijcA== - dependencies: - "@walletconnect/window-getters" "^1.0.1" - tslib "1.14.1" - -"@whatwg-node/events@^0.0.3": - version "0.0.3" - resolved "https://registry.yarnpkg.com/@whatwg-node/events/-/events-0.0.3.tgz#13a65dd4f5893f55280f766e29ae48074927acad" - integrity sha512-IqnKIDWfXBJkvy/k6tzskWTc2NK3LcqHlb+KHGCrjOCH4jfQckRX0NAiIcC/vIqQkzLYw2r2CTSwAxcrtcD6lA== - -"@whatwg-node/fetch@^0.8.0", "@whatwg-node/fetch@^0.8.1", "@whatwg-node/fetch@^0.8.2", "@whatwg-node/fetch@^0.8.4": - version "0.8.8" - resolved "https://registry.yarnpkg.com/@whatwg-node/fetch/-/fetch-0.8.8.tgz#48c6ad0c6b7951a73e812f09dd22d75e9fa18cae" - integrity sha512-CdcjGC2vdKhc13KKxgsc6/616BQ7ooDIgPeTuAiE8qfCnS0mGzcfCOoZXypQSz73nxI+GWc7ZReIAVhxoE1KCg== - dependencies: - "@peculiar/webcrypto" "^1.4.0" - "@whatwg-node/node-fetch" "^0.3.6" - busboy "^1.6.0" - urlpattern-polyfill "^8.0.0" - web-streams-polyfill "^3.2.1" - -"@whatwg-node/node-fetch@^0.3.6": - version "0.3.6" - resolved "https://registry.yarnpkg.com/@whatwg-node/node-fetch/-/node-fetch-0.3.6.tgz#e28816955f359916e2d830b68a64493124faa6d0" - integrity sha512-w9wKgDO4C95qnXZRwZTfCmLWqyRnooGjcIwG0wADWjw9/HN0p7dtvtgSvItZtUyNteEvgTrd8QojNEqV6DAGTA== - dependencies: - "@whatwg-node/events" "^0.0.3" - busboy "^1.6.0" - fast-querystring "^1.1.1" - fast-url-parser "^1.1.3" - tslib "^2.3.1" - -"@xhmikosr/archive-type@^6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/@xhmikosr/archive-type/-/archive-type-6.0.1.tgz#684e9e5369bfa93223d7aeb2c84fe0780d6d5e24" - integrity sha512-PB3NeJL8xARZt52yDBupK0dNPn8uIVQDe15qNehUpoeeLWCZyAOam4vGXnoZGz2N9D1VXtjievJuCsXam2TmbQ== - dependencies: - file-type "^18.5.0" - -"@xhmikosr/decompress-tar@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@xhmikosr/decompress-tar/-/decompress-tar-7.0.0.tgz#ae1ecc723bde8547ff65540018765875712d400b" - integrity sha512-kyWf2hybtQVbWtB+FdRyOT+jyR5jxCNZPLqvQGB7djZj75lrpLUPEmRbyo86AtJ5OEtivpYaNWjCkqSJ8xtRWw== - dependencies: - file-type "^18.5.0" - is-stream "^3.0.0" - tar-stream "^3.1.4" - -"@xhmikosr/decompress-tarbz2@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@xhmikosr/decompress-tarbz2/-/decompress-tarbz2-7.0.0.tgz#eea242c59e7d52f9bccc91e1a51d4b34ed048792" - integrity sha512-3QnjipYkRgh3Dee1MWDgKmANWxOQBVN4e1IwiGNe2fHYfMYTeSkVvWREt87UIoSucKUh3E95v8uGFttgTknZcA== - dependencies: - "@xhmikosr/decompress-tar" "^7.0.0" - file-type "^18.5.0" - is-stream "^3.0.0" - seek-bzip "^1.0.6" - unbzip2-stream "^1.4.3" - -"@xhmikosr/decompress-targz@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@xhmikosr/decompress-targz/-/decompress-targz-7.0.0.tgz#b80c913056903b162088b85619f632914f514f74" - integrity sha512-7BNHJl92g9OLhw89zqcFS67V1LAtm4Ex02j6OiQzuE8P7Yy9lQcyBuEL3x6v436grLdL+BcFjgbmhWxnem4GHw== - dependencies: - "@xhmikosr/decompress-tar" "^7.0.0" - file-type "^18.5.0" - is-stream "^3.0.0" - -"@xhmikosr/decompress-unzip@^6.0.0": - version "6.0.0" - resolved "https://registry.yarnpkg.com/@xhmikosr/decompress-unzip/-/decompress-unzip-6.0.0.tgz#d617956a1e762c5396cef8340973dd60ba24c9dd" - integrity sha512-R1HAkjXLS7RAL74YFLxYY9zYflCcYGssld9KKFDu87PnJ4h4btdhzXfSC8J5i5A2njH3oYIoCzx03RIGTH07Sg== - dependencies: - file-type "^18.5.0" - get-stream "^6.0.1" - yauzl "^2.10.0" - -"@xhmikosr/decompress@^9.0.1": - version "9.0.1" - resolved "https://registry.yarnpkg.com/@xhmikosr/decompress/-/decompress-9.0.1.tgz#e35977739da39bc664e0b49015b402a7cf9b1d91" - integrity sha512-9Lvlt6Qdpo9SaRQyRIXCo3lgU++eMZ68lzgjcTwtuKDrlwT635+5zsHZ1yrSx/Blc5IDuVLlPkBPj5CZkx+2+Q== - dependencies: - "@xhmikosr/decompress-tar" "^7.0.0" - "@xhmikosr/decompress-tarbz2" "^7.0.0" - "@xhmikosr/decompress-targz" "^7.0.0" - "@xhmikosr/decompress-unzip" "^6.0.0" - graceful-fs "^4.2.11" - make-dir "^4.0.0" - strip-dirs "^3.0.0" - -"@xhmikosr/downloader@^13.0.0": - version "13.0.1" - resolved "https://registry.yarnpkg.com/@xhmikosr/downloader/-/downloader-13.0.1.tgz#8478b36606d2108eb86bff419e1df36d84cc262d" - integrity sha512-mBvWew1kZJHfNQVVfVllMjUDwCGN9apPa0t4/z1zaUJ9MzpXjRL3w8fsfJKB8gHN/h4rik9HneKfDbh2fErN+w== - dependencies: - "@xhmikosr/archive-type" "^6.0.1" - "@xhmikosr/decompress" "^9.0.1" - content-disposition "^0.5.4" - ext-name "^5.0.0" - file-type "^18.5.0" - filenamify "^5.1.1" - get-stream "^6.0.1" - got "^12.6.1" - merge-options "^3.0.4" - p-event "^5.0.1" - -"@yarnpkg/lockfile@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" - integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== - -JSONStream@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.2.tgz#c102371b6ec3a7cf3b847ca00c20bb0fce4c6dea" - integrity sha512-mn0KSip7N4e0UDPZHnqDsHECo5uGQrixQKnAskOM1BIB8hd7QKbd6il8IPRPudPHOeHiECoCFqhyMaRO9+nWyA== - dependencies: - jsonparse "^1.2.0" - through ">=2.2.7 <3" - -JSONStream@^1.3.5: - version "1.3.5" - resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" - integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== - dependencies: - jsonparse "^1.2.0" - through ">=2.2.7 <3" - -abab@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" - integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== - -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== - -abort-controller@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" - integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== - dependencies: - event-target-shim "^5.0.0" - -abortcontroller-polyfill@^1.7.5: - version "1.7.5" - 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.yarnpkg.com/abstract-level/-/abstract-level-1.0.3.tgz#78a67d3d84da55ee15201486ab44c09560070741" - 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" - -abstract-leveldown@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-3.0.0.tgz#5cb89f958a44f526779d740d1440e743e0c30a57" - integrity sha512-KUWx9UWGQD12zsmLNj64/pndaz4iJh/Pj7nopgkfDG6RlCcbMZvT6+9l7dchK4idog2Is8VdC/PvNbFuFmalIQ== - dependencies: - xtend "~4.0.0" - -abstract-leveldown@^2.4.1, abstract-leveldown@~2.7.1: - version "2.7.2" - resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz#87a44d7ebebc341d59665204834c8b7e0932cc93" - integrity sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w== - dependencies: - xtend "~4.0.0" - -abstract-leveldown@^5.0.0, abstract-leveldown@~5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-5.0.0.tgz#f7128e1f86ccabf7d2893077ce5d06d798e386c6" - integrity sha512-5mU5P1gXtsMIXg65/rsYGsi93+MlogXZ9FA8JnwKurHQg64bfXwGYVdVdijNTVNOlAsuIiOwHdvFFD5JqCJQ7A== - dependencies: - xtend "~4.0.0" - -abstract-leveldown@^6.2.1: - version "6.3.0" - resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-6.3.0.tgz#d25221d1e6612f820c35963ba4bd739928f6026a" - integrity sha512-TU5nlYgta8YrBMNpc9FwQzRbiXsj49gsALsXadbGHt9CROPzX5fB0rWDR5mtdpOOKa5XqRFpbj1QroPAoPzVjQ== - dependencies: - buffer "^5.5.0" - immediate "^3.2.3" - level-concat-iterator "~2.0.0" - level-supports "~1.0.0" - xtend "~4.0.0" - -abstract-leveldown@~2.6.0: - version "2.6.3" - resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz#1c5e8c6a5ef965ae8c35dfb3a8770c476b82c4b8" - integrity sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA== - dependencies: - xtend "~4.0.0" - -abstract-leveldown@~6.0.1: - version "6.0.3" - resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-6.0.3.tgz#b4b6159343c74b0c5197b2817854782d8f748c4a" - integrity sha512-jzewKKpZbaYUa6HTThnrl+GrJhzjEAeuc7hTVpZdzg7kupXZFoqQDFwyOwLNbmJKJlmzw8yiipMPkDiuKkT06Q== - dependencies: - level-concat-iterator "~2.0.0" - 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" - integrity sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ== - dependencies: - buffer "^5.5.0" - immediate "^3.2.3" - level-concat-iterator "~2.0.0" - level-supports "~1.0.0" - xtend "~4.0.0" - -abstract-logging@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/abstract-logging/-/abstract-logging-2.0.1.tgz#6b0c371df212db7129b57d2e7fcf282b8bf1c839" - integrity sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA== - -accepts@~1.3.8: - version "1.3.8" - 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" - negotiator "0.6.3" - -acorn-globals@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-7.0.1.tgz#0dbf05c44fa7c94332914c02066d5beff62c40c3" - integrity sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q== - dependencies: - acorn "^8.1.0" - acorn-walk "^8.0.2" - -acorn-jsx@^5.2.0, acorn-jsx@^5.3.2: - version "5.3.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" - integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== - -acorn-walk@^8.0.2, acorn-walk@^8.1.1, acorn-walk@^8.2.0: - version "8.3.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.0.tgz#2097665af50fd0cf7a2dfccd2b9368964e66540f" - integrity sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA== - -acorn@^7.1.1, acorn@^7.4.1: - version "7.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" - integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== - -acorn@^8.1.0, acorn@^8.10.0, acorn@^8.11.2, acorn@^8.4.1, acorn@^8.6.0, acorn@^8.8.1, acorn@^8.9.0: - version "8.11.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.2.tgz#ca0d78b51895be5390a5903c5b3bdcdaf78ae40b" - integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w== - -adm-zip@^0.4.16: - version "0.4.16" - 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.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d" - integrity sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw== - -aes-js@^3.1.1: - version "3.1.2" - resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.1.2.tgz#db9aabde85d5caabbfc0d4f2a4446960f627146a" - integrity sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ== - -agent-base@6: - version "6.0.2" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" - integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== - dependencies: - debug "4" - -agent-base@^7.0.2, agent-base@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.0.tgz#536802b76bc0b34aa50195eb2442276d613e3434" - integrity sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg== - dependencies: - debug "^4.3.4" - -aggregate-error@^3.0.0: - version "3.1.0" - 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" - indent-string "^4.0.0" - -aggregate-error@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-4.0.1.tgz#25091fe1573b9e0be892aeda15c7c66a545f758e" - integrity sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w== - dependencies: - clean-stack "^4.0.0" - indent-string "^5.0.0" - -ajv-errors@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-3.0.0.tgz#e54f299f3a3d30fe144161e5f0d8d51196c527bc" - integrity sha512-V3wD15YHfHz6y0KdhYFjyy9vWtEVALT9UrxfN3zqlI6dMioHnJrqOYfyPKol3oqrnCM9uwkcdCwkJ0WUcbLMTQ== - -ajv-formats@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" - integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== - dependencies: - ajv "^8.0.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" - 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" - -ajv@^8.0.0, ajv@^8.0.1, ajv@^8.10.0, ajv@^8.11.0, ajv@^8.11.2, ajv@^8.12.0: - version "8.12.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" - integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== - dependencies: - fast-deep-equal "^3.1.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - uri-js "^4.2.2" - -all-node-versions@^11.3.0: - version "11.3.0" - resolved "https://registry.yarnpkg.com/all-node-versions/-/all-node-versions-11.3.0.tgz#ace1c8c9598bb900ba296450ccf0281aabaff7a4" - integrity sha512-psMkc5s3qpr+QMfires9bC4azRYciPWql1wqZKMsYRh1731qefQDH2X4+O19xSBX6u0Ra/8Y5diG6y/fEmqKsw== - dependencies: - fetch-node-website "^7.3.0" - filter-obj "^5.1.0" - get-stream "^6.0.0" - global-cache-dir "^4.3.1" - is-plain-obj "^4.1.0" - path-exists "^5.0.0" - semver "^7.3.7" - write-file-atomic "^4.0.1" - -ansi-align@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.1.tgz#0cdf12e111ace773a86e9a1fad1225c43cb19a59" - integrity sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w== - dependencies: - string-width "^4.1.0" - -ansi-color@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/ansi-color/-/ansi-color-0.2.1.tgz#3e75c037475217544ed763a8db5709fa9ae5bf9a" - integrity sha512-bF6xLaZBLpOQzgYUtYEhJx090nPSZk1BQ/q2oyBK9aMMcJHzx9uXGCjI2Y+LebsN4Jwoykr0V9whbPiogdyHoQ== - -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.1: - version "3.2.4" - 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.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" - integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== - -ansi-escapes@6.2.0, ansi-escapes@^6.0.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-6.2.0.tgz#8a13ce75286f417f1963487d86ba9f90dccf9947" - integrity sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw== - dependencies: - type-fest "^3.0.0" - -ansi-escapes@^3.0.0, ansi-escapes@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" - integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== - -ansi-escapes@^4.2.1, ansi-escapes@^4.3.0, ansi-escapes@^4.3.1, ansi-escapes@^4.3.2: - version "4.3.2" - 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-escapes@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-5.0.0.tgz#b6a0caf0eef0c41af190e9a749e0c00ec04bb2a6" - integrity sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA== - dependencies: - type-fest "^1.0.2" - -ansi-regex@^2.0.0: - version "2.1.1" - 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.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.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed" - 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" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-regex@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" - integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== - -ansi-styles@6.2.1, ansi-styles@^6.0.0, ansi-styles@^6.1.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" - integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== - -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - integrity sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA== - -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" - 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.3.0: - version "4.3.0" - 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@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" - integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== - -ansi-to-html@0.7.2: - version "0.7.2" - resolved "https://registry.yarnpkg.com/ansi-to-html/-/ansi-to-html-0.7.2.tgz#a92c149e4184b571eb29a0135ca001a8e2d710cb" - integrity sha512-v6MqmEpNlxF+POuyhKkidusCHWWkaLcGRURzivcU3I9tv7k4JVhFcnukrM5Rlk2rUywdZuzYAZ+kbZqWCnfN3g== - dependencies: - entities "^2.2.0" - -ansicolors@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.3.2.tgz#665597de86a9ffe3aa9bfbe6cae5c6ea426b4979" - integrity sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg== - -antlr4@^4.11.0: - version "4.13.1" - 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.yarnpkg.com/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz#71702865a87478ed0b40c0709f422cf14d51652a" - integrity sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ== - -any-observable@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b" - integrity sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog== - -any-promise@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" - integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== - -any-signal@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/any-signal/-/any-signal-2.1.2.tgz#8d48270de0605f8b218cf9abe8e9c6a0e7418102" - integrity sha512-B+rDnWasMi/eWcajPcCWSlYc7muXOrcYrqgyzcdKisl2H/WTlQ0gip1KyQfr0ZlxJdsuWCj/LWwQm7fhyhRfIQ== - dependencies: - abort-controller "^3.0.0" - native-abort-controller "^1.0.3" - -any-signal@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/any-signal/-/any-signal-3.0.1.tgz#49cae34368187a3472e31de28fb5cb1430caa9a6" - integrity sha512-xgZgJtKEa9YmDqXodIgl7Fl1C8yNXr8w6gXjqK3LW4GcEiYT+6AQfJSE/8SPsEpLLmcvbv8YU+qet94UewHxqg== - -anymatch@^3.1.3, anymatch@~3.1.1, anymatch@~3.1.2: - version "3.1.3" - 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" - picomatch "^2.0.4" - -apisauce@^1.0.1: - version "1.1.5" - resolved "https://registry.yarnpkg.com/apisauce/-/apisauce-1.1.5.tgz#31d41a5cf805e401266cec67faf1a50f4aeae234" - integrity sha512-gKC8qb/bDJsPsnEXLZnXJ7gVx7dh87CEVNeIwv1dvaffnXoh5GHwac5pWR1P2broLiVj/fqFMQvLDDt/RhjiqA== - dependencies: - axios "^0.21.2" - ramda "^0.25.0" - -app-module-path@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/app-module-path/-/app-module-path-2.2.0.tgz#641aa55dfb7d6a6f0a8141c4b9c0aa50b6c24dd5" - integrity sha512-gkco+qxENJV+8vFcDiiFhuoSvRXb2a/QPqpSoWhVz829VNJfOTnELbBmPmNKFxf3xdNnw4DWCkzkDaavcX/1YQ== - -"aproba@^1.0.3 || ^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" - integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== - -arch@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/arch/-/arch-2.2.0.tgz#1bc47818f305764f23ab3306b0bfc086c5a29d11" - integrity sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ== - -archiver-utils@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-4.0.1.tgz#66ad15256e69589a77f706c90c6dbcc1b2775d2a" - integrity sha512-Q4Q99idbvzmgCTEAAhi32BkOyq8iVI5EwdO0PmBDSGIzzjYNdcFn7Q7k3OzbLy4kLUPXfJtG6fO2RjftXbobBg== - dependencies: - glob "^8.0.0" - graceful-fs "^4.2.0" - lazystream "^1.0.0" - lodash "^4.17.15" - normalize-path "^3.0.0" - readable-stream "^3.6.0" - -archiver@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/archiver/-/archiver-6.0.1.tgz#d56968d4c09df309435adb5a1bbfc370dae48133" - integrity sha512-CXGy4poOLBKptiZH//VlWdFuUC1RESbdZjGjILwBuZ73P7WkAUN0htfSfBq/7k6FRFlpu7bg4JOkj1vU9G6jcQ== - dependencies: - archiver-utils "^4.0.1" - async "^3.2.4" - buffer-crc32 "^0.2.1" - readable-stream "^3.6.0" - readdir-glob "^1.1.2" - tar-stream "^3.0.0" - zip-stream "^5.0.1" - -archy@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" - integrity sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw== - -are-we-there-yet@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz#372e0e7bd279d8e94c653aaa1f67200884bf3e1c" - integrity sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw== - dependencies: - delegates "^1.0.0" - readable-stream "^3.6.0" - -arg@^4.1.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" - integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== - -arg@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c" - integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== - -argparse@2.0.1, argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -argparse@^1.0.10, argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - integrity sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA== - -arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - integrity sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q== - -array-back@^1.0.3, array-back@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/array-back/-/array-back-1.0.4.tgz#644ba7f095f7ffcf7c43b5f0dc39d3c1f03c063b" - integrity sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw== - dependencies: - typical "^2.6.0" - -array-back@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/array-back/-/array-back-2.0.0.tgz#6877471d51ecc9c9bfa6136fb6c7d5fe69748022" - integrity sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw== - dependencies: - typical "^2.6.1" - -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" - integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== - dependencies: - call-bind "^1.0.2" - is-array-buffer "^3.0.1" - -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== - -array-timsort@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array-timsort/-/array-timsort-1.0.3.tgz#3c9e4199e54fb2b9c3fe5976396a21614ef0d926" - integrity sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ== - -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ== - -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" - 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.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" - 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" - -arrify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== - -arrify@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" - integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== - -arrify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-3.0.0.tgz#ccdefb8eaf2a1d2ab0da1ca2ce53118759fd46bc" - integrity sha512-tLkvA81vQG/XqE2mjDkGQHoOINtMHtysSnemrmoGe6PydDPMRbVugqyk4A6V/WDWEfm3l+0d8anA9r8cv/5Jaw== - -asap@~2.0.3, asap@~2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" - integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== - -ascii-table@0.0.9: - version "0.0.9" - resolved "https://registry.yarnpkg.com/ascii-table/-/ascii-table-0.0.9.tgz#06a6604d6a55d4bf41a9a47d9872d7a78da31e73" - integrity sha512-xpkr6sCDIYTPqzvjG8M3ncw1YOTaloWZOyrUmicoEifBEKzQzt+ooUpRpQ/AbOoJfO/p2ZKiyp79qHThzJDulQ== - -asn1.js@^5.2.0: - version "5.4.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" - integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== - 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.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" - integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== - dependencies: - safer-buffer "~2.1.0" - -asn1js@^3.0.1, asn1js@^3.0.5: - version "3.0.5" - resolved "https://registry.yarnpkg.com/asn1js/-/asn1js-3.0.5.tgz#5ea36820443dbefb51cc7f88a2ebb5b462114f38" - integrity sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ== - dependencies: - pvtsutils "^1.3.2" - pvutils "^1.1.3" - tslib "^2.4.0" - -assemblyscript@0.19.10: - version "0.19.10" - resolved "https://registry.yarnpkg.com/assemblyscript/-/assemblyscript-0.19.10.tgz#7ede6d99c797a219beb4fa4614c3eab9e6343c8e" - integrity sha512-HavcUBXB3mBTRGJcpvaQjmnmaqKHBGREjSPNsIvnAk2f9dj78y4BkMaSSdvBQYWcDDzsHQjyUC8stICFkD1Odg== - dependencies: - binaryen "101.0.0-nightly.20210723" - long "^4.0.0" - -assemblyscript@0.19.23: - version "0.19.23" - resolved "https://registry.yarnpkg.com/assemblyscript/-/assemblyscript-0.19.23.tgz#16ece69f7f302161e2e736a0f6a474e6db72134c" - integrity sha512-fwOQNZVTMga5KRsfY80g7cpOl4PsFQczMwHzdtgoqLXaYhkhavufKb0sB0l3T1DUxpAufA0KNhlbpuuhZUwxMA== - dependencies: - binaryen "102.0.0-nightly.20211028" - long "^5.2.0" - source-map-support "^0.5.20" - -"assemblyscript@github:assemblyscript/assemblyscript#v0.6": - version "0.6.0" - resolved "https://codeload.github.com/assemblyscript/assemblyscript/tar.gz/3ed76a97f05335504166fce1653da75f4face28f" - dependencies: - "@protobufjs/utf8" "^1.1.0" - binaryen "77.0.0-nightly.20190407" - glob "^7.1.3" - long "^4.0.0" - opencollective-postinstall "^2.0.0" - source-map-support "^0.5.11" - -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" - integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== - -assert@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/assert/-/assert-2.1.0.tgz#6d92a238d05dc02e7427c881fb8be81c8448b2dd" - integrity sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw== - dependencies: - call-bind "^1.0.2" - is-nan "^1.3.2" - object-is "^1.1.5" - object.assign "^4.1.4" - util "^0.12.5" - -assertion-error@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" - integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw== - -ast-module-types@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ast-module-types/-/ast-module-types-5.0.0.tgz#32b2b05c56067ff38e95df66f11d6afd6c9ba16b" - integrity sha512-JvqziE0Wc0rXQfma0HZC/aY7URXHFuZV84fJRtP8u+lhp0JYCNd5wJzVXP45t0PH0Mej3ynlzvdyITYIu0G4LQ== - -ast-parents@^0.0.1: - version "0.0.1" - 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.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" - integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== - -async-eventemitter@^0.2.2: - version "0.2.4" - 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.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== - -async-sema@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/async-sema/-/async-sema-3.1.1.tgz#e527c08758a0f8f6f9f15f799a173ff3c40ea808" - integrity sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg== - -async@2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.2.tgz#18330ea7e6e313887f5d2f2a904bac6fe4dd5381" - integrity sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg== - dependencies: - lodash "^4.17.11" - -async@3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.3.tgz#ac53dafd3f4720ee9e8a160628f18ea91df196c9" - integrity sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g== - -async@^1.4.2, async@~1.5: - version "1.5.2" - 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.6.1, async@^2.6.4: - version "2.6.4" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" - integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== - dependencies: - lodash "^4.17.14" - -async@^3.2.3, async@^3.2.4: - version "3.2.5" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.5.tgz#ebd52a8fdaf7a2289a24df399f8d8485c8a46b66" - integrity sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg== - -asynckit@^0.4.0: - version "0.4.0" - 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.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" - integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== - -atob@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== - -atomic-sleep@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/atomic-sleep/-/atomic-sleep-1.0.0.tgz#eb85b77a601fc932cfe432c5acd364a9e2c9075b" - integrity sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ== - -auto-bind@~4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/auto-bind/-/auto-bind-4.0.0.tgz#e3589fc6c2da8f7ca43ba9f84fa52a744fc997fb" - integrity sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ== - -autoprefixer@^10.4.13: - version "10.4.16" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.16.tgz#fad1411024d8670880bdece3970aa72e3572feb8" - integrity sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ== - dependencies: - browserslist "^4.21.10" - caniuse-lite "^1.0.30001538" - fraction.js "^4.3.6" - normalize-range "^0.1.2" - picocolors "^1.0.0" - postcss-value-parser "^4.2.0" - -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" - integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== - -avvio@^8.2.0: - version "8.2.1" - resolved "https://registry.yarnpkg.com/avvio/-/avvio-8.2.1.tgz#b5a482729847abb84d5aadce06511c04a0a62f82" - integrity sha512-TAlMYvOuwGyLK3PfBb5WKBXZmXz2fVCgv23d6zZFdle/q3gPjmxBaeuC0pY0Dzs5PWMSgfqqEZkrye19GlDTgw== - dependencies: - archy "^1.0.0" - debug "^4.0.0" - fastq "^1.6.1" - -aws-sign2@~0.7.0: - version "0.7.0" - 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.yarnpkg.com/aws4/-/aws4-1.12.0.tgz#ce1c9d143389679e253b314241ea9aa5cec980d3" - integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg== - -axios@^0.21.1, axios@^0.21.2, axios@^0.21.4: - version "0.21.4" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575" - integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg== - dependencies: - follow-redirects "^1.14.0" - -axios@^1.1.3: - version "1.6.2" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.2.tgz#de67d42c755b571d3e698df1b6504cde9b0ee9f2" - integrity sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A== - dependencies: - follow-redirects "^1.15.0" - form-data "^4.0.0" - proxy-from-env "^1.1.0" - -b4a@^1.0.1, b4a@^1.6.4: - version "1.6.4" - resolved "https://registry.yarnpkg.com/b4a/-/b4a-1.6.4.tgz#ef1c1422cae5ce6535ec191baeed7567443f36c9" - integrity sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw== - -babel-code-frame@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" - 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.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" - 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.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" - 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.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" - 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.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" - 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.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" - 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.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" - 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.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" - 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.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" - 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.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" - 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.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" - 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.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" - 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.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" - 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.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" - 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.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" - 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.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" - 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.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" - integrity sha512-B1M5KBP29248dViEo1owyY32lk1ZSH2DaNNrXLGt8lyjjHm7pBqAdQ7VKUPR6EEDO323+OvT3MQXbCin8ooWdA== - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-syntax-async-functions@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" - integrity sha512-4Zp4unmHgw30A1eWI5EpACji2qMocisdXhAftfhXoSV9j0Tvj6nRFE3tOmRY912E0FMRm/L5xWE7MGVT2FoLnw== - -babel-plugin-syntax-exponentiation-operator@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" - integrity sha512-Z/flU+T9ta0aIEKl1tGEmN/pZiI1uXmCiGFRegKacQfEJzp7iNsKloZmyJlQr+75FCJtiFfGIK03SiCvCt9cPQ== - -babel-plugin-syntax-trailing-function-commas@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" - integrity sha512-Gx9CH3Q/3GKbhs07Bszw5fPTlU+ygrOGfAhEt7W2JICwufpC4SuO0mG0+4NykPBSYPMJhqvVlDBU17qB1D+hMQ== - -babel-plugin-syntax-trailing-function-commas@^7.0.0-beta.0: - version "7.0.0-beta.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz#aa213c1435e2bffeb6fca842287ef534ad05d5cf" - integrity sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ== - -babel-plugin-transform-async-to-generator@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" - 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.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" - 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.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" - 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.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" - 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.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" - 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.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" - 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.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" - 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.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" - 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.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" - 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.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" - 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.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" - 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.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" - 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.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3" - 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.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" - 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.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" - 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.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" - 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.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" - 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.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" - 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.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" - 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.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" - 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.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" - 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.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" - 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.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" - 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.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" - 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.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" - 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.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" - 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.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.7.0.tgz#dea79fa4ebeb883cd35dab07e260c1c9c04df77a" - 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-preset-fbjs@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz#38a14e5a7a3b285a3f3a86552d650dca5cf6111c" - integrity sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow== - dependencies: - "@babel/plugin-proposal-class-properties" "^7.0.0" - "@babel/plugin-proposal-object-rest-spread" "^7.0.0" - "@babel/plugin-syntax-class-properties" "^7.0.0" - "@babel/plugin-syntax-flow" "^7.0.0" - "@babel/plugin-syntax-jsx" "^7.0.0" - "@babel/plugin-syntax-object-rest-spread" "^7.0.0" - "@babel/plugin-transform-arrow-functions" "^7.0.0" - "@babel/plugin-transform-block-scoped-functions" "^7.0.0" - "@babel/plugin-transform-block-scoping" "^7.0.0" - "@babel/plugin-transform-classes" "^7.0.0" - "@babel/plugin-transform-computed-properties" "^7.0.0" - "@babel/plugin-transform-destructuring" "^7.0.0" - "@babel/plugin-transform-flow-strip-types" "^7.0.0" - "@babel/plugin-transform-for-of" "^7.0.0" - "@babel/plugin-transform-function-name" "^7.0.0" - "@babel/plugin-transform-literals" "^7.0.0" - "@babel/plugin-transform-member-expression-literals" "^7.0.0" - "@babel/plugin-transform-modules-commonjs" "^7.0.0" - "@babel/plugin-transform-object-super" "^7.0.0" - "@babel/plugin-transform-parameters" "^7.0.0" - "@babel/plugin-transform-property-literals" "^7.0.0" - "@babel/plugin-transform-react-display-name" "^7.0.0" - "@babel/plugin-transform-react-jsx" "^7.0.0" - "@babel/plugin-transform-shorthand-properties" "^7.0.0" - "@babel/plugin-transform-spread" "^7.0.0" - "@babel/plugin-transform-template-literals" "^7.0.0" - babel-plugin-syntax-trailing-function-commas "^7.0.0-beta.0" - -babel-register@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" - 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.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" - 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.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" - 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.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" - 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.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" - 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.yarnpkg.com/babelify/-/babelify-7.3.0.tgz#aa56aede7067fd7bd549666ee16dc285087e88e5" - 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.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" - integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== - -backoff@2.5.0, backoff@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/backoff/-/backoff-2.5.0.tgz#f616eda9d3e4b66b8ca7fca79f695722c5f8e26f" - 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" - 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" - integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== - dependencies: - safe-buffer "^5.0.1" - -base32.js@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/base32.js/-/base32.js-0.1.0.tgz#b582dec693c2f11e893cf064ee6ac5b6131a2202" - integrity sha512-n3TkB02ixgBOhTvANakDb4xaMXnYUVkNoRFJjQflcqMQhyEKxEHdj3E6N8t8sUQ0mjH/3/JxzlXuz3ul/J90pQ== - -base64-js@^1.3.0, base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -base64url@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/base64url/-/base64url-3.0.1.tgz#6399d572e2bc3f90a9a8b22d5dbb0a32d33f788d" - integrity sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A== - -base@^0.11.1: - version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== - 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" - -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - 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.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9" - integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ== - -before-after-hook@^2.2.0: - version "2.2.3" - resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.3.tgz#c51e809c81a4e354084422b9b26bad88249c517c" - integrity sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ== - -better-ajv-errors@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/better-ajv-errors/-/better-ajv-errors-1.2.0.tgz#6412d58fa4d460ff6ccbd9e65c5fef9781cc5286" - integrity sha512-UW+IsFycygIo7bclP9h5ugkNH8EjCSgqyFB/yQ4Hqqa1OEYDtb0uFIkYE0b6+CjkgJYVM5UKI/pJPxjYe9EZlA== - dependencies: - "@babel/code-frame" "^7.16.0" - "@humanwhocodes/momoa" "^2.0.2" - chalk "^4.1.2" - jsonpointer "^5.0.0" - leven "^3.1.0 < 4" - -better-opn@3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/better-opn/-/better-opn-3.0.2.tgz#f96f35deaaf8f34144a4102651babcf00d1d8817" - integrity sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ== - dependencies: - open "^8.0.4" - -bfj@^7.0.2: - version "7.1.0" - resolved "https://registry.yarnpkg.com/bfj/-/bfj-7.1.0.tgz#c5177d522103f9040e1b12980fe8c38cf41d3f8b" - integrity sha512-I6MMLkn+anzNdCUp9hMRyui1HaNEUCco50lxbvNS4+EyXg8lN3nJ48PjPWtbH8UVS9CuMoaKE9U2V3l29DaRQw== - dependencies: - bluebird "^3.7.2" - check-types "^11.2.3" - hoopy "^0.1.4" - jsonpath "^1.1.1" - tryer "^1.0.1" - -big-integer@^1.6.42, big-integer@^1.6.48: - version "1.6.52" - resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.52.tgz#60a887f3047614a8e1bffe5d7173490a97dc8c85" - integrity sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg== - -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" - integrity sha512-jOTSb+drvEDxEq6OuUybOAv/xxoh3cuYRUIPyu8sSHQNKM303UQ2R1DAo45o1AkcIXw6fzbaFI1+xGGdaXs2lg== - -bignumber.js@^9.0.0: - version "9.1.2" - resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.2.tgz#b7c4242259c008903b13707983b5f4bbd31eda0c" - 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" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== - -binary-install-raw@0.0.13: - version "0.0.13" - resolved "https://registry.yarnpkg.com/binary-install-raw/-/binary-install-raw-0.0.13.tgz#43a13c6980eb9844e2932eb7a91a56254f55b7dd" - integrity sha512-v7ms6N/H7iciuk6QInon3/n2mu7oRX+6knJ9xFPsJ3rQePgAqcR3CRTwUheFd8SLbiq4LL7Z4G/44L9zscdt9A== - dependencies: - axios "^0.21.1" - rimraf "^3.0.2" - tar "^6.1.0" - -binaryen@101.0.0-nightly.20210723: - version "101.0.0-nightly.20210723" - resolved "https://registry.yarnpkg.com/binaryen/-/binaryen-101.0.0-nightly.20210723.tgz#b6bb7f3501341727681a03866c0856500eec3740" - integrity sha512-eioJNqhHlkguVSbblHOtLqlhtC882SOEPKmNFZaDuz1hzQjolxZ+eu3/kaS10n3sGPONsIZsO7R9fR00UyhEUA== - -binaryen@102.0.0-nightly.20211028: - version "102.0.0-nightly.20211028" - resolved "https://registry.yarnpkg.com/binaryen/-/binaryen-102.0.0-nightly.20211028.tgz#8f1efb0920afd34509e342e37f84313ec936afb2" - integrity sha512-GCJBVB5exbxzzvyt8MGDv/MeUjs6gkXDvf4xOIItRBptYl0Tz5sm1o/uG95YK0L0VeG5ajDu3hRtkBP2kzqC5w== - -binaryen@77.0.0-nightly.20190407: - version "77.0.0-nightly.20190407" - resolved "https://registry.yarnpkg.com/binaryen/-/binaryen-77.0.0-nightly.20190407.tgz#fbe4f8ba0d6bd0809a84eb519d2d5b5ddff3a7d1" - integrity sha512-1mxYNvQ0xywMe582K7V6Vo2zzhZZxMTeGHH8aE/+/AND8f64D8Q1GThVY3RVRwGY/4p+p95ccw9Xbw2ovFXRIg== - -bindings@^1.2.1, bindings@^1.4.0, bindings@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" - integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== - dependencies: - file-uri-to-path "1.0.0" - -bip39@2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/bip39/-/bip39-2.5.0.tgz#51cbd5179460504a63ea3c000db3f787ca051235" - 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" - -bl@^1.0.0: - version "1.2.3" - resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.3.tgz#1e8dd80142eac80d7158c9dccc047fb620e035e7" - integrity sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww== - dependencies: - readable-stream "^2.3.5" - safe-buffer "^5.1.1" - -bl@^4.0.0, bl@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" - integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== - dependencies: - buffer "^5.5.0" - inherits "^2.0.4" - readable-stream "^3.4.0" - -bl@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/bl/-/bl-5.1.0.tgz#183715f678c7188ecef9fe475d90209400624273" - integrity sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ== - dependencies: - buffer "^6.0.3" - inherits "^2.0.4" - readable-stream "^3.4.0" - -blake-hash@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/blake-hash/-/blake-hash-1.1.1.tgz#b6251600d7812dd5097f96cb341ceae245bf9d12" - integrity sha512-V93H+FEJuXXZi1eEsMtbcBFP9oL5Ept7SLw3cbXYlPC3nocm9Fr4m18ZhbhdJrZVS9J/Z0oNE4L3oDZvmorHNA== - dependencies: - bindings "^1.2.1" - inherits "^2.0.3" - nan "^2.2.1" - -blake-hash@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/blake-hash/-/blake-hash-2.0.0.tgz#af184dce641951126d05b7d1c3de3224f538d66e" - integrity sha512-Igj8YowDu1PRkRsxZA7NVkdFNxH5rKv5cpLxQ0CVXSIA77pVYwCPRQJ2sMew/oneUpfuYRyjG6r8SmmmnbZb1w== - dependencies: - node-addon-api "^3.0.0" - node-gyp-build "^4.2.2" - readable-stream "^3.6.0" - -blake2b-wasm@^2.3.0, blake2b-wasm@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/blake2b-wasm/-/blake2b-wasm-2.4.0.tgz#9115649111edbbd87eb24ce7c04b427e4e2be5be" - integrity sha512-S1kwmW2ZhZFFFOghcx73+ZajEfKBqhP82JMssxtLVMxlaPea1p9uoLiUZ5WYyHn0KddwbLc+0vh4wR0KBNoT5w== - dependencies: - b4a "^1.0.1" - nanoassert "^2.0.0" - -blake2b@^2.1.3: - version "2.1.4" - resolved "https://registry.yarnpkg.com/blake2b/-/blake2b-2.1.4.tgz#817d278526ddb4cd673bfb1af16d1ad61e393ba3" - integrity sha512-AyBuuJNI64gIvwx13qiICz6H6hpmjvYS5DGkG6jbXMOT8Z3WUJ3V1X0FlhIoT1b/5JtHE3ki+xjtMvu1nn+t9A== - dependencies: - blake2b-wasm "^2.4.0" - nanoassert "^2.0.0" - -blakejs@^1.1.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.2.1.tgz#5057e4206eadb4a97f7c0b6e197a505042fc3814" - integrity sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ== - -blob-to-it@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/blob-to-it/-/blob-to-it-1.0.4.tgz#f6caf7a4e90b7bb9215fa6a318ed6bd8ad9898cb" - integrity sha512-iCmk0W4NdbrWgRRuxOriU8aM5ijeVLI61Zulsmg/lUHNr7pYjoj+U77opLefNagevtrrbMt3JQ5Qip7ar178kA== - dependencies: - browser-readablestream-to-it "^1.0.3" - -bluebird@^3.5.0, bluebird@^3.5.2, bluebird@^3.7.2: - version "3.7.2" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" - integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== - -blueimp-md5@^2.10.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/blueimp-md5/-/blueimp-md5-2.19.0.tgz#b53feea5498dcb53dc6ec4b823adb84b729c4af0" - integrity sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w== - -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.1.0, bn.js@^4.10.0, bn.js@^4.11.0, bn.js@^4.11.6, bn.js@^4.11.8, bn.js@^4.11.9, bn.js@^4.8.0: - version "4.12.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" - integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== - -bn.js@^5.0.0, bn.js@^5.1.2, bn.js@^5.2.0, bn.js@^5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" - 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== - 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" - -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.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" - -boolbase@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== - -borc@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/borc/-/borc-2.1.2.tgz#6ce75e7da5ce711b963755117dd1b187f6f8cf19" - integrity sha512-Sy9eoUi4OiKzq7VovMn246iTo17kzuyHJKomCfpWMlI6RpfN1gk95w7d7gH264nApVLg0HZfcpz62/g4VH1Y4w== - dependencies: - bignumber.js "^9.0.0" - buffer "^5.5.0" - commander "^2.15.0" - ieee754 "^1.1.13" - iso-url "~0.4.7" - json-text-sequence "~0.1.0" - readable-stream "^3.6.0" - -boxen@7.1.1, boxen@^7.0.0: - version "7.1.1" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-7.1.1.tgz#f9ba525413c2fec9cdb88987d835c4f7cad9c8f4" - integrity sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog== - dependencies: - ansi-align "^3.0.1" - camelcase "^7.0.1" - chalk "^5.2.0" - cli-boxes "^3.0.0" - string-width "^5.1.2" - type-fest "^2.13.0" - widest-line "^4.0.1" - wrap-ansi "^8.1.0" - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -brace-expansion@^2.0.1: - version "2.0.1" - 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@^2.3.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== - 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.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.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.yarnpkg.com/browser-level/-/browser-level-1.0.1.tgz#36e8c3183d0fe1c405239792faaab5f315871011" - 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" - -browser-readablestream-to-it@^1.0.0, browser-readablestream-to-it@^1.0.1, browser-readablestream-to-it@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/browser-readablestream-to-it/-/browser-readablestream-to-it-1.0.3.tgz#ac3e406c7ee6cdf0a502dd55db33bab97f7fba76" - integrity sha512-+12sHB+Br8HIh6VAMVEG5r3UXCyESIgDW7kzk3BjIXa43DVqVwL7GC5TW3jeh+72dtcH99pPVpw0X8i0jt+/kw== - -browser-resolve@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-2.0.0.tgz#99b7304cb392f8d73dba741bb2d7da28c6d7842b" - integrity sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ== - dependencies: - resolve "^1.17.0" - -browser-stdout@1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" - integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== - -browserify-aes@^1.0.0, browserify-aes@^1.0.4, browserify-aes@^1.2.0: - version "1.2.0" - 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" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.3" - inherits "^2.0.1" - safe-buffer "^5.0.1" - -browserify-cipher@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" - integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== - 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" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" - integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== - 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.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" - integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== - dependencies: - bn.js "^5.0.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.2.2" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.2.tgz#e78d4b69816d6e3dd1c747e64e9947f9ad79bc7e" - integrity sha512-1rudGyeYY42Dk6texmv7c4VcQ0EsvVbLwZkA+AQB7SxvXxmcD93jcHie8bzecJ+ChDlmAm2Qyu0+Ccg5uhZXCg== - dependencies: - bn.js "^5.2.1" - browserify-rsa "^4.1.0" - create-hash "^1.2.0" - create-hmac "^1.1.7" - elliptic "^6.5.4" - inherits "^2.0.4" - parse-asn1 "^5.1.6" - readable-stream "^3.6.2" - safe-buffer "^5.2.1" - -browserify-zlib@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" - integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== - dependencies: - pako "~1.0.5" - -browserslist@^3.2.6: - version "3.2.8" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-3.2.8.tgz#b0005361d6471f0f5952797a76fc985f1f978fc6" - integrity sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ== - dependencies: - caniuse-lite "^1.0.30000844" - electron-to-chromium "^1.3.47" - -browserslist@^4.21.10, browserslist@^4.21.9: - version "4.22.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.1.tgz#ba91958d1a59b87dab6fed8dfbcb3da5e2e9c619" - integrity sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ== - dependencies: - caniuse-lite "^1.0.30001541" - electron-to-chromium "^1.4.535" - node-releases "^2.0.13" - update-browserslist-db "^1.0.13" - -bs58@^4.0.0: - version "4.0.1" - 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.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" - -bser@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" - integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== - dependencies: - node-int64 "^0.4.0" - -buffer-alloc-unsafe@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" - integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== - -buffer-alloc@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" - integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== - dependencies: - buffer-alloc-unsafe "^1.1.0" - buffer-fill "^1.0.0" - -buffer-crc32@^0.2.1, buffer-crc32@~0.2.3: - version "0.2.13" - resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" - integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== - -buffer-equal-constant-time@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" - integrity sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA== - -buffer-fill@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" - integrity sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ== - -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - -"buffer-polyfill@npm:buffer@^6.0.3", buffer@^6.0.1, buffer@^6.0.3: - name buffer-polyfill - version "6.0.3" - 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-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" - 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" - 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" - integrity sha512-eHslX0bin3GB+Lx2p7lEYRShRewuNZL3fUl4qlVJGGiwoPGftmt8JQgk2Y9Ji5/01TnVDo33E5b5O3vUB1HdqQ== - dependencies: - safe-buffer "^5.1.1" - -buffer@^5.0.5, buffer@^5.2.1, buffer@^5.4.2, buffer@^5.4.3, buffer@^5.5.0, buffer@^5.6.0, buffer@^5.7.1: - 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.1.13" - -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" - -bufrw@^1.2.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/bufrw/-/bufrw-1.4.0.tgz#58a294ca0bd9ebc880be83001d749706fc996499" - integrity sha512-sWm8iPbqvL9+5SiYxXH73UOkyEbGQg7kyHQmReF89WJHQJw2eV4P/yZ0E+b71cczJ4pPobVhXxgQcmfSTgGHxQ== - dependencies: - ansi-color "^0.2.1" - error "^7.0.0" - hexer "^1.5.0" - xtend "^4.0.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== - -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - integrity sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ== - -builtins@^5.0.0: - version "5.0.1" - 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.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" - integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== - dependencies: - streamsearch "^1.1.0" - -byline@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/byline/-/byline-5.0.0.tgz#741c5216468eadc457b03410118ad77de8c1ddb1" - integrity sha512-s6webAy+R4SR8XVuJWt2V2rGvhnrhxN+9S15GNuTK3wKPOXFF6RNc+8ug2XhH+2s4f+uudG4kUVYmYOQWL2g0Q== - -bytes@3.1.2, bytes@^3.1.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" - integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== - -bytewise-core@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/bytewise-core/-/bytewise-core-1.2.3.tgz#3fb410c7e91558eb1ab22a82834577aa6bd61d42" - integrity sha512-nZD//kc78OOxeYtRlVk8/zXqTB4gf/nlguL1ggWA8FuchMyOxcyHR4QPQZMUmA7czC+YnaBrPUCubqAWe50DaA== - dependencies: - typewise-core "^1.2" - -bytewise@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/bytewise/-/bytewise-1.1.0.tgz#1d13cbff717ae7158094aa881b35d081b387253e" - integrity sha512-rHuuseJ9iQ0na6UDhnrRVDh8YnWVlU6xM3VH6q/+yHDeUH2zIhUzP+2/h3LIrhLDBtTqzWpE3p3tP/boefskKQ== - dependencies: - bytewise-core "^1.2.2" - typewise "^1.0.3" - -cac@^6.7.12: - version "6.7.14" - resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.14.tgz#804e1e6f506ee363cb0e3ccbb09cad5dd9870959" - integrity sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ== - -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== - 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.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.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-6.1.0.tgz#0330a543471c61faa4e9035db583aad753b36385" - integrity sha512-KJ/Dmo1lDDhmW2XDPMo+9oiy/CeqosPguPCrgcVzKyZrL6pM1gU2GmPY/xo6OQPTUaA/c0kwHuywB4E6nmT9ww== - -cacheable-lookup@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz#3476a8215d046e5a3202a9209dd13fec1f933a27" - integrity sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w== - -cacheable-request@^10.2.8: - version "10.2.14" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-10.2.14.tgz#eb915b665fda41b79652782df3f553449c406b9d" - integrity sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ== - dependencies: - "@types/http-cache-semantics" "^4.0.2" - get-stream "^6.0.1" - http-cache-semantics "^4.1.1" - keyv "^4.5.3" - mimic-response "^4.0.0" - normalize-url "^8.0.0" - responselike "^3.0.0" - -cacheable-request@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" - integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== - 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.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.4.tgz#7a33ebf08613178b403635be7b899d3e69bbe817" - 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" - -cachedir@^2.3.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-2.4.0.tgz#7fef9cf7367233d7c88068fe6e34ed0d355a610d" - integrity sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ== - -cachedown@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/cachedown/-/cachedown-1.0.0.tgz#d43f036e4510696b31246d7db31ebf0f7ac32d15" - integrity sha512-t+yVk82vQWCJF3PsWHMld+jhhjkkWjcAzz8NbFx1iULOXWl8Tm/FdM4smZNVw3MRr0X+lVTx9PKzvEn4Ng19RQ== - 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.4, call-bind@^1.0.5, call-bind@~1.0.2: - 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.2" - get-intrinsic "^1.2.1" - set-function-length "^1.1.1" - -callsite@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" - integrity sha512-0vdNRFXn5q+dtOqjfFtmtlI9N2eVZ7LMyEV2iKC5mEEFvSg/69Ml6b/WU2qF8W1nLRa0wiSrDT3Y5jOHZCwKPQ== - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camel-case@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" - integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== - dependencies: - pascal-case "^3.1.2" - tslib "^2.0.3" - -camelcase-css@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" - integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== - -camelcase-keys@^6.2.2: - version "6.2.2" - resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0" - integrity sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg== - dependencies: - camelcase "^5.3.1" - map-obj "^4.0.0" - quick-lru "^4.0.1" - -camelcase@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" - integrity sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg== - -camelcase@^5.0.0, camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -camelcase@^6.0.0, camelcase@^6.2.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" - integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== - -camelcase@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-7.0.1.tgz#f02e50af9fd7782bc8b88a3558c32fd3a388f048" - integrity sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw== - -caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30001538, caniuse-lite@^1.0.30001541: - version "1.0.30001564" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001564.tgz#eaa8bbc58c0cbccdcb7b41186df39dd2ba591889" - integrity sha512-DqAOf+rhof+6GVx1y+xzbFPeOumfQnhYzVnZD6LAXijR77yPtm9mfOcqOnT3mpnJiZVT+kwLAFnRlZcIz+c6bg== - -capital-case@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/capital-case/-/capital-case-1.0.4.tgz#9d130292353c9249f6b00fa5852bee38a717e669" - integrity sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A== - dependencies: - no-case "^3.0.4" - tslib "^2.0.3" - upper-case-first "^2.0.2" - -cardinal@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/cardinal/-/cardinal-2.1.1.tgz#7cc1055d822d212954d07b085dea251cc7bc5505" - integrity sha512-JSr5eOgoEymtYHBjNWyjrMqet9Am2miJhlfKNdqLp6zoeAh0KN5dRAcxlecj5mAJrmQomgiOBj35xHLrFjqBpw== - dependencies: - ansicolors "~0.3.2" - redeyed "~2.1.0" - -case@^1.6.3: - version "1.6.3" - 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.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== - -catering@^2.1.0, catering@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/catering/-/catering-2.1.1.tgz#66acba06ed5ee28d5286133982a927de9a04b510" - integrity sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w== - -cbor@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/cbor/-/cbor-8.1.0.tgz#cfc56437e770b73417a2ecbfc9caf6b771af60d5" - integrity sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg== - dependencies: - nofilter "^3.1.0" - -cborg@^1.5.4, cborg@^1.6.0: - version "1.10.2" - resolved "https://registry.yarnpkg.com/cborg/-/cborg-1.10.2.tgz#83cd581b55b3574c816f82696307c7512db759a1" - integrity sha512-b3tFPA9pUr2zCUiCfRd2+wok2/LBSNUMKOuRRok+WlvvAgEt/PlbgPTsZUcwCOs53IJvLgTp0eotwtosE6njug== - -chai-as-promised@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/chai-as-promised/-/chai-as-promised-7.1.1.tgz#08645d825deb8696ee61725dbf590c012eb00ca0" - integrity sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA== - dependencies: - check-error "^1.0.2" - -chai@^4.2.0, chai@^4.3.7: - version "4.3.10" - resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.10.tgz#d784cec635e3b7e2ffb66446a63b4e33bd390384" - integrity sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g== - dependencies: - assertion-error "^1.1.0" - 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.8" - -chalk@3.0.0, chalk@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" - integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chalk@5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.2.0.tgz#249623b7d66869c673699fb66d65723e54dfcfb3" - integrity sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA== - -chalk@^1.0.0, chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - 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.4.1, chalk@^2.4.2: - version "2.4.2" - 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, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chalk@^5.0.0, chalk@^5.0.1, chalk@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" - integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== - -change-case-all@1.0.14: - version "1.0.14" - resolved "https://registry.yarnpkg.com/change-case-all/-/change-case-all-1.0.14.tgz#bac04da08ad143278d0ac3dda7eccd39280bfba1" - integrity sha512-CWVm2uT7dmSHdO/z1CXT/n47mWonyypzBbuCy5tN7uMg22BsfkhwT6oHmFCAk+gL1LOOxhdbB9SZz3J1KTY3gA== - dependencies: - change-case "^4.1.2" - is-lower-case "^2.0.2" - is-upper-case "^2.0.2" - lower-case "^2.0.2" - lower-case-first "^2.0.2" - sponge-case "^1.0.1" - swap-case "^2.0.2" - title-case "^3.0.3" - upper-case "^2.0.2" - upper-case-first "^2.0.2" - -change-case-all@1.0.15: - version "1.0.15" - resolved "https://registry.yarnpkg.com/change-case-all/-/change-case-all-1.0.15.tgz#de29393167fc101d646cd76b0ef23e27d09756ad" - integrity sha512-3+GIFhk3sNuvFAJKU46o26OdzudQlPNBCu1ZQi3cMeMHhty1bhDxu2WrEilVNYaGvqUtR1VSigFcJOiS13dRhQ== - dependencies: - change-case "^4.1.2" - is-lower-case "^2.0.2" - is-upper-case "^2.0.2" - lower-case "^2.0.2" - lower-case-first "^2.0.2" - sponge-case "^1.0.1" - swap-case "^2.0.2" - title-case "^3.0.3" - upper-case "^2.0.2" - upper-case-first "^2.0.2" - -change-case@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/change-case/-/change-case-4.1.2.tgz#fedfc5f136045e2398c0410ee441f95704641e12" - integrity sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A== - dependencies: - camel-case "^4.1.2" - capital-case "^1.0.4" - constant-case "^3.0.4" - dot-case "^3.0.4" - header-case "^2.0.4" - no-case "^3.0.4" - param-case "^3.0.4" - pascal-case "^3.1.2" - path-case "^3.0.4" - sentence-case "^3.0.4" - snake-case "^3.0.4" - tslib "^2.0.3" - -chardet@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" - integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== - -check-error@^1.0.2, 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: - get-func-name "^2.0.2" - -check-types@^11.2.3: - version "11.2.3" - resolved "https://registry.yarnpkg.com/check-types/-/check-types-11.2.3.tgz#1ffdf68faae4e941fce252840b1787b8edc93b71" - integrity sha512-+67P1GkJRaxQD6PKK0Et9DhwQB+vGg3PM5+aavopCpZT1lj9jeqfvpgTLAWErNj8qApkkmXlu/Ug74kmhagkXg== - -checkpoint-store@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/checkpoint-store/-/checkpoint-store-1.1.0.tgz#04e4cb516b91433893581e6d4601a78e9552ea06" - integrity sha512-J/NdY2WvIx654cc6LWSq/IYFFCUf75fFTgwzFnmbqyORH4MwgiQCgswLLKBGzmsyTI5V7i5bp/So6sMbDWhedg== - dependencies: - functional-red-black-tree "^1.0.1" - -chokidar@3.5.1: - version "3.5.1" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" - integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== - 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.5.0" - optionalDependencies: - fsevents "~2.3.1" - -chokidar@3.5.3, "chokidar@>=3.0.0 <4.0.0", chokidar@^3.4.0, chokidar@^3.5.3: - version "3.5.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== - 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" - optionalDependencies: - fsevents "~2.3.2" - -chownr@^1.0.1, chownr@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" - integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== - -chownr@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" - integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== - -ci-info@3.8.0: - version "3.8.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.8.0.tgz#81408265a5380c929f0bc665d62256628ce9ef91" - integrity sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw== - -ci-info@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" - integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== - -ci-info@^3.2.0: - version "3.9.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" - integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== - -cids@^0.7.1, cids@~0.7.0: - version "0.7.5" - resolved "https://registry.yarnpkg.com/cids/-/cids-0.7.5.tgz#60a08138a99bfb69b6be4ceb63bfef7a396b28b2" - integrity sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA== - dependencies: - buffer "^5.5.0" - class-is "^1.1.0" - multibase "~0.6.0" - multicodec "^1.0.0" - multihashes "~0.4.15" - -cids@~0.8.0: - version "0.8.3" - resolved "https://registry.yarnpkg.com/cids/-/cids-0.8.3.tgz#aaf48ac8ed857c3d37dad94d8db1d8c9407b92db" - integrity sha512-yoXTbV3llpm+EBGWKeL9xKtksPE/s6DPoDSY4fn8I8TEW1zehWXPSB0pwAXVDlLaOlrw+sNynj995uD9abmPhA== - dependencies: - buffer "^5.6.0" - class-is "^1.1.0" - multibase "^1.0.0" - multicodec "^1.0.1" - multihashes "^1.0.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" - integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -circom@0.5.45: - version "0.5.45" - resolved "https://registry.yarnpkg.com/circom/-/circom-0.5.45.tgz#82931882c5d38022ccb8be9c4a6314ea94bc511e" - integrity sha512-5Ixp6UjwrhBWnnFBO/mTns+eeEDOpi5UoN4znAUWy5rklCUWYt2Ezl9QVUswBXjMP5kpfEtGUY2XSsYRAp6uMg== - dependencies: - chai "^4.2.0" - circom_runtime "0.1.12" - fastfile "0.0.18" - ffiasm "0.1.1" - ffjavascript "0.2.22" - ffwasm "0.0.7" - fnv-plus "^1.3.1" - r1csfile "0.0.16" - tmp-promise "^2.0.2" - wasmbuilder "0.0.10" - -circom_runtime@0.1.12: - version "0.1.12" - resolved "https://registry.yarnpkg.com/circom_runtime/-/circom_runtime-0.1.12.tgz#e1a302c6fe8cec390f035c2e7a8496cfa7cfb4a2" - integrity sha512-R+QT9HS9w71cmGmWIn+PSyD3aHyR5JZBiVvxOjCfn12wwnpuFwBjdMG7he+v8h/oQD1mDRAu2KrBeL4mAt5s4A== - dependencies: - ffjavascript "0.2.34" - fnv-plus "^1.3.1" - -circom_runtime@0.1.13: - version "0.1.13" - resolved "https://registry.yarnpkg.com/circom_runtime/-/circom_runtime-0.1.13.tgz#90f86f35d989c48d4c27595b94664ea6918fbede" - integrity sha512-vmv19/0p5OTe5uCI7PWqPtB5vPoYWjczqKYnabaC5HOxX99R4K1MuNqEXsNEAoEfZrmfAQd7vXLcATN9NVnsPA== - dependencies: - ffjavascript "0.2.35" - fnv-plus "^1.3.1" - -circom_runtime@0.1.21: - version "0.1.21" - resolved "https://registry.yarnpkg.com/circom_runtime/-/circom_runtime-0.1.21.tgz#0ee93bb798b5afb8ecec30725ed14d94587a999b" - integrity sha512-qTkud630B/GK8y76hnOaaS1aNuF6prfV0dTrkeRsiJKnlP1ryQbP2FWLgDOPqn6aKyaPlam+Z+DTbBhkEzh8dA== - dependencies: - ffjavascript "0.2.56" - -circom_runtime@^0.1.22: - version "0.1.24" - resolved "https://registry.yarnpkg.com/circom_runtime/-/circom_runtime-0.1.24.tgz#60ca8a31c3675802fbab5a0bcdeb02556e510733" - integrity sha512-H7/7I2J/cBmRnZm9docOCGhfxzS61BEm4TMCWcrZGsWNBQhePNfQq88Oj2XpUfzmBTCd8pRvRb3Mvazt3TMrJw== - dependencies: - ffjavascript "0.2.60" - -circomlib@^2.0.0, circomlib@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/circomlib/-/circomlib-2.0.5.tgz#183c703e53ed7d011811842dbeeeb9819f4cc1d6" - integrity sha512-O7NQ8OS+J4eshBuoy36z/TwQU0YHw8W3zxZcs4hVwpEll3e4hDm3mgkIPqItN8FDeLEKZFK3YeT/+k8TiLF3/A== - -"circomlib@https://github.com/weijiekoh/circomlib#ac85e82c1914d47789e2032fb11ceb2cfdd38a2b": - version "1.0.0" - resolved "https://github.com/weijiekoh/circomlib#ac85e82c1914d47789e2032fb11ceb2cfdd38a2b" - -"circomlib@https://github.com/weijiekoh/circomlib.git#24ed08eee0bb613b8c0135d66c1013bd9f78d50a": - version "0.5.2" - resolved "https://github.com/weijiekoh/circomlib.git#24ed08eee0bb613b8c0135d66c1013bd9f78d50a" - dependencies: - blake-hash "^1.1.0" - blake2b "^2.1.3" - circom "0.5.45" - ffjavascript "0.1.0" - web3-utils "^1.3.0" - -circomlibjs@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/circomlibjs/-/circomlibjs-0.0.8.tgz#c2d1130d2d99fbb22f3d40ac19f347d768eace76" - integrity sha512-oZFYapLO0mfiA+i2GU/V7bRNEEPjVcwV4M444nU5lNsdSJpqLwD57m9zxTD5m/KeY7WQ3lEAC9NNKEPQHu7s1w== - dependencies: - blake-hash "^2.0.0" - blake2b "^2.1.3" - ffjavascript "^0.2.38" - web3 "^1.6.0" - web3-utils "^1.6.0" - -circomlibjs@^0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/circomlibjs/-/circomlibjs-0.1.7.tgz#9f5a7d9a23323744b11ee456b05b0cd81f48b554" - integrity sha512-GRAUoAlKAsiiTa+PA725G9RmEmJJRc8tRFxw/zKktUxlQISGznT4hH4ESvW8FNTsrGg/nNd06sGP/Wlx0LUHVg== - dependencies: - blake-hash "^2.0.0" - blake2b "^2.1.3" - ethers "^5.5.1" - ffjavascript "^0.2.45" - -citty@^0.1.3, citty@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/citty/-/citty-0.1.5.tgz#fe37ceae5dc764af75eb2fece99d2bf527ea4e50" - integrity sha512-AS7n5NSc0OQVMV9v6wt3ByujNIrne0/cTjiC2MYqhvao57VNfiuVksTSr2p17nVOhEr2KtqiAkGwHcgMC/qUuQ== - dependencies: - consola "^3.2.3" - -class-is@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/class-is/-/class-is-1.1.0.tgz#9d3c0fba0440d211d843cec3dedfa48055005825" - integrity sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw== - -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== - 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.yarnpkg.com/classic-level/-/classic-level-1.3.0.tgz#5e36680e01dc6b271775c093f2150844c5edd5c8" - integrity sha512-iwFAJQYtqRTRM0F6L8h4JCt00ZSGdOyqh7yVrhhjrOpFhmBjNlRUey64MCiyo6UmQHMJ+No3c81nujPv+n9yrg== - 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" - -clean-deep@3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/clean-deep/-/clean-deep-3.4.0.tgz#c465c4de1003ae13a1a859e6c69366ab96069f75" - integrity sha512-Lo78NV5ItJL/jl+B5w0BycAisaieJGXK1qYi/9m4SjR8zbqmrUtO7Yhro40wEShGmmxs/aJLI/A+jNhdkXK8mw== - dependencies: - lodash.isempty "^4.4.0" - lodash.isplainobject "^4.0.6" - lodash.transform "^4.6.0" - -clean-stack@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" - integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== - -clean-stack@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-3.0.1.tgz#155bf0b2221bf5f4fba89528d24c5953f17fe3a8" - integrity sha512-lR9wNiMRcVQjSB3a7xXGLuz4cr4wJuuXlaAEbRutGowQTmlp7R72/DOgN21e8jdwblMWl9UOJMJXarX94pzKdg== - dependencies: - escape-string-regexp "4.0.0" - -clean-stack@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-4.2.0.tgz#c464e4cde4ac789f4e0735c5d75beb49d7b30b31" - integrity sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg== - dependencies: - escape-string-regexp "5.0.0" - -cli-boxes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-3.0.0.tgz#71a10c716feeba005e4504f36329ef0b17cf3145" - integrity sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g== - -cli-cursor@^2.0.0, cli-cursor@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" - integrity sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw== - dependencies: - restore-cursor "^2.0.0" - -cli-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" - integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== - dependencies: - restore-cursor "^3.1.0" - -cli-cursor@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-4.0.0.tgz#3cecfe3734bf4fe02a8361cbdc0f6fe28c6a57ea" - integrity sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg== - dependencies: - restore-cursor "^4.0.0" - -cli-progress@^3.11.2, cli-progress@^3.12.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/cli-progress/-/cli-progress-3.12.0.tgz#807ee14b66bcc086258e444ad0f19e7d42577942" - integrity sha512-tRkV3HJ1ASwm19THiiLIXLO7Im7wlTuKnvkYaTkyoAPefqjNg7W7DHKUlGRxy9vxDvbyCYQkQozvptuMkGCg8A== - dependencies: - string-width "^4.2.3" - -cli-spinners@^2.2.0, cli-spinners@^2.5.0, cli-spinners@^2.6.1: - version "2.9.2" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.2.tgz#1773a8f4b9c4d6ac31563df53b3fc1d79462fe41" - integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg== - -cli-table3@^0.6.0: - version "0.6.3" - resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.3.tgz#61ab765aac156b52f222954ffc607a6f01dbeeb2" - integrity sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg== - dependencies: - string-width "^4.2.0" - optionalDependencies: - "@colors/colors" "1.5.0" - -cli-table3@~0.5.0: - version "0.5.1" - 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" - string-width "^2.1.1" - optionalDependencies: - colors "^1.1.2" - -cli-truncate@2.1.0, cli-truncate@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" - integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== - dependencies: - slice-ansi "^3.0.0" - string-width "^4.2.0" - -cli-truncate@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574" - integrity sha512-f4r4yJnbT++qUPI9NR4XLDLq41gQ+uqnPItWG0F5ZkehuNiTTa3EY0S4AqTSUOeJ7/zU41oWPQSNkW5BqPL9bg== - dependencies: - slice-ansi "0.0.4" - string-width "^1.0.1" - -cli-width@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" - integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== - -cli-width@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" - integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== - -clipboardy@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/clipboardy/-/clipboardy-3.0.0.tgz#f3876247404d334c9ed01b6f269c11d09a5e3092" - integrity sha512-Su+uU5sr1jkUy1sGRpLKjKrvEOVXgSgiSInwa/qeID6aJ07yh+5NWc3h2QfjHjBnfX4LhtFcuAWKUsJ3r+fjbg== - dependencies: - arch "^2.2.0" - execa "^5.1.1" - is-wsl "^2.2.0" - -cliui@^3.2.0: - version "3.2.0" - 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.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" - integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== - dependencies: - string-width "^3.1.0" - strip-ansi "^5.2.0" - wrap-ansi "^5.1.0" - -cliui@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" - integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^6.2.0" - -cliui@^7.0.2: - version "7.0.4" - 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" - strip-ansi "^6.0.0" - wrap-ansi "^7.0.0" - -cliui@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" - 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.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.1.2, clone@^2.0.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" - integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w== - -clone@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" - integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== - -cluster-key-slot@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz#88ddaa46906e303b5de30d3153b7d9fe0a0c19ac" - integrity sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA== - -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" - integrity sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA== - -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - integrity sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw== - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - -color-convert@^1.9.0, color-convert@^1.9.3: - version "1.9.3" - 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.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.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.0.0, color-name@^1.1.4, 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== - -color-string@^1.6.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" - integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== - dependencies: - color-name "^1.0.0" - simple-swizzle "^0.2.2" - -color-support@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" - integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== - -color@^3.1.3: - version "3.2.1" - resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" - integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== - dependencies: - color-convert "^1.9.3" - color-string "^1.6.0" - -colorette@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.4.0.tgz#5190fbb87276259a86ad700bff2c6d6faa3fca40" - integrity sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g== - -colorette@^2.0.16: - version "2.0.20" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" - integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== - -colors-option@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/colors-option/-/colors-option-3.0.0.tgz#51f5d0d2b511a01859cdd70eaa9ed43ca4abf108" - integrity sha512-DP3FpjsiDDvnQC1OJBsdOJZPuy7r0o6sepY2T5M3L/d2nrE23O/ErFkEqyY3ngVL1ZhTj/H0pCMNObZGkEOaaQ== - dependencies: - chalk "^5.0.0" - filter-obj "^3.0.0" - is-plain-obj "^4.0.0" - jest-validate "^27.3.1" - -colors-option@^4.4.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/colors-option/-/colors-option-4.5.0.tgz#f307605fcf2ac8165fb15510852717c58ef60ec4" - integrity sha512-Soe5lerRg3erMRgYC0EC696/8dMCGpBzcQchFfi55Yrkja8F+P7cUt0LVTIg7u5ob5BexLZ/F1kO+ejmv+nq8w== - dependencies: - chalk "^5.0.1" - is-plain-obj "^4.1.0" - -colors@1.0.x: - version "1.0.3" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" - integrity sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw== - -colors@1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.3.3.tgz#39e005d546afe01e01f9c4ca8fa50f686a01205d" - integrity sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg== - -colors@1.4.0, colors@^1.1.2: - version "1.4.0" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" - integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== - -colorspace@1.1.x: - version "1.1.4" - resolved "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.4.tgz#8d442d1186152f60453bf8070cd66eb364e59243" - integrity sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w== - dependencies: - color "^3.1.3" - text-hex "1.0.x" - -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" - 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" - integrity sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w== - -command-line-args@^4.0.7: - version "4.0.7" - resolved "https://registry.yarnpkg.com/command-line-args/-/command-line-args-4.0.7.tgz#f8d1916ecb90e9e121eda6428e41300bfb64cc46" - integrity sha512-aUdPvQRAyBvQd2n7jXcsMDz68ckBJELXNzBybCHOibUWEg0mWTnaYCSRU8h9R+aNRSvDihJtssSRCiDRpLaezA== - dependencies: - array-back "^2.0.0" - find-replace "^1.0.3" - typical "^2.6.1" - -commander@*, commander@^11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-11.1.0.tgz#62fdce76006a68e5c1ab3314dc92e800eb83d906" - integrity sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ== - -commander@10.0.1, commander@^10.0.0, commander@^10.0.1: - version "10.0.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" - integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== - -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@^2.15.0, commander@^2.20.3, commander@^2.8.1: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -commander@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" - integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== - -commander@^8.2.0: - version "8.3.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" - integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== - -commander@^9.3.0: - version "9.5.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-9.5.0.tgz#bc08d1eb5cedf7ccb797a96199d41c7bc3e60d30" - integrity sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ== - -comment-json@4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/comment-json/-/comment-json-4.2.3.tgz#50b487ebbf43abe44431f575ebda07d30d015365" - integrity sha512-SsxdiOf064DWoZLH799Ata6u7iV658A11PlWtZATDlXPpKGJnbJZ5Z24ybixAi+LUUqJ/GKowAejtC5GFUG7Tw== - dependencies: - array-timsort "^1.0.3" - core-util-is "^1.0.3" - esprima "^4.0.1" - has-own-prop "^2.0.0" - repeat-string "^1.6.1" - -common-path-prefix@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/common-path-prefix/-/common-path-prefix-3.0.0.tgz#7d007a7e07c58c4b4d5f433131a19141b29f11e0" - integrity sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w== - -common-tags@1.8.2: - version "1.8.2" - resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.2.tgz#94ebb3c076d26032745fd54face7f688ef5ac9c6" - integrity sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA== - -component-emitter@^1.2.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.1.tgz#ef1d5796f7d93f135ee6fb684340b26403c97d17" - integrity sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ== - -compress-commons@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-5.0.1.tgz#e46723ebbab41b50309b27a0e0f6f3baed2d6590" - integrity sha512-MPh//1cERdLtqwO3pOFLeXtpuai0Y2WCd5AhtKxznqM7WtaMYaOEMSgn45d9D10sIHSfIKE603HlOp8OPGrvag== - dependencies: - crc-32 "^1.2.0" - crc32-stream "^5.0.0" - normalize-path "^3.0.0" - readable-stream "^3.6.0" - -computeds@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/computeds/-/computeds-0.0.1.tgz#215b08a4ba3e08a11ff6eee5d6d8d7166a97ce2e" - integrity sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q== - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - -concat-stream@^1.5.1, concat-stream@^1.6.0, concat-stream@^1.6.2, concat-stream@~1.6.2: - version "1.6.2" - 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" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -concordance@5.0.4: - version "5.0.4" - resolved "https://registry.yarnpkg.com/concordance/-/concordance-5.0.4.tgz#9896073261adced72f88d60e4d56f8efc4bbbbd2" - integrity sha512-OAcsnTEYu1ARJqWVGwf4zh4JDfHZEaSNlNccFmt8YjB2l/n19/PF2viLINHc57vO4FKIAFl2FWASIGZZWZ2Kxw== - dependencies: - date-time "^3.1.0" - esutils "^2.0.3" - fast-diff "^1.2.0" - js-string-escape "^1.0.1" - lodash "^4.17.15" - md5-hex "^3.0.1" - semver "^7.3.2" - well-known-symbols "^2.0.0" - -config-chain@^1.1.11: - version "1.1.13" - resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" - integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== - dependencies: - ini "^1.3.4" - proto-list "~1.2.1" - -configstore@6.0.0, configstore@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/configstore/-/configstore-6.0.0.tgz#49eca2ebc80983f77e09394a1a56e0aca8235566" - integrity sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA== - dependencies: - dot-prop "^6.0.1" - graceful-fs "^4.2.6" - unique-string "^3.0.0" - write-file-atomic "^3.0.3" - xdg-basedir "^5.0.1" - -consola@^3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/consola/-/consola-3.2.3.tgz#0741857aa88cfa0d6fd53f1cff0375136e98502f" - integrity sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ== - -console-browserify@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" - integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== - -console-control-strings@^1.0.0, console-control-strings@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" - integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== - -constant-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/constant-case/-/constant-case-3.0.4.tgz#3b84a9aeaf4cf31ec45e6bf5de91bdfb0589faf1" - integrity sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ== - dependencies: - no-case "^3.0.4" - tslib "^2.0.3" - upper-case "^2.0.2" - -constants-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" - integrity sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ== - -content-disposition@0.5.4, content-disposition@^0.5.3, content-disposition@^0.5.4: - version "0.5.4" - 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.yarnpkg.com/content-hash/-/content-hash-2.5.2.tgz#bbc2655e7c21f14fd3bfc7b7d4bfe6e454c9e211" - integrity sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw== - dependencies: - cids "^0.7.1" - multicodec "^0.5.5" - multihashes "^0.4.15" - -content-type@1.0.5, 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" - integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== - -convert-source-map@^1.5.1: - version "1.9.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" - integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== - -convert-source-map@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" - integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== - -cookie-es@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/cookie-es/-/cookie-es-1.0.0.tgz#4759684af168dfc54365b2c2dda0a8d7ee1e4865" - integrity sha512-mWYvfOLrfEc996hlKcdABeIiPHUPC6DM2QYZdGGOvhOTbA3tjm2eBwqlJpoFdjC89NI4Qt6h0Pu06Mp+1Pj5OQ== - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== - -cookie@0.5.0, 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" - integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== - -cookiejar@^2.1.1: - version "2.1.4" - resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.4.tgz#ee669c1fea2cf42dc31585469d193fef0d65771b" - integrity sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw== - -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw== - -copy-template-dir@1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/copy-template-dir/-/copy-template-dir-1.4.0.tgz#cb2bd62415abe963a53bb867bb24379df3998112" - integrity sha512-xkXSJhvKz4MfLbVkZ7GyCaFo4ciB3uKI/HHzkGwj1eyTH5+7RTFxW5CE0irWAZgV5oFcO9hd6+NVXAtY9hlo7Q== - dependencies: - end-of-stream "^1.1.0" - graceful-fs "^4.1.3" - maxstache "^1.0.0" - maxstache-stream "^1.0.0" - mkdirp "^0.5.1" - noop2 "^2.0.0" - pump "^1.0.0" - readdirp "^2.0.0" - run-parallel "^1.1.4" - -core-js-pure@^3.0.1: - version "3.33.3" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.33.3.tgz#cbf9180ac4c4653823d784862bfb5c77eac0bf98" - integrity sha512-taJ00IDOP+XYQEA2dAe4ESkmHt1fL8wzYDo3mRWQey8uO9UojlBFMneA65kMyxfYP7106c6LzWaq7/haDT6BCQ== - -core-js@^2.4.0, core-js@^2.5.0: - version "2.6.12" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" - integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== - -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" - integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== - -core-util-is@^1.0.3, 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" - integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== - dependencies: - object-assign "^4" - vary "^1" - -cosmiconfig@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" - integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== - dependencies: - "@types/parse-json" "^4.0.0" - import-fresh "^3.1.0" - parse-json "^5.0.0" - path-type "^4.0.0" - yaml "^1.7.2" - -cosmiconfig@8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.0.0.tgz#e9feae014eab580f858f8a0288f38997a7bebe97" - integrity sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ== - dependencies: - import-fresh "^3.2.1" - js-yaml "^4.1.0" - parse-json "^5.0.0" - path-type "^4.0.0" - -cosmiconfig@^7.0.0, cosmiconfig@^7.0.1: - version "7.1.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz#1443b9afa596b670082ea46cbd8f6a62b84635f6" - integrity sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA== - dependencies: - "@types/parse-json" "^4.0.0" - import-fresh "^3.2.1" - parse-json "^5.0.0" - path-type "^4.0.0" - yaml "^1.10.0" - -cosmiconfig@^8.0.0: - version "8.3.6" - 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" - js-yaml "^4.1.0" - parse-json "^5.2.0" - path-type "^4.0.0" - -cp-file@^10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/cp-file/-/cp-file-10.0.0.tgz#bbae9ecb9f505951b862880d2901e1f56de7a4dc" - integrity sha512-vy2Vi1r2epK5WqxOLnskeKeZkdZvTKfFZQCplE3XWsP+SUJyd5XAUFC9lFgTjjXJF2GMne/UML14iEmkAaDfFg== - dependencies: - graceful-fs "^4.2.10" - nested-error-stacks "^2.1.1" - p-event "^5.0.1" - -cp-file@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/cp-file/-/cp-file-9.1.0.tgz#e98e30db72d57d47b5b1d444deb70d05e5684921" - integrity sha512-3scnzFj/94eb7y4wyXRWwvzLFaQp87yyfTnChIjlfYrVqp5lVO3E2hIJMeQIltUT0K2ZAB3An1qXcBmwGyvuwA== - dependencies: - graceful-fs "^4.1.2" - make-dir "^3.0.0" - nested-error-stacks "^2.0.0" - p-event "^4.1.0" - -cpy@^9.0.0: - version "9.0.1" - resolved "https://registry.yarnpkg.com/cpy/-/cpy-9.0.1.tgz#7f3ad0ad5bafe0bc70645c4bb567969927cadb9f" - integrity sha512-D9U0DR5FjTCN3oMTcFGktanHnAG5l020yvOCR1zKILmAyPP7I/9pl6NFgRbDcmSENtbK1sQLBz1p9HIOlroiNg== - dependencies: - arrify "^3.0.0" - cp-file "^9.1.0" - globby "^13.1.1" - junk "^4.0.0" - micromatch "^4.0.4" - nested-error-stacks "^2.1.0" - p-filter "^3.0.0" - p-map "^5.3.0" - -crc-32@^1.2.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.2.tgz#3cad35a934b8bf71f25ca524b6da51fb7eace2ff" - integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== - -crc32-stream@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-5.0.0.tgz#a97d3a802c8687f101c27cc17ca5253327354720" - integrity sha512-B0EPa1UK+qnpBZpG+7FgPCu0J2ETLpXq09o9BkLkEAhdB6Z61Qo4pJ3JYu0c+Qi+/SAL7QThqnzS06pmSSyZaw== - dependencies: - crc-32 "^1.2.0" - readable-stream "^3.4.0" - -create-ecdh@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" - integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== - dependencies: - bn.js "^4.1.0" - elliptic "^6.5.3" - -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" - 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" - -create-hmac@^1.1.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" - 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" - -create-require@^1.1.0, create-require@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" - integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== - -cron-parser@4.8.1: - version "4.8.1" - resolved "https://registry.yarnpkg.com/cron-parser/-/cron-parser-4.8.1.tgz#47062ea63d21d78c10ddedb08ea4c5b6fc2750fb" - integrity sha512-jbokKWGcyU4gl6jAfX97E1gDpY12DJ1cLJZmoDzaAln/shZ+S3KBFBuA2Q6WeUN4gJf/8klnV1EfvhA2lK5IRQ== - dependencies: - luxon "^3.2.1" - -cron-parser@^4.1.0: - version "4.9.0" - resolved "https://registry.yarnpkg.com/cron-parser/-/cron-parser-4.9.0.tgz#0340694af3e46a0894978c6f52a6dbb5c0f11ad5" - integrity sha512-p0SaNjrHOnQeR8/VnfGbmg9te2kfyYSQ7Sc/j/6DtPL3JQvKxmjO9TSjNFpujqV3vEYYBvNNvXSxzyksBWAx1Q== - dependencies: - luxon "^3.2.1" - -cross-fetch@^2.1.0, cross-fetch@^2.1.1: - version "2.2.6" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-2.2.6.tgz#2ef0bb39a24ac034787965c457368a28730e220a" - integrity sha512-9JZz+vXCmfKUZ68zAptS7k4Nu8e2qcibe7WVZYps7sAgk5R8GYTc+T1WR0v1rlP9HxgARmOX1UTIJZFytajpNA== - dependencies: - node-fetch "^2.6.7" - whatwg-fetch "^2.0.4" - -cross-fetch@^3.1.4, cross-fetch@^3.1.5: - version "3.1.8" - 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.yarnpkg.com/cross-fetch/-/cross-fetch-4.0.0.tgz#f037aef1580bb3a1a35164ea2a848ba81b445983" - integrity sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g== - dependencies: - node-fetch "^2.6.12" - -cross-spawn@^6.0.5: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - 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.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -crypto-browserify@3.12.0, crypto-browserify@^3.11.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" - integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== - 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.1.1: - version "4.2.0" - resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.2.0.tgz#4d931639ecdfd12ff80e8186dba6af2c2e856631" - integrity sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q== - -crypto-random-string@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-4.0.0.tgz#5a3cc53d7dd86183df5da0312816ceeeb5bb1fc2" - integrity sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA== - dependencies: - type-fest "^1.0.1" - -cssesc@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" - integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== - -cssom@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.5.0.tgz#d254fa92cd8b6fbd83811b9fbaed34663cc17c36" - integrity sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw== - -cssom@~0.3.6: - version "0.3.8" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" - integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== - -cssstyle@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" - integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== - dependencies: - cssom "~0.3.6" - -csstype@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" - integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== - -cycle@1.0.x: - version "1.0.3" - resolved "https://registry.yarnpkg.com/cycle/-/cycle-1.0.3.tgz#21e80b2be8580f98b468f379430662b046c34ad2" - integrity sha512-TVF6svNzeQCOpjCqsy0/CSy8VgObG3wXusJ73xW2GbG5rGx7lC8zxDSURicsXI2UsGdi2L0QNRCi745/wUDvsA== - -cyclist@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.2.tgz#673b5f233bf34d8e602b949429f8171d9121bea3" - integrity sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA== - -d@1, d@^1.0.1: - version "1.0.1" - 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" - type "^1.0.1" - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== - dependencies: - assert-plus "^1.0.0" - -data-uri-to-buffer@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz#d8feb2b2881e6a4f58c2e08acfd0e2834e26222e" - integrity sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A== - -data-urls@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-3.0.2.tgz#9cf24a477ae22bcef5cd5f6f0bfbc1d2d3be9143" - integrity sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ== - dependencies: - abab "^2.0.6" - whatwg-mimetype "^3.0.0" - whatwg-url "^11.0.0" - -dataloader@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/dataloader/-/dataloader-2.2.2.tgz#216dc509b5abe39d43a9b9d97e6e5e473dfbe3e0" - integrity sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g== - -datastore-core@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/datastore-core/-/datastore-core-0.7.0.tgz#c5d3cded07f3c81ca49c5ee6f20e9a60cc03adf1" - integrity sha512-hj7YQCDW+N22k7PRQ1XIwFWv78cJ311OGKzqFlJb5Afe1ARx9T1lyDkzr19a6ejDpK+f5EcSumra0MwJ/Ee7mw== - dependencies: - debug "^4.1.1" - interface-datastore "~0.7.0" - -datastore-fs@~0.9.0, datastore-fs@~0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/datastore-fs/-/datastore-fs-0.9.1.tgz#8232bddf06877acc122ec699709d646ffe54d07b" - integrity sha512-clhkqbYzpe/L0mKVBjXB7hxBpzDbYkMOG2aBH5jepSpmKmouJhp01yzUrqB6zRz01hEN0u2r4kosTVKJ3K4sUA== - dependencies: - datastore-core "~0.7.0" - fast-write-atomic "~0.2.0" - glob "^7.1.3" - interface-datastore "~0.7.0" - mkdirp "~0.5.1" - -datastore-level@~0.12.1: - version "0.12.1" - resolved "https://registry.yarnpkg.com/datastore-level/-/datastore-level-0.12.1.tgz#253ba375f039438e2b8e03e2cfb2d09f83416dc2" - integrity sha512-PxUIrH/0ijuaJLypOx1XjOIvsZCZcN1qZ3HKyqXFhU8Wpkn01/Q/9nL/MM1tKK1EwOTFmgXKUtFbO27gf6LpcQ== - dependencies: - datastore-core "~0.7.0" - interface-datastore "~0.7.0" - level "^5.0.1" - -datastore-level@~0.14.0: - version "0.14.1" - resolved "https://registry.yarnpkg.com/datastore-level/-/datastore-level-0.14.1.tgz#a935ed6fecfba3acfffaee78b2a3dd7654086230" - integrity sha512-gAXD11GfxMfUWkhFr3GebZjGxnHabnz6pOgxFw/6MddAE3pOfHCbPPssYdGGSDv+nl0jwhNrsncGdlQ/FvPpcg== - dependencies: - datastore-core "~0.7.0" - interface-datastore "^0.8.0" - level "^5.0.1" - -date-fns@^1.27.2: - version "1.30.1" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c" - integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw== - -date-time@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/date-time/-/date-time-3.1.0.tgz#0d1e934d170579f481ed8df1e2b8ff70ee845e1e" - integrity sha512-uqCUKXE5q1PNBXjPqvwhwJf9SwMoAHBgWJ6DcrnS5o+W2JOiIILl0JEdVD8SGujrNS02GGxgwAg2PN2zONgtjg== - dependencies: - time-zone "^1.0.0" - -de-indent@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" - integrity sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg== - -debounce@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.1.tgz#38881d8f4166a5c5848020c11827b834bcb3e0a5" - integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug== - -debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - 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== - dependencies: - ms "^2.1.1" - -debug@4, debug@4.3.4, debug@^4.0.0, debug@^4.0.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: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - -debug@4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" - integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== - dependencies: - ms "2.1.2" - -debug@^3.1.0, debug@^3.2.6: - 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" - -decache@4.6.2: - version "4.6.2" - resolved "https://registry.yarnpkg.com/decache/-/decache-4.6.2.tgz#c1df1325a2f36d53922e08f33380f083148199cd" - integrity sha512-2LPqkLeu8XWHU8qNCS3kcF6sCcb5zIzvWaAHYSvPfwhdd7mHuah29NssMzrTYyHN4F5oFy2ko9OBYxegtU0FEw== - dependencies: - callsite "^1.0.0" - -decamelize-keys@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.1.tgz#04a2d523b2f18d80d0158a43b895d56dff8d19d8" - integrity sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg== - dependencies: - decamelize "^1.1.0" - map-obj "^1.0.0" - -decamelize@^1.1.0, decamelize@^1.1.1, decamelize@^1.2.0: - version "1.2.0" - 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.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" - integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== - -decimal.js@^10.4.2: - version "10.4.3" - resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23" - integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA== - -decode-uri-component@^0.2.0, decode-uri-component@^0.2.2: - version "0.2.2" - 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.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.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.0.1, deep-eql@^4.1.3: - version "4.1.3" - 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-equal@~1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.2.tgz#78a561b7830eef3134c7f6f3a3d6af272a678761" - 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.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.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" - integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== - -deepmerge@^4.2.2: - version "4.3.1" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" - integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== - -defaults@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" - integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== - dependencies: - clone "^1.0.2" - -defer-to-connect@^1.0.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" - integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== - -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" - 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" - integrity sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA== - dependencies: - abstract-leveldown "~2.6.0" - -deferred-leveldown@~4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/deferred-leveldown/-/deferred-leveldown-4.0.2.tgz#0b0570087827bf480a23494b398f04c128c19a20" - integrity sha512-5fMC8ek8alH16QiV0lTCis610D1Zt1+LA4MS4d63JgS32lrCjTFDUFz2ao09/j2I4Bqb5jL4FZYwu7Jz0XO1ww== - dependencies: - abstract-leveldown "~5.0.0" - inherits "^2.0.3" - -deferred-leveldown@~5.3.0: - version "5.3.0" - 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, 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-lazy-prop@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" - integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== - -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" - integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== - dependencies: - define-data-property "^1.0.1" - has-property-descriptors "^1.0.0" - object-keys "^1.1.1" - -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - integrity sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA== - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - integrity sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA== - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - -defined@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.1.tgz#c0b9db27bfaffd95d6f61399419b893df0f91ebf" - integrity sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q== - -defu@^6.1.2, defu@^6.1.3: - version "6.1.3" - resolved "https://registry.yarnpkg.com/defu/-/defu-6.1.3.tgz#6d7f56bc61668e844f9f593ace66fd67ef1205fd" - integrity sha512-Vy2wmG3NTkmHNg/kzpuvHhkqeIx3ODWqasgCRbKtbXEN0G+HpEEv9BtJLp7ZG1CZloFaC41Ah3ZFbq7aqCqMeQ== - -delay@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/delay/-/delay-5.0.0.tgz#137045ef1b96e5071060dd5be60bf9334436bd1d" - integrity sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw== - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== - -delegates@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== - -delimit-stream@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/delimit-stream/-/delimit-stream-0.1.0.tgz#9b8319477c0e5f8aeb3ce357ae305fc25ea1cd2b" - integrity sha512-a02fiQ7poS5CnjiJBAsjGLPp5EwVoGHNeu9sziBd9huppRfsAFIpv5zNLv0V1gbop53ilngAf5Kf331AwcoRBQ== - -denque@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/denque/-/denque-2.1.0.tgz#e93e1a6569fb5e66f16a3c2a2964617d349d6ab1" - integrity sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw== - -depd@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" - integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== - -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== - -dependency-graph@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/dependency-graph/-/dependency-graph-0.11.0.tgz#ac0ce7ed68a54da22165a85e97a01d53f5eb2e27" - integrity sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg== - -deprecation@^2.0.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" - integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== - -des.js@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.1.0.tgz#1d37f5766f3bbff4ee9638e871a8768c173b81da" - integrity sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg== - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -destr@^2.0.1, destr@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/destr/-/destr-2.0.2.tgz#8d3c0ee4ec0a76df54bc8b819bca215592a8c218" - integrity sha512-65AlobnZMiCET00KaFFjUefxDX0khFA/E4myqZ7a6Sq1yZtR8+FVIvilVX66vF2uobSumxooYZChiRPCKNqhmg== - -destroy@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" - integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== - -detect-browser@5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/detect-browser/-/detect-browser-5.3.0.tgz#9705ef2bddf46072d0f7265a1fe300e36fe7ceca" - integrity sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w== - -detect-indent@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" - integrity sha512-BDKtmHlOzwI7iRuEkhzsnPoi5ypEhWAJB5RvHWe1kMr06js3uK5B3734i3ui5Yd+wOJV1cpE4JnivPD283GU/A== - dependencies: - repeating "^2.0.0" - -detect-indent@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6" - integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== - -detect-libc@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== - -detect-libc@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.2.tgz#8ccf2ba9315350e1241b88d0ac3b0e1fbd99605d" - integrity sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw== - -detective-amd@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/detective-amd/-/detective-amd-5.0.2.tgz#579900f301c160efe037a6377ec7e937434b2793" - integrity sha512-XFd/VEQ76HSpym80zxM68ieB77unNuoMwopU2TFT/ErUk5n4KvUTwW4beafAVUugrjV48l4BmmR0rh2MglBaiA== - dependencies: - ast-module-types "^5.0.0" - escodegen "^2.0.0" - get-amd-module-type "^5.0.1" - node-source-walk "^6.0.1" - -detective-cjs@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/detective-cjs/-/detective-cjs-5.0.1.tgz#836ad51c6de4863efc7c419ec243694f760ff8b2" - integrity sha512-6nTvAZtpomyz/2pmEmGX1sXNjaqgMplhQkskq2MLrar0ZAIkHMrDhLXkRiK2mvbu9wSWr0V5/IfiTrZqAQMrmQ== - dependencies: - ast-module-types "^5.0.0" - node-source-walk "^6.0.0" - -detective-es6@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/detective-es6/-/detective-es6-4.0.1.tgz#38d5d49a6d966e992ef8f2d9bffcfe861a58a88a" - integrity sha512-k3Z5tB4LQ8UVHkuMrFOlvb3GgFWdJ9NqAa2YLUU/jTaWJIm+JJnEh4PsMc+6dfT223Y8ACKOaC0qcj7diIhBKw== - dependencies: - node-source-walk "^6.0.1" - -detective-postcss@^6.1.3: - version "6.1.3" - resolved "https://registry.yarnpkg.com/detective-postcss/-/detective-postcss-6.1.3.tgz#51a2d4419327ad85d0af071c7054c79fafca7e73" - integrity sha512-7BRVvE5pPEvk2ukUWNQ+H2XOq43xENWbH0LcdCE14mwgTBEAMoAx+Fc1rdp76SmyZ4Sp48HlV7VedUnP6GA1Tw== - dependencies: - is-url "^1.2.4" - postcss "^8.4.23" - postcss-values-parser "^6.0.2" - -detective-sass@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/detective-sass/-/detective-sass-5.0.3.tgz#63e54bc9b32f4bdbd9d5002308f9592a3d3a508f" - integrity sha512-YsYT2WuA8YIafp2RVF5CEfGhhyIVdPzlwQgxSjK+TUm3JoHP+Tcorbk3SfG0cNZ7D7+cYWa0ZBcvOaR0O8+LlA== - dependencies: - gonzales-pe "^4.3.0" - node-source-walk "^6.0.1" - -detective-scss@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/detective-scss/-/detective-scss-4.0.3.tgz#79758baa0158f72bfc4481eb7e21cc3b5f1ea6eb" - integrity sha512-VYI6cHcD0fLokwqqPFFtDQhhSnlFWvU614J42eY6G0s8c+MBhi9QAWycLwIOGxlmD8I/XvGSOUV1kIDhJ70ZPg== - dependencies: - gonzales-pe "^4.3.0" - node-source-walk "^6.0.1" - -detective-stylus@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/detective-stylus/-/detective-stylus-4.0.0.tgz#ce97b6499becdc291de7b3c11df8c352c1eee46e" - integrity sha512-TfPotjhszKLgFBzBhTOxNHDsutIxx9GTWjrL5Wh7Qx/ydxKhwUrlSFeLIn+ZaHPF+h0siVBkAQSuy6CADyTxgQ== - -detective-typescript@^11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/detective-typescript/-/detective-typescript-11.1.0.tgz#2deea5364cae1f0d9d3688bc596e662b049438cc" - integrity sha512-Mq8egjnW2NSCkzEb/Az15/JnBI/Ryyl6Po0Y+0mABTFvOS6DAyUGRZqz1nyhu4QJmWWe0zaGs/ITIBeWkvCkGw== - dependencies: - "@typescript-eslint/typescript-estree" "^5.59.5" - ast-module-types "^5.0.0" - node-source-walk "^6.0.1" - typescript "^5.0.4" - -didyoumean@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.2.tgz#989346ffe9e839b4555ecf5666edea0d3e8ad037" - integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw== - -diff@5.0.0: - version "5.0.0" - 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== - -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" - integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - -dijkstrajs@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/dijkstrajs/-/dijkstrajs-1.0.3.tgz#4c8dbdea1f0f6478bff94d9c49c784d623e4fc23" - integrity sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA== - -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" - integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - dependencies: - path-type "^4.0.0" - -dlv@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79" - integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== - -dns-over-http-resolver@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/dns-over-http-resolver/-/dns-over-http-resolver-1.2.3.tgz#194d5e140a42153f55bb79ac5a64dd2768c36af9" - integrity sha512-miDiVSI6KSNbi4SVifzO/reD8rMnxgrlnkrlkugOLQpWQTe2qMdHsZp5DmfKjxNE+/T3VAAYLQUZMv9SMr6+AA== - dependencies: - debug "^4.3.1" - native-fetch "^3.0.0" - receptacle "^1.3.2" - -docker-compose@0.23.19: - version "0.23.19" - resolved "https://registry.yarnpkg.com/docker-compose/-/docker-compose-0.23.19.tgz#9947726e2fe67bdfa9e8efe1ff15aa0de2e10eb8" - integrity sha512-v5vNLIdUqwj4my80wxFDkNH+4S85zsRuH29SO7dCWVWPCMt/ohZBsGN6g6KXWifT0pzQ7uOxqEKCYCDPJ8Vz4g== - dependencies: - yaml "^1.10.2" - -docker-modem@^1.0.8: - version "1.0.9" - resolved "https://registry.yarnpkg.com/docker-modem/-/docker-modem-1.0.9.tgz#a1f13e50e6afb6cf3431b2d5e7aac589db6aaba8" - integrity sha512-lVjqCSCIAUDZPAZIeyM125HXfNvOmYYInciphNrLrylUtKyW66meAjSPXWchKVzoIYZx69TPnAepVSSkeawoIw== - dependencies: - JSONStream "1.3.2" - debug "^3.2.6" - readable-stream "~1.0.26-4" - split-ca "^1.0.0" - -dockerode@2.5.8: - version "2.5.8" - resolved "https://registry.yarnpkg.com/dockerode/-/dockerode-2.5.8.tgz#1b661e36e1e4f860e25f56e0deabe9f87f1d0acc" - integrity sha512-+7iOUYBeDTScmOmQqpUYQaE7F4vvIt6+gIZNHWhqAQEI887tiPFB9OvXI/HzQYqfUNvukMK+9myLW63oTJPZpw== - dependencies: - concat-stream "~1.6.2" - docker-modem "^1.0.8" - tar-fs "~1.16.3" - -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - -dom-walk@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" - integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== - -domain-browser@^4.22.0: - version "4.23.0" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-4.23.0.tgz#427ebb91efcb070f05cffdfb8a4e9a6c25f8c94b" - integrity sha512-ArzcM/II1wCCujdCNyQjXrAFwS4mrLh4C7DZWlaI8mdh7h3BfKdNd3bKXITfl2PT9FtfQqaGvhi1vPRQPimjGA== - -domexception@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/domexception/-/domexception-4.0.0.tgz#4ad1be56ccadc86fc76d033353999a8037d03673" - integrity sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw== - dependencies: - webidl-conversions "^7.0.0" - -dot-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" - integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== - dependencies: - no-case "^3.0.4" - tslib "^2.0.3" - -dot-object@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/dot-object/-/dot-object-2.1.4.tgz#c6c54e9fca510b4d0ea4d65acf33726963843b5f" - integrity sha512-7FXnyyCLFawNYJ+NhkqyP9Wd2yzuo+7n9pGiYpkmXCTYa8Ci2U0eUNDVg5OuO5Pm6aFXI2SWN8/N/w7SJWu1WA== - dependencies: - commander "^4.0.0" - glob "^7.1.5" - -dot-prop@7.2.0, dot-prop@^7.0.0, dot-prop@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-7.2.0.tgz#468172a3529779814d21a779c1ba2f6d76609809" - integrity sha512-Ol/IPXUARn9CSbkrdV4VJo7uCy1I3VuSiWCaFSg+8BdUOzF9n3jefIpcgAydvUZbTdEBZs2vEiTiS9m61ssiDA== - dependencies: - type-fest "^2.11.2" - -dot-prop@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-6.0.1.tgz#fc26b3cf142b9e59b74dbd39ed66ce620c681083" - integrity sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA== - dependencies: - is-obj "^2.0.0" - -dotenv@16.0.3: - version "16.0.3" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.3.tgz#115aec42bac5053db3c456db30cc243a5a836a07" - integrity sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ== - -dotenv@^16.0.0, dotenv@^16.3.1: - version "16.3.1" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.3.1.tgz#369034de7d7e5b120972693352a3bf112172cc3e" - integrity sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ== - -dotenv@^8.2.0: - version "8.6.0" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.6.0.tgz#061af664d19f7f4d8fc6e4ff9b584ce237adcb8b" - integrity sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g== - -dotignore@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/dotignore/-/dotignore-0.1.2.tgz#f942f2200d28c3a76fbdd6f0ee9f3257c8a2e905" - integrity sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw== - dependencies: - minimatch "^3.0.4" - -dset@^3.1.2: - version "3.1.3" - resolved "https://registry.yarnpkg.com/dset/-/dset-3.1.3.tgz#c194147f159841148e8e34ca41f638556d9542d2" - integrity sha512-20TuZZHCEZ2O71q9/+8BwKwZ0QtD9D8ObhrihJPr+vLLYlSuAU3/zL4cSlgbfeoGHTjCSJBa7NGcrF9/Bx/WJQ== - -duplexer3@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.5.tgz#0b5e4d7bad5de8901ea4440624c8e1d20099217e" - integrity sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA== - -duplexify@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-4.1.2.tgz#18b4f8d28289132fa0b9573c898d9f903f81c7b0" - integrity sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw== - dependencies: - end-of-stream "^1.4.1" - inherits "^2.0.3" - readable-stream "^3.1.1" - stream-shift "^1.0.0" - -eastasianwidth@^0.2.0: - version "0.2.0" - 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.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - -ecdsa-sig-formatter@1.0.11, ecdsa-sig-formatter@^1.0.11: - version "1.0.11" - resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" - integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== - dependencies: - safe-buffer "^5.0.1" - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== - -ejs@^2.6.1: - version "2.7.4" - resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.7.4.tgz#48661287573dcc53e366c7a1ae52c3a120eec9ba" - integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA== - -ejs@^3.0.1, ejs@^3.1.6, ejs@^3.1.8: - version "3.1.9" - resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.9.tgz#03c9e8777fe12686a9effcef22303ca3d8eeb361" - integrity sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ== - dependencies: - jake "^10.8.5" - -electron-fetch@^1.7.2: - version "1.9.1" - resolved "https://registry.yarnpkg.com/electron-fetch/-/electron-fetch-1.9.1.tgz#e28bfe78d467de3f2dec884b1d72b8b05322f30f" - integrity sha512-M9qw6oUILGVrcENMSRRefE1MbHPIz0h79EKIeJWK9v563aT9Qkh8aEHPO1H5vi970wPirNY+jO9OpFoLiMsMGA== - dependencies: - encoding "^0.1.13" - -electron-to-chromium@^1.3.47, electron-to-chromium@^1.4.535: - version "1.4.594" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.594.tgz#f69f207fba80735a44a988df42f3f439115d0515" - integrity sha512-xT1HVAu5xFn7bDfkjGQi9dNpMqGchUkebwf1GL7cZN32NSwwlHRPMSDJ1KN6HkS0bWUtndbSQZqvpQftKG2uFQ== - -elegant-spinner@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" - integrity sha512-B+ZM+RXvRqQaAmkMlO/oSe5nMUOaUnyfGYCEHoR8wrXsZR2mA0XVibsxV1bvTwxdRWah1PkQqso2EzhILGHtEQ== - -elliptic@6.5.4, elliptic@^6.4.0, elliptic@^6.5.2, elliptic@^6.5.3, elliptic@^6.5.4: - version "6.5.4" - 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" - 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" - -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" - 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" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -emoji-regex@^9.2.2: - version "9.2.2" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" - integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== - -enabled@2.0.x: - version "2.0.0" - resolved "https://registry.yarnpkg.com/enabled/-/enabled-2.0.0.tgz#f9dd92ec2d6f4bbc0d5d1e64e21d61cd4665e7c2" - integrity sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ== - -encode-utf8@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/encode-utf8/-/encode-utf8-1.0.3.tgz#f30fdd31da07fb596f281beb2f6b027851994cda" - integrity sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw== - -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== - -encoding-down@5.0.4, encoding-down@~5.0.0: - version "5.0.4" - resolved "https://registry.yarnpkg.com/encoding-down/-/encoding-down-5.0.4.tgz#1e477da8e9e9d0f7c8293d320044f8b2cd8e9614" - integrity sha512-8CIZLDcSKxgzT+zX8ZVfgNbu8Md2wq/iqa1Y7zyVR18QBEAc0Nmzuvj/N5ykSKpfGzjM8qxbaFntLPwnVoUhZw== - 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-down@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/encoding-down/-/encoding-down-6.3.0.tgz#b1c4eb0e1728c146ecaef8e32963c549e76d082b" - integrity sha512-QKrV0iKR6MZVJV08QY0wp1e7vF6QbhnbQhb07bwpEyuz4uZiZgPlEGdkCROuFkUwdxlFaiPIhjyarH1ee/3vhw== - dependencies: - abstract-leveldown "^6.2.1" - inherits "^2.0.3" - level-codec "^9.0.0" - level-errors "^2.0.0" - -encoding@^0.1.11, encoding@^0.1.13: - version "0.1.13" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" - integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== - dependencies: - iconv-lite "^0.6.2" - -end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1: - version "1.4.4" - 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.4: - version "2.3.4" - resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.4.tgz#c608f2e1134c7f68c1c9ee056de13f9b31076de9" - integrity sha512-pkYrrDZumL2VS6VBGDhqbajCM2xpkUNLuKfGPjfKaSIBKYopQbqEFyrOkRMIb2HDR/rO1kGhEt/5twBwtzKBXw== - dependencies: - ansi-colors "^3.2.1" - -enquirer@^2.3.0, enquirer@^2.3.6: - version "2.4.1" - 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" - strip-ansi "^6.0.1" - -entities@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" - integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== - -entities@^4.4.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" - integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== - -entities@~3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/entities/-/entities-3.0.1.tgz#2b887ca62585e96db3903482d336c1006c3001d4" - integrity sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q== - -env-paths@3.0.0, env-paths@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-3.0.0.tgz#2f1e89c2f6dbd3408e1b1711dd82d62e317f58da" - integrity sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A== - -env-paths@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" - integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== - -envinfo@7.8.1: - version "7.8.1" - resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475" - integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw== - -err-code@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/err-code/-/err-code-1.1.2.tgz#06e0116d3028f6aef4806849eb0ea6a748ae6960" - integrity sha512-CJAN+O0/yA1CKfRn9SXOGctSpEM7DCon/r/5r2eXFMY2zCCJBasFhcM5I+1kh3Ap11FsQCX+vGHceNPvpWKhoA== - -err-code@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" - integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== - -err-code@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/err-code/-/err-code-3.0.1.tgz#a444c7b992705f2b120ee320b09972eef331c920" - integrity sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA== - -errno@~0.1.1: - version "0.1.8" - 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.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -error-stack-parser@^2.0.2, error-stack-parser@^2.0.3: - version "2.1.4" - resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.1.4.tgz#229cb01cdbfa84440bfa91876285b94680188286" - integrity sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ== - dependencies: - stackframe "^1.3.4" - -error@7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/error/-/error-7.0.2.tgz#a5f75fff4d9926126ddac0ea5dc38e689153cb02" - integrity sha512-UtVv4l5MhijsYUxPJo4390gzfZvAnTHreNnDjnTZaKIiZ/SemXxAhBkYSKtWa5RtBXbLP8tMgn/n0RUa/H7jXw== - dependencies: - string-template "~0.2.1" - xtend "~4.0.0" - -error@^7.0.0: - version "7.2.1" - resolved "https://registry.yarnpkg.com/error/-/error-7.2.1.tgz#eab21a4689b5f684fc83da84a0e390de82d94894" - integrity sha512-fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA== - dependencies: - string-template "~0.2.1" - -es-abstract@^1.22.1: - 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.5" - es-set-tostringtag "^2.0.1" - es-to-primitive "^1.2.1" - function.prototype.name "^1.1.6" - get-intrinsic "^1.2.2" - get-symbol-description "^1.0.0" - globalthis "^1.0.3" - gopd "^1.0.1" - 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" - 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.13.1" - 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.13" - -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" - integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== - -es-module-lexer@^1.0.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.4.1.tgz#41ea21b43908fe6a287ffcbe4300f790555331f5" - integrity sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w== - -es-set-tostringtag@^2.0.1: - 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.2.2" - has-tostringtag "^1.0.0" - hasown "^2.0.0" - -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" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -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" - integrity sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA== - dependencies: - es6-iterator "^2.0.3" - es6-symbol "^3.1.3" - next-tick "^1.1.0" - -es6-iterator@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" - integrity sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g== - dependencies: - d "1" - es5-ext "^0.10.35" - es6-symbol "^3.1.1" - -es6-promise@^4.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" - integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== - -es6-promisify@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" - integrity sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ== - dependencies: - es6-promise "^4.0.3" - -es6-promisify@^6.0.0: - version "6.1.1" - resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-6.1.1.tgz#46837651b7b06bf6fff893d03f29393668d01621" - integrity sha512-HBL8I3mIki5C1Cc9QjKUenHtnG0A5/xA8Q/AllRcfiwl2CZFXGK7ddBiCoRwAix4i2KxcQfjtIVcrVbB3vbmwg== - -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" - integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== - dependencies: - d "^1.0.1" - ext "^1.1.2" - -esbuild@0.19.4: - version "0.19.4" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.4.tgz#cdf5c4c684956d550bc3c6d0c01dac7fef6c75b1" - integrity sha512-x7jL0tbRRpv4QUyuDMjONtWFciygUxWaUM1kMX2zWxI0X2YWOt7MSA0g4UdeSiHM8fcYVzpQhKYOycZwxTdZkA== - optionalDependencies: - "@esbuild/android-arm" "0.19.4" - "@esbuild/android-arm64" "0.19.4" - "@esbuild/android-x64" "0.19.4" - "@esbuild/darwin-arm64" "0.19.4" - "@esbuild/darwin-x64" "0.19.4" - "@esbuild/freebsd-arm64" "0.19.4" - "@esbuild/freebsd-x64" "0.19.4" - "@esbuild/linux-arm" "0.19.4" - "@esbuild/linux-arm64" "0.19.4" - "@esbuild/linux-ia32" "0.19.4" - "@esbuild/linux-loong64" "0.19.4" - "@esbuild/linux-mips64el" "0.19.4" - "@esbuild/linux-ppc64" "0.19.4" - "@esbuild/linux-riscv64" "0.19.4" - "@esbuild/linux-s390x" "0.19.4" - "@esbuild/linux-x64" "0.19.4" - "@esbuild/netbsd-x64" "0.19.4" - "@esbuild/openbsd-x64" "0.19.4" - "@esbuild/sunos-x64" "0.19.4" - "@esbuild/win32-arm64" "0.19.4" - "@esbuild/win32-ia32" "0.19.4" - "@esbuild/win32-x64" "0.19.4" - -esbuild@0.19.6: - version "0.19.6" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.6.tgz#baa0e8b6b9e655c54ffd57f1772e44677a7931cc" - integrity sha512-Xl7dntjA2OEIvpr9j0DVxxnog2fyTGnyVoQXAMQI6eR3mf9zCQds7VIKUDCotDgE/p4ncTgeRqgX8t5d6oP4Gw== - optionalDependencies: - "@esbuild/android-arm" "0.19.6" - "@esbuild/android-arm64" "0.19.6" - "@esbuild/android-x64" "0.19.6" - "@esbuild/darwin-arm64" "0.19.6" - "@esbuild/darwin-x64" "0.19.6" - "@esbuild/freebsd-arm64" "0.19.6" - "@esbuild/freebsd-x64" "0.19.6" - "@esbuild/linux-arm" "0.19.6" - "@esbuild/linux-arm64" "0.19.6" - "@esbuild/linux-ia32" "0.19.6" - "@esbuild/linux-loong64" "0.19.6" - "@esbuild/linux-mips64el" "0.19.6" - "@esbuild/linux-ppc64" "0.19.6" - "@esbuild/linux-riscv64" "0.19.6" - "@esbuild/linux-s390x" "0.19.6" - "@esbuild/linux-x64" "0.19.6" - "@esbuild/netbsd-x64" "0.19.6" - "@esbuild/openbsd-x64" "0.19.6" - "@esbuild/sunos-x64" "0.19.6" - "@esbuild/win32-arm64" "0.19.6" - "@esbuild/win32-ia32" "0.19.6" - "@esbuild/win32-x64" "0.19.6" - -esbuild@^0.18.10: - version "0.18.20" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.18.20.tgz#4709f5a34801b43b799ab7d6d82f7284a9b7a7a6" - integrity sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA== - optionalDependencies: - "@esbuild/android-arm" "0.18.20" - "@esbuild/android-arm64" "0.18.20" - "@esbuild/android-x64" "0.18.20" - "@esbuild/darwin-arm64" "0.18.20" - "@esbuild/darwin-x64" "0.18.20" - "@esbuild/freebsd-arm64" "0.18.20" - "@esbuild/freebsd-x64" "0.18.20" - "@esbuild/linux-arm" "0.18.20" - "@esbuild/linux-arm64" "0.18.20" - "@esbuild/linux-ia32" "0.18.20" - "@esbuild/linux-loong64" "0.18.20" - "@esbuild/linux-mips64el" "0.18.20" - "@esbuild/linux-ppc64" "0.18.20" - "@esbuild/linux-riscv64" "0.18.20" - "@esbuild/linux-s390x" "0.18.20" - "@esbuild/linux-x64" "0.18.20" - "@esbuild/netbsd-x64" "0.18.20" - "@esbuild/openbsd-x64" "0.18.20" - "@esbuild/sunos-x64" "0.18.20" - "@esbuild/win32-arm64" "0.18.20" - "@esbuild/win32-ia32" "0.18.20" - "@esbuild/win32-x64" "0.18.20" - -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== - -escape-goat@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-4.0.0.tgz#9424820331b510b0666b98f7873fe11ac4aa8081" - integrity sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg== - -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== - -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" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -escape-string-regexp@5.0.0, escape-string-regexp@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8" - integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== - -escape-string-regexp@^1.0.2, 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.1: - version "1.14.3" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" - integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== - dependencies: - esprima "^4.0.1" - estraverse "^4.2.0" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.6.1" - -escodegen@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.1.0.tgz#ba93bbb7a43986d29d6041f99f5262da773e2e17" - integrity sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w== - dependencies: - esprima "^4.0.1" - estraverse "^5.2.0" - esutils "^2.0.2" - optionalDependencies: - source-map "~0.6.1" - -eslint-config-prettier@9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz#eb25485946dd0c66cd216a46232dc05451518d1f" - integrity sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw== - -eslint-config-prettier@^8.3.0, eslint-config-prettier@^8.5.0: - version "8.10.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz#3a06a662130807e2502fc3ff8b4143d8a0658e11" - integrity sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg== - -eslint-plugin-prettier@^4.0.0: - 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== - dependencies: - prettier-linter-helpers "^1.0.0" - -eslint-plugin-vue@^9.8.0: - version "9.18.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.18.1.tgz#73cf29df7450ce5913296465f8d1dc545344920c" - integrity sha512-7hZFlrEgg9NIzuVik2I9xSnJA5RsmOfueYgsUGUokEDLJ1LHtxO0Pl4duje1BriZ/jDWb+44tcIlC3yi0tdlZg== - dependencies: - "@eslint-community/eslint-utils" "^4.4.0" - natural-compare "^1.4.0" - nth-check "^2.1.1" - postcss-selector-parser "^6.0.13" - semver "^7.5.4" - vue-eslint-parser "^9.3.1" - xml-name-validator "^4.0.0" - -eslint-scope@^5.1.1: - version "5.1.1" - 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" - estraverse "^4.1.1" - -eslint-scope@^7.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" - integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== - dependencies: - esrecurse "^4.3.0" - estraverse "^5.2.0" - -eslint-utils@^2.1.0: - version "2.1.0" - 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, eslint-visitor-keys@^1.3.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@^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" - integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== - -eslint@8.48.0: - version "8.48.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.48.0.tgz#bf9998ba520063907ba7bfe4c480dc8be03c2155" - integrity sha512-sb6DLeIuRXxeM1YljSe1KEx9/YYeZFQWcV8Rq9HfigmdDEugjLEVEa1ozDjL6YDjBpQHPJxJzze+alxi4T3OLg== - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@eslint-community/regexpp" "^4.6.1" - "@eslint/eslintrc" "^2.1.2" - "@eslint/js" "8.48.0" - "@humanwhocodes/config-array" "^0.11.10" - "@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" - -eslint@^8.28.0, eslint@^8.31.0: - version "8.54.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.54.0.tgz#588e0dd4388af91a2e8fa37ea64924074c783537" - integrity sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA== - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@eslint-community/regexpp" "^4.6.1" - "@eslint/eslintrc" "^2.1.3" - "@eslint/js" "8.54.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" - 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" - -espree@^6.0.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a" - integrity sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw== - dependencies: - acorn "^7.1.1" - acorn-jsx "^5.2.0" - eslint-visitor-keys "^1.1.0" - -espree@^9.3.1, espree@^9.6.0, espree@^9.6.1: - version "9.6.1" - 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@1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-1.2.2.tgz#76a0fd66fcfe154fd292667dc264019750b1657b" - integrity sha512-+JpPZam9w5DuJ3Q67SqsMGtiHKENSMRVoxvArfJZK01/BfLEObtZ6orJa/MtoGNR/rfMgp5837T41PAmTwAv/A== - -esprima@^4.0.0, esprima@^4.0.1, esprima@~4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -esquery@^1.4.0, esquery@^1.4.2: - version "1.5.0" - 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.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^4.1.1, estraverse@^4.2.0: - version "4.3.0" - 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.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" - integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== - -estree-walker@2.0.2, estree-walker@^2.0.1, estree-walker@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" - integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== - -esutils@^2.0.2, esutils@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -etag@1.8.1, etag@~1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== - -eth-block-tracker@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/eth-block-tracker/-/eth-block-tracker-3.0.1.tgz#95cd5e763c7293e0b1b2790a2a39ac2ac188a5e1" - 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-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" - integrity sha512-VWEI1+KJfz4Km//dadyvBBoBeSQ0MHTXPvr8UIXiLW6IanxvAV+DmlZAijZwAyggqGUfwQBeHf7tc9wzc1piSw== - dependencies: - idna-uts46-hx "^2.3.1" - js-sha3 "^0.5.7" - -eth-json-rpc-infura@^3.1.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/eth-json-rpc-infura/-/eth-json-rpc-infura-3.2.1.tgz#26702a821067862b72d979c016fd611502c6057f" - 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-middleware@^1.5.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/eth-json-rpc-middleware/-/eth-json-rpc-middleware-1.6.0.tgz#5c9d4c28f745ccb01630f0300ba945f4bef9593f" - 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-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" - 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" - -eth-query@^2.0.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" - integrity sha512-srES0ZcvwkR/wd5OQBRA1bIJMww1skfGS0s8wlwK3/oNP4+wnds60krvu5R1QbpRQjMmpG5OMIWro5s7gvDPsA== - dependencies: - json-rpc-random-id "^1.0.0" - xtend "^4.0.1" - -eth-sig-util@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/eth-sig-util/-/eth-sig-util-3.0.0.tgz#75133b3d7c20a5731af0690c385e184ab942b97e" - integrity sha512-4eFkMOhpGbTxBQ3AMzVf0haUX2uTur7DpWiHzWyTURa28BVJJtOkcb9Ok5TV0YvEPG61DODPW7ZUATbJTslioQ== - 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-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" - integrity sha512-iNZ576iTOGcfllftB73cPB5AN+XUQAT/T8xzsILsghXC1o8gJUqe3RHlcDqagu+biFpYQ61KQrZZJza8eRSYqw== - dependencies: - ethereumjs-abi "git+https://github.com/ethereumjs/ethereumjs-abi.git" - ethereumjs-util "^5.1.1" - -eth-tx-summary@^3.1.2: - version "3.2.4" - resolved "https://registry.yarnpkg.com/eth-tx-summary/-/eth-tx-summary-3.2.4.tgz#e10eb95eb57cdfe549bf29f97f1e4f1db679035c" - 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" - resolved "https://registry.yarnpkg.com/ethashjs/-/ethashjs-0.0.8.tgz#227442f1bdee409a548fb04136e24c874f3aa6f9" - integrity sha512-/MSbf/r2/Ld8o0l15AymjOTlPqpN8Cr4ByUEA9GtR4x0yAh3TdtDzEg29zMjXCNPI7u6E5fOQdj/Cf9Tc7oVNw== - dependencies: - async "^2.1.2" - buffer-xor "^2.0.1" - ethereumjs-util "^7.0.2" - miller-rabin "^4.0.0" - -ethereum-blockies-base64@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/ethereum-blockies-base64/-/ethereum-blockies-base64-1.0.2.tgz#4aebca52142bf4d16a3144e6e2b59303e39ed2b3" - integrity sha512-Vg2HTm7slcWNKaRhCUl/L3b4KrB8ohQXdd5Pu3OI897EcR6tVRvUqdTwAyx+dnmoDzj8e2bwBLDQ50ByFmcz6w== - dependencies: - pnglib "0.0.1" - -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: - 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" - integrity sha512-EoltVQTRNg2Uy4o84qpa2aXymXDJhxm7eos/ACOg0DG4baAbMjhbdAEsx9GeE8sC3XCxnYvrrzZDH8D8MtA2iQ== - -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" - 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" - -ethereum-cryptography@^1.0.3, ethereum-cryptography@^1.1.2: - version "1.2.0" - 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" - "@noble/secp256k1" "1.7.1" - "@scure/bip32" "1.1.5" - "@scure/bip39" "1.1.1" - -ethereum-cryptography@^2.0.0, ethereum-cryptography@^2.1.2: - version "2.1.2" - 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" - "@noble/hashes" "1.3.1" - "@scure/bip32" "1.3.1" - "@scure/bip39" "1.2.1" - -ethereum-waffle@^3.4.4: - version "3.4.4" - resolved "https://registry.yarnpkg.com/ethereum-waffle/-/ethereum-waffle-3.4.4.tgz#1378b72040697857b7f5e8f473ca8f97a37b5840" - integrity sha512-PA9+jCjw4WC3Oc5ocSMBj5sXvueWQeAbvCA+hUlb6oFgwwKyq5ka3bWQ7QZcjzIX+TdFkxP4IbFmoY2D8Dkj9Q== - dependencies: - "@ethereum-waffle/chai" "^3.4.4" - "@ethereum-waffle/compiler" "^3.4.4" - "@ethereum-waffle/mock-contract" "^3.4.4" - "@ethereum-waffle/provider" "^3.4.4" - ethers "^5.0.1" - -ethereumjs-abi@0.6.5: - version "0.6.5" - resolved "https://registry.yarnpkg.com/ethereumjs-abi/-/ethereumjs-abi-0.6.5.tgz#5a637ef16ab43473fa72a29ad90871405b3f5241" - integrity sha512-rCjJZ/AE96c/AAZc6O3kaog4FhOsAViaysBxqJNy2+LHP0ttH0zkZ7nXdVHOAyt6lFwLO0nlCwWszysG/ao1+g== - dependencies: - bn.js "^4.10.0" - ethereumjs-util "^4.3.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": - version "0.6.8" - resolved "git+https://github.com/ethereumjs/ethereumjs-abi.git#ee3994657fa7a427238e6ba92a84d0b529bbcde0" - dependencies: - bn.js "^4.11.8" - ethereumjs-util "^6.0.0" - -ethereumjs-account@3.0.0, ethereumjs-account@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ethereumjs-account/-/ethereumjs-account-3.0.0.tgz#728f060c8e0c6e87f1e987f751d3da25422570a9" - integrity sha512-WP6BdscjiiPkQfF9PVfMcwx/rDvfZTjFKY0Uwc09zSQr9JfIVH87dYIJu0gNhBhpmovV4yq295fdllS925fnBA== - dependencies: - ethereumjs-util "^6.0.0" - rlp "^2.2.1" - safe-buffer "^5.1.1" - -ethereumjs-account@^2.0.3: - version "2.0.5" - resolved "https://registry.yarnpkg.com/ethereumjs-account/-/ethereumjs-account-2.0.5.tgz#eeafc62de544cb07b0ee44b10f572c9c49e00a84" - integrity sha512-bgDojnXGjhMwo6eXQC0bY6UK2liSFUSMwwylOmQvZbSl/D7NXQ3+vrGO46ZeOgjGfxXmgIeVNDIiHw7fNZM4VA== - dependencies: - ethereumjs-util "^5.0.0" - rlp "^2.0.0" - safe-buffer "^5.1.1" - -ethereumjs-block@2.2.2, ethereumjs-block@^2.2.2, ethereumjs-block@~2.2.0, ethereumjs-block@~2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz#c7654be7e22df489fda206139ecd63e2e9c04965" - 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-block@^1.2.2, ethereumjs-block@^1.4.1, ethereumjs-block@^1.6.0: - version "1.7.1" - resolved "https://registry.yarnpkg.com/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz#78b88e6cc56de29a6b4884ee75379b6860333c3f" - 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-blockchain@^4.0.3: - version "4.0.4" - resolved "https://registry.yarnpkg.com/ethereumjs-blockchain/-/ethereumjs-blockchain-4.0.4.tgz#30f2228dc35f6dcf94423692a6902604ae34960f" - integrity sha512-zCxaRMUOzzjvX78DTGiKjA+4h2/sF0OYL1QuPux0DHpyq8XiNoF5GYHtb++GUxVlMsMfZV7AVyzbtgcRdIcEPQ== - 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.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/ethereumjs-common/-/ethereumjs-common-1.5.0.tgz#d3e82fc7c47c0cef95047f431a99485abc9bb1cd" - integrity sha512-SZOjgK1356hIY7MRj3/ma5qtfr/4B5BL+G4rP/XSMYr2z1H5el4RX5GReYCKmQmYI/nSBmRnwrZ17IfHuG0viQ== - -ethereumjs-common@^1.1.0, ethereumjs-common@^1.3.2, ethereumjs-common@^1.5.0: - version "1.5.2" - resolved "https://registry.yarnpkg.com/ethereumjs-common/-/ethereumjs-common-1.5.2.tgz#2065dbe9214e850f2e955a80e650cb6999066979" - integrity sha512-hTfZjwGX52GS2jcVO6E2sx4YuFnf0Fhp5ylo4pEPhEffNln7vS59Hr5sLnp3/QCazFLluuBZ+FZ6J5HTp0EqCA== - -ethereumjs-tx@2.1.2, ethereumjs-tx@^2.1.1, ethereumjs-tx@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz#5dfe7688bf177b45c9a23f86cf9104d47ea35fed" - integrity sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw== - dependencies: - ethereumjs-common "^1.5.0" - ethereumjs-util "^6.0.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.yarnpkg.com/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz#88323a2d875b10549b8347e09f4862b546f3d89a" - integrity sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA== - dependencies: - ethereum-common "^0.0.18" - ethereumjs-util "^5.0.0" - -ethereumjs-util@6.2.1, 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.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz#fcb4e4dd5ceacb9d2305426ab1a5cd93e3163b69" - 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@^4.3.0: - version "4.5.1" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-4.5.1.tgz#f4bf9b3b515a484e3cc8781d61d9d980f7c83bd0" - integrity sha512-WrckOZ7uBnei4+AKimpuF1B3Fv25OmoRgmYCpGsP7u8PFxXAmAgiJSYT2kRWnt6fVIlKaQlZvuwXp7PIrmn3/w== - dependencies: - bn.js "^4.8.0" - create-hash "^1.1.2" - elliptic "^6.5.2" - ethereum-cryptography "^0.1.3" - rlp "^2.0.0" - -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.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz#a833f0e5fca7e5b361384dc76301a721f537bf65" - 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@^7.0.2, ethereumjs-util@^7.1.0, ethereumjs-util@^7.1.5: - version "7.1.5" - 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" - bn.js "^5.1.2" - create-hash "^1.1.2" - ethereum-cryptography "^0.1.3" - rlp "^2.2.4" - -ethereumjs-vm@4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/ethereumjs-vm/-/ethereumjs-vm-4.2.0.tgz#e885e861424e373dbc556278f7259ff3fca5edab" - integrity sha512-X6qqZbsY33p5FTuZqCnQ4+lo957iUJMM6Mpa6bL4UW0dxM6WmDSHuI4j/zOp1E2TDKImBGCJA9QPfc08PaNubA== - 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-vm@^2.1.0, ethereumjs-vm@^2.3.4, ethereumjs-vm@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz#76243ed8de031b408793ac33907fb3407fe400c6" - 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" - -ethereumjs-wallet@0.6.5: - version "0.6.5" - resolved "https://registry.yarnpkg.com/ethereumjs-wallet/-/ethereumjs-wallet-0.6.5.tgz#685e9091645cee230ad125c007658833991ed474" - integrity sha512-MDwjwB9VQVnpp/Dc1XzA6J1a3wgHQ4hSvA1uWNatdpOrtCbPVuQSKSyRnjLvS0a+KKMw2pvQ9Ybqpb3+eW8oNA== - 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@^5.0.1, ethers@^5.0.2, ethers@^5.0.3, ethers@^5.4.7, ethers@^5.5.1, ethers@^5.5.2, ethers@^5.7.1, ethers@^5.7.2: - version "5.7.2" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.2.tgz#3a7deeabbb8c030d4126b24f84e525466145872e" - integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg== - 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" - -ethjs-unit@0.1.6: - version "0.1.6" - 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.6, ethjs-util@^0.1.3, ethjs-util@^0.1.6: - version "0.1.6" - 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" - strip-hex-prefix "1.0.0" - -event-target-shim@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" - integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== - -eventemitter3@4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.4.tgz#b5463ace635a083d018bdc7c917b4c5f10a85384" - integrity sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ== - -eventemitter3@^4.0.0, eventemitter3@^4.0.4: - version "4.0.7" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" - integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== - -events@^3.0.0, events@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" - integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== - -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - 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" - safe-buffer "^5.1.1" - -execa@5.1.1, execa@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" - integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.0" - human-signals "^2.1.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.1" - onetime "^5.1.2" - signal-exit "^3.0.3" - strip-final-newline "^2.0.0" - -execa@^3.0.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-3.4.0.tgz#c08ed4550ef65d858fac269ffc8572446f37eb89" - integrity sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g== - dependencies: - cross-spawn "^7.0.0" - get-stream "^5.0.0" - human-signals "^1.1.1" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.0" - onetime "^5.1.0" - p-finally "^2.0.0" - signal-exit "^3.0.2" - strip-final-newline "^2.0.0" - -execa@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-6.1.0.tgz#cea16dee211ff011246556388effa0818394fb20" - integrity sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.1" - human-signals "^3.0.1" - is-stream "^3.0.0" - merge-stream "^2.0.0" - npm-run-path "^5.1.0" - onetime "^6.0.0" - signal-exit "^3.0.7" - strip-final-newline "^3.0.0" - -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - integrity sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA== - 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-logging@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/express-logging/-/express-logging-1.1.1.tgz#62839618cbab5bb3610f1a1c1485352fe9d26c2a" - integrity sha512-1KboYwxxCG5kwkJHR5LjFDTD1Mgl8n4PIMcCuhhd/1OqaxlC68P3QKbvvAbZVUtVgtlxEdTgSUwf6yxwzRCuuA== - dependencies: - on-headers "^1.0.0" - -express@4.18.2, express@^4.14.0: - version "4.18.2" - resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" - 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" - -ext-list@^2.0.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/ext-list/-/ext-list-2.2.2.tgz#0b98e64ed82f5acf0f2931babf69212ef52ddd37" - integrity sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA== - dependencies: - mime-db "^1.28.0" - -ext-name@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ext-name/-/ext-name-5.0.0.tgz#70781981d183ee15d13993c8822045c506c8f0a6" - integrity sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ== - dependencies: - ext-list "^2.0.0" - sort-keys-length "^1.0.0" - -ext@^1.1.2: - version "1.7.0" - resolved "https://registry.yarnpkg.com/ext/-/ext-1.7.0.tgz#0ea4383c0103d60e70be99e9a7f11027a33c4f5f" - integrity sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw== - dependencies: - type "^2.7.2" - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug== - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - integrity sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q== - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - -extend@^3.0.2, extend@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -external-editor@^3.0.3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" - integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== - dependencies: - chardet "^0.7.0" - iconv-lite "^0.4.24" - tmp "^0.0.33" - -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== - 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" - -extract-files@^11.0.0: - version "11.0.0" - resolved "https://registry.yarnpkg.com/extract-files/-/extract-files-11.0.0.tgz#b72d428712f787eef1f5193aff8ab5351ca8469a" - integrity sha512-FuoE1qtbJ4bBVvv94CC7s0oTnKUGvQs+Rjf1L2SJFfS+HTVVjhPFtehPdQ0JiGPqVNfSSZvL5yzHHQq2Z4WNhQ== - -extract-files@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/extract-files/-/extract-files-9.0.0.tgz#8a7744f2437f81f5ed3250ed9f1550de902fe54a" - integrity sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ== - -extract-zip@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" - integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== - dependencies: - debug "^4.1.1" - get-stream "^5.1.0" - yauzl "^2.10.0" - optionalDependencies: - "@types/yauzl" "^2.9.1" - -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - 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== - -eyes@0.1.x, eyes@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0" - integrity sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ== - -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" - integrity sha512-Tgq37lkc9pUIgIKw5uitNUKcgcYL3R6JvXtKQbOf/ZSavXbidsksgp/pAY6p//uhw0I4yoMsvTSovvVIsk/qxA== - dependencies: - checkpoint-store "^1.1.0" - -fast-content-type-parse@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fast-content-type-parse/-/fast-content-type-parse-1.1.0.tgz#4087162bf5af3294d4726ff29b334f72e3a1092c" - integrity sha512-fBHHqSTFLVnR61C+gltJuE5GkVQMV0S2nqUO8TJ+5Z3qAKG8vAx4FKai1s5jq/inV1+sREynIWSuQ6HgoSXpDQ== - -fast-decode-uri-component@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz#46f8b6c22b30ff7a81357d4f59abfae938202543" - integrity sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg== - -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" - 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" - integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== - -fast-equals@^3.0.1: - version "3.0.3" - resolved "https://registry.yarnpkg.com/fast-equals/-/fast-equals-3.0.3.tgz#8e6cb4e51ca1018d87dd41982ef92758b3e4197f" - integrity sha512-NCe8qxnZFARSHGztGMZOO/PC1qa5MIFB5Hp66WdzbCRAz8U8US3bx1UTgLS49efBQPcUtO9gf5oVEY8o7y/7Kg== - -fast-fifo@^1.0.0, fast-fifo@^1.1.0, fast-fifo@^1.2.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/fast-fifo/-/fast-fifo-1.3.2.tgz#286e31de96eb96d38a97899815740ba2a4f3640c" - integrity sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ== - -fast-glob@^3.2.12, fast-glob@^3.2.5, fast-glob@^3.2.9, fast-glob@^3.3.0: - 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" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - -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" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fast-json-stringify@^5.7.0: - version "5.9.1" - resolved "https://registry.yarnpkg.com/fast-json-stringify/-/fast-json-stringify-5.9.1.tgz#c304b9dd4e5c84a62510246b7ba9f99ac4656ea5" - integrity sha512-NMrf+uU9UJnTzfxaumMDXK1NWqtPCfGoM9DYIE+ESlaTQqjlANFBy0VAbsm6FB88Mx0nceyi18zTo5kIEUlzxg== - dependencies: - "@fastify/deepmerge" "^1.0.0" - ajv "^8.10.0" - ajv-formats "^2.1.1" - fast-deep-equal "^3.1.3" - fast-uri "^2.1.0" - json-schema-ref-resolver "^1.0.1" - rfdc "^1.2.0" - -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" - integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== - -fast-querystring@^1.0.0, fast-querystring@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/fast-querystring/-/fast-querystring-1.1.2.tgz#a6d24937b4fc6f791b4ee31dcb6f53aeafb89f53" - integrity sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg== - dependencies: - fast-decode-uri-component "^1.0.1" - -fast-redact@^3.0.0, fast-redact@^3.1.1: - version "3.3.0" - resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-3.3.0.tgz#7c83ce3a7be4898241a46560d51de10f653f7634" - integrity sha512-6T5V1QK1u4oF+ATxs1lWUmlEk6P2T9HqJG3e2DnHOdVgZy2rFJBoEnrIedcTXlkAHU/zKC+7KETJ+KGGKwxgMQ== - -fast-safe-stringify@^2.0.7, fast-safe-stringify@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" - integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== - -fast-text-encoding@^1.0.0: - version "1.0.6" - resolved "https://registry.yarnpkg.com/fast-text-encoding/-/fast-text-encoding-1.0.6.tgz#0aa25f7f638222e3396d72bf936afcf1d42d6867" - integrity sha512-VhXlQgj9ioXCqGstD37E/HBeqEGV/qOD/kmbVG8h5xKBYvM1L3lR1Zn4555cQ8GkYbJa8aJSipLPndE1k6zK2w== - -fast-uri@^2.0.0, fast-uri@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-2.3.0.tgz#bdae493942483d299e7285dcb4627767d42e2793" - integrity sha512-eel5UKGn369gGEWOqBShmFJWfq/xSJvsgDzgLYC845GneayWvXBf0lJCBn5qTABfewy1ZDPoaR5OZCP+kssfuw== - -fast-url-parser@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/fast-url-parser/-/fast-url-parser-1.1.3.tgz#f4af3ea9f34d8a271cf58ad2b3759f431f0b318d" - integrity sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ== - dependencies: - punycode "^1.3.2" - -fast-write-atomic@~0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fast-write-atomic/-/fast-write-atomic-0.2.1.tgz#7ee8ef0ce3c1f531043c09ae8e5143361ab17ede" - integrity sha512-WvJe06IfNYlr+6cO3uQkdKdy3Cb1LlCJSF8zRs2eT8yuhdbSlR9nIt+TgQ92RUxiRrQm+/S7RARnMfCs5iuAjw== - -fastest-levenshtein@1.0.16: - version "1.0.16" - resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5" - integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== - -fastfile@0.0.18: - version "0.0.18" - resolved "https://registry.yarnpkg.com/fastfile/-/fastfile-0.0.18.tgz#2b69bbbfd2fcccc9bc8099c27de1379b89756a4b" - integrity sha512-q03PTKc+wptis4WmuFOwPNQx2p5myFUrl/dMgRlW9mymc1Egyc14JPHgiGnWK+sJ0+dBl2Vwtfh5GfSQltYOpw== - -fastfile@0.0.19: - version "0.0.19" - resolved "https://registry.yarnpkg.com/fastfile/-/fastfile-0.0.19.tgz#02cef9ade123b0a74adb794f4a1abcfa5719fd46" - integrity sha512-tz9nWR5KYb6eR2odFQ7oxqEkx8F3YQZ6NBJoJR92YEG3DqYOqyxMck8PKvTVNKx3uwvOqGnLXNScnqpdHRdHGQ== - -fastfile@0.0.20: - version "0.0.20" - resolved "https://registry.yarnpkg.com/fastfile/-/fastfile-0.0.20.tgz#794a143d58cfda2e24c298e5ef619c748c8a1879" - integrity sha512-r5ZDbgImvVWCP0lA/cGNgQcZqR+aYdFx3u+CtJqUE510pBUVGMn4ulL/iRTI4tACTYsNJ736uzFxEBXesPAktA== - -fastify-plugin@^4.0.0: - version "4.5.1" - resolved "https://registry.yarnpkg.com/fastify-plugin/-/fastify-plugin-4.5.1.tgz#44dc6a3cc2cce0988bc09e13f160120bbd91dbee" - integrity sha512-stRHYGeuqpEZTL1Ef0Ovr2ltazUT9g844X5z/zEBFLG8RYlpDiOCIG+ATvYEp+/zmc7sN29mcIMp8gvYplYPIQ== - -fastify@4.17.0: - version "4.17.0" - resolved "https://registry.yarnpkg.com/fastify/-/fastify-4.17.0.tgz#b2c8245e572edef0b02a167d2d411a3c8a46d01a" - integrity sha512-tzuY1tgWJo2Y6qEKwmLhFvACUmr68Io2pqP/sDKU71KRM6A6R3DrCDqLGqANbeLZcKUfdfY58ut35CGqemcTgg== - dependencies: - "@fastify/ajv-compiler" "^3.5.0" - "@fastify/error" "^3.0.0" - "@fastify/fast-json-stringify-compiler" "^4.3.0" - abstract-logging "^2.0.1" - avvio "^8.2.0" - fast-content-type-parse "^1.0.0" - fast-json-stringify "^5.7.0" - find-my-way "^7.6.0" - light-my-request "^5.6.1" - pino "^8.5.0" - process-warning "^2.0.0" - proxy-addr "^2.0.7" - rfdc "^1.3.0" - secure-json-parse "^2.5.0" - semver "^7.3.7" - tiny-lru "^11.0.1" - -fastq@^1.6.0, fastq@^1.6.1: - version "1.15.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" - integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== - dependencies: - reusify "^1.0.4" - -fb-watchman@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" - integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== - dependencies: - bser "2.1.1" - -fbjs-css-vars@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz#216551136ae02fe255932c3ec8775f18e2c078b8" - integrity sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ== - -fbjs@^3.0.0: - version "3.0.5" - resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-3.0.5.tgz#aa0edb7d5caa6340011790bd9249dbef8a81128d" - integrity sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg== - dependencies: - cross-fetch "^3.1.5" - fbjs-css-vars "^1.0.0" - loose-envify "^1.0.0" - object-assign "^4.1.0" - promise "^7.1.1" - setimmediate "^1.0.5" - ua-parser-js "^1.0.35" - -fd-slicer@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" - integrity sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g== - dependencies: - pend "~1.2.0" - -fdir@^6.0.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.1.1.tgz#316b58145a05223b75c8b371e80bb3bad8f1441e" - integrity sha512-QfKBVg453Dyn3mr0Q0O+Tkr1r79lOTAKSi9f/Ot4+qVEwxWhav2Z+SudrG9vQjM2aYRMQQZ2/Q1zdA8ACM1pDg== - -fecha@^4.2.0: - version "4.2.3" - resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.3.tgz#4d9ccdbc61e8629b259fdca67e65891448d569fd" - integrity sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw== - -fetch-blob@^3.1.2, fetch-blob@^3.1.4: - version "3.2.0" - resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9" - integrity sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ== - dependencies: - node-domexception "^1.0.0" - web-streams-polyfill "^3.0.3" - -fetch-node-website@^7.3.0: - version "7.3.0" - resolved "https://registry.yarnpkg.com/fetch-node-website/-/fetch-node-website-7.3.0.tgz#89823c96087935eeb2e80ce0e7a6557d27761bb7" - integrity sha512-/wayUHbdVUWrD72aqRNNrr6+MHnCkumZgNugN0RfiWJpbNJUdAkMk4Z18MGayGZVVqYXR1RWrV+bIFEt5HuBZg== - dependencies: - cli-progress "^3.11.2" - colors-option "^4.4.0" - figures "^5.0.0" - got "^12.3.1" - is-plain-obj "^4.1.0" - -fetch-ponyfill@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/fetch-ponyfill/-/fetch-ponyfill-4.1.0.tgz#ae3ce5f732c645eab87e4ae8793414709b239893" - integrity sha512-knK9sGskIg2T7OnYLdZ2hZXn0CtDrAIBxYQLpmEf0BqfdWnwmM1weccUl5+4EdA44tzNSFAuxITPbXtPehUB3g== - dependencies: - node-fetch "~1.7.1" - -ffiasm@0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/ffiasm/-/ffiasm-0.1.1.tgz#34ca6a00a875b5a926f66fd46e79530194e9c312" - integrity sha512-irMMHiR9JJ7BVBrAhtliUawxVdPYSdyl81taUYJ4C1mJ0iw2ueThE/qtr0J8B83tsIY8HJvh0lg5F+6ClK4xpA== - dependencies: - big-integer "^1.6.48" - ejs "^3.0.1" - yargs "^15.3.1" - -ffiasm@0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/ffiasm/-/ffiasm-0.1.3.tgz#9d636448e31ce676c0e6684102d4d44bcf58c71f" - integrity sha512-/+rZrpKO98W5BSqy2E6vxVaNh63MnRPA+1H7ufmpOrbZjG2pIEPCYbn5g7q2AXaX+75IMKasi4IOFrwPkxJXVg== - dependencies: - big-integer "^1.6.48" - ejs "^3.0.1" - yargs "^15.3.1" - -ffjavascript@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/ffjavascript/-/ffjavascript-0.1.0.tgz#456256c259654cc1ce864c6762b0e76ee1714100" - integrity sha512-dmKlUasSfvUcxBm8nCSKl2x7EFJsXA7OVP8XLFA03T2+6mAc3IiVLC2ambEVOcMOhyhl0vJfVZjM9f9d38D1rw== - dependencies: - big-integer "^1.6.48" - -ffjavascript@0.2.22: - version "0.2.22" - resolved "https://registry.yarnpkg.com/ffjavascript/-/ffjavascript-0.2.22.tgz#101f33db330b0f6a0c10dec22ebf5725618a8a7d" - integrity sha512-EsVqap2Txm17bKW0z/jXCX3M7rQ++nQUAJY8alWDpyhjRj90xjl6GLeVSKZQ8rOFDQ/SFFXcEB8w9X8Boxid+w== - dependencies: - big-integer "^1.6.48" - wasmcurves "0.0.12" - worker-threads "^1.0.0" - -ffjavascript@0.2.34: - version "0.2.34" - resolved "https://registry.yarnpkg.com/ffjavascript/-/ffjavascript-0.2.34.tgz#e0607d1635ad06e8519268af475bc90deac60fbd" - integrity sha512-fq/qfJluC4spiOD1lp5jfckZVnS0o0kI5eKXVLw7UKwIwbNr+NBMBveBVcidSfMizF87T6wb7NBtLSdckQiAnQ== - dependencies: - big-integer "^1.6.48" - mocha "^8.2.1" - wasmcurves "0.0.14" - worker-threads "^1.0.0" - -ffjavascript@0.2.35: - version "0.2.35" - resolved "https://registry.yarnpkg.com/ffjavascript/-/ffjavascript-0.2.35.tgz#9166d95173b1c0a743b455bb03a72b581922a42e" - integrity sha512-xnC51tWbi0ah4SH+02jEfJyO+P+NiZWnxQrLDLtBYY1Dv3QM5ydxzd+gxnLEfWdT8i1bMM5pIh5P25l6fNCaVQ== - dependencies: - big-integer "^1.6.48" - wasmcurves "0.0.14" - web-worker "^1.0.0" - -ffjavascript@0.2.37: - version "0.2.37" - resolved "https://registry.yarnpkg.com/ffjavascript/-/ffjavascript-0.2.37.tgz#13b93c0104013f99d8959e159430d6aa76bd9a6c" - integrity sha512-wWOkQB07d6eKFRMMtryTVsWrMsR4ImdikhEuu6ZcFYaxufJaBKUiQHYxsPzZEScPa+okkHzf1/2YVPU7xUIHMQ== - dependencies: - big-integer "^1.6.48" - wasmcurves "0.0.14" - web-worker "^1.0.0" - -ffjavascript@0.2.56: - version "0.2.56" - resolved "https://registry.yarnpkg.com/ffjavascript/-/ffjavascript-0.2.56.tgz#3509f98fcbd3e44ea93cd23519071b76d6eae433" - integrity sha512-em6G5Lrj7ucIqj4TYEgyoHs/j99Urwwqa4+YxEVY2hggnpRimVj+noX5pZQTxI1pvtiekZI4rG65JBf0xraXrg== - dependencies: - wasmbuilder "0.0.16" - wasmcurves "0.2.0" - web-worker "^1.2.0" - -ffjavascript@0.2.60: - version "0.2.60" - resolved "https://registry.yarnpkg.com/ffjavascript/-/ffjavascript-0.2.60.tgz#4d8ae613d6bf4e98b3cc29ba10c626f5853854cf" - integrity sha512-T/9bnEL5xAZRDbQoEMf+pM9nrhK+C3JyZNmqiWub26EQorW7Jt+jR54gpqDhceA4Nj0YctPQwYnl8xa52/A26A== - dependencies: - wasmbuilder "0.0.16" - wasmcurves "0.2.2" - web-worker "^1.2.0" - -ffjavascript@^0.2.30, ffjavascript@^0.2.38, ffjavascript@^0.2.39, ffjavascript@^0.2.45, ffjavascript@^0.2.48, ffjavascript@^0.2.62: - version "0.2.62" - resolved "https://registry.yarnpkg.com/ffjavascript/-/ffjavascript-0.2.62.tgz#f508dfe662a70181598ec5eb8ce5127eb342f624" - integrity sha512-uJ7MTrdzhX/3f+hxn0XhdXbJCqYZJSBB6y2/ui4t21vKYVjyTMlU80pPXu40ir6qpqbrdzUeKdlOdJ0aFG9UNA== - dependencies: - wasmbuilder "0.0.16" - wasmcurves "0.2.2" - web-worker "^1.2.0" - -ffwasm@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/ffwasm/-/ffwasm-0.0.7.tgz#23bb9a3537ecc87c0f24fcfb3a9ddd0e86855fff" - integrity sha512-17cTLzv7HHAKqZbX8MvHxjSrR0yDdn1sh4TVsTbAvO9e6klhFicnyoVXc/sCuViV/M8g65sCmVrAmoPCZp1YkQ== - dependencies: - big-integer "^1.6.48" - wasmbuilder "0.0.10" - -figures@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" - integrity sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ== - dependencies: - escape-string-regexp "^1.0.5" - object-assign "^4.1.0" - -figures@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" - integrity sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA== - dependencies: - escape-string-regexp "^1.0.5" - -figures@^3.0.0, figures@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" - integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== - dependencies: - escape-string-regexp "^1.0.5" - -figures@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/figures/-/figures-4.0.1.tgz#27b26609907bc888b3e3b0ef5403643f80aa2518" - integrity sha512-rElJwkA/xS04Vfg+CaZodpso7VqBknOYbzi6I76hI4X80RUjkSxO2oAyPmGbuXUppywjqndOrQDl817hDnI++w== - dependencies: - escape-string-regexp "^5.0.0" - is-unicode-supported "^1.2.0" - -figures@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-5.0.0.tgz#126cd055052dea699f8a54e8c9450e6ecfc44d5f" - integrity sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg== - dependencies: - escape-string-regexp "^5.0.0" - is-unicode-supported "^1.2.0" - -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" - integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== - dependencies: - flat-cache "^3.0.4" - -file-type@^18.5.0: - version "18.7.0" - resolved "https://registry.yarnpkg.com/file-type/-/file-type-18.7.0.tgz#cddb16f184d6b94106cfc4bb56978726b25cb2a2" - integrity sha512-ihHtXRzXEziMrQ56VSgU7wkxh55iNchFkosu7Y9/S+tXHdKyrGjVK0ujbqNnsxzea+78MaLhN6PGmfYSAv1ACw== - dependencies: - readable-web-to-node-stream "^3.0.2" - strtok3 "^7.0.0" - token-types "^5.0.1" - -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" - integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== - -filelist@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5" - integrity sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q== - dependencies: - minimatch "^5.0.1" - -filename-reserved-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/filename-reserved-regex/-/filename-reserved-regex-3.0.0.tgz#3d5dd6d4e2d73a3fed2ebc4cd0b3448869a081f7" - integrity sha512-hn4cQfU6GOT/7cFHXBqeBg2TbrMBgdD0kcjLhvSQYYwm3s4B6cjvBfb7nBALJLAXqmU5xajSa7X2NnUud/VCdw== - -filenamify@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/filenamify/-/filenamify-5.1.1.tgz#a1ccc5ae678a5e34f578afcb9b72898264d166d2" - integrity sha512-M45CbrJLGACfrPOkrTp3j2EcO9OBkKUYME0eiqOCa7i2poaklU0jhlIaMlr8ijLorT0uLAzrn3qXOp5684CkfA== - dependencies: - filename-reserved-regex "^3.0.0" - strip-outer "^2.0.0" - trim-repeated "^2.0.0" - -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ== - 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.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -filter-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/filter-obj/-/filter-obj-1.1.0.tgz#9b311112bc6c6127a16e016c6c5d7f19e0805c5b" - integrity sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ== - -filter-obj@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/filter-obj/-/filter-obj-3.0.0.tgz#dba2f9e64e921758ed9a51028ca2ed02d4cccbcf" - integrity sha512-oQZM+QmVni8MsYzcq9lgTHD/qeLqaG8XaOPOW7dzuSafVxSUlH1+1ZDefj2OD9f2XsmG5lFl2Euc9NI4jgwFWg== - -filter-obj@^5.0.0, filter-obj@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/filter-obj/-/filter-obj-5.1.0.tgz#5bd89676000a713d7db2e197f660274428e524ed" - integrity sha512-qWeTREPoT7I0bifpPUXtxkZJ1XJzxWtfoWWkdVGqa+eCr3SHW/Ocp89o8vLvbUuQnadybJpjOKu4V+RwO6sGng== - -finalhandler@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" - 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" - -find-my-way@^7.6.0: - version "7.7.0" - resolved "https://registry.yarnpkg.com/find-my-way/-/find-my-way-7.7.0.tgz#d7b51ca6046782bcddd5a8435e99ad057e5a8876" - integrity sha512-+SrHpvQ52Q6W9f3wJoJBbAQULJuNEEQwBvlvYwACDhBTLOTMiQ0HYWh4+vC3OivGP2ENcTI1oKlFA2OepJNjhQ== - dependencies: - fast-deep-equal "^3.1.3" - fast-querystring "^1.0.0" - safe-regex2 "^2.0.0" - -find-replace@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/find-replace/-/find-replace-1.0.3.tgz#b88e7364d2d9c959559f388c66670d6130441fa0" - integrity sha512-KrUnjzDCD9426YnCP56zGYy/eieTnhtK6Vn++j+JJzmlsWWwEkDnsyVF575spT6HJ6Ow9tlbT3TQTDsa+O4UWA== - dependencies: - array-back "^1.0.4" - test-value "^2.1.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@6.3.0, find-up@^6.0.0, find-up@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-6.3.0.tgz#2abab3d3280b2dc7ac10199ef324c4e002c8c790" - integrity sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw== - dependencies: - locate-path "^7.1.0" - path-exists "^5.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" - integrity sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA== - dependencies: - path-exists "^2.0.0" - pinkie-promise "^2.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" - 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.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" - 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" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -find-yarn-workspace-root@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/find-yarn-workspace-root/-/find-yarn-workspace-root-1.2.1.tgz#40eb8e6e7c2502ddfaa2577c176f221422f860db" - integrity sha512-dVtfb0WuQG+8Ag2uWkbG79hOUzEsRrhBzgfn86g2sJPkzmcpGdghbNTfUKGTxymFrY/tLIodDzLoW9nOJ4FY8Q== - dependencies: - fs-extra "^4.0.3" - micromatch "^3.1.4" - -find-yarn-workspace-root@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz#f47fb8d239c900eb78179aa81b66673eac88f7bd" - integrity sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ== - dependencies: - micromatch "^4.0.2" - -flat-cache@^3.0.4: - 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.9" - keyv "^4.5.3" - rimraf "^3.0.2" - -flat@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" - integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== - -flatted@^3.2.9: - version "3.2.9" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf" - integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== - -floating-vue@^2.0.0-beta.20: - version "2.0.0-beta.24" - resolved "https://registry.yarnpkg.com/floating-vue/-/floating-vue-2.0.0-beta.24.tgz#ad4775c55581f8a3c219cf614d8e24a6ae4846e0" - integrity sha512-URSzP6YXaF4u1oZ9XGL8Sn8puuM7ivp5jkOUrpy5Q1mfo9BfGppJOn+ierTmsSUfJEeHBae8KT7r5DeI3vQIEw== - dependencies: - "@floating-ui/dom" "~1.1.1" - vue-resize "^2.0.0-alpha.1" - -flow-stoplight@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/flow-stoplight/-/flow-stoplight-1.0.0.tgz#4a292c5bcff8b39fa6cc0cb1a853d86f27eeff7b" - integrity sha512-rDjbZUKpN8OYhB0IE/vY/I8UWO/602IIJEU/76Tv4LvYnwHCk0BCsvz4eRr9n+FQcri7L5cyaXOo0+/Kh4HisA== - -flush-write-stream@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-2.0.0.tgz#6f58e776154f5eefacff92a6e5a681c88ac50f7c" - integrity sha512-uXClqPxT4xW0lcdSBheb2ObVU+kuqUk3Jk64EwieirEXZx9XUrVwp/JuBfKAWaM4T5Td/VL7QLDWPXp/MvGm/g== - dependencies: - inherits "^2.0.3" - readable-stream "^3.1.1" - -fn.name@1.x.x: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fn.name/-/fn.name-1.1.0.tgz#26cad8017967aea8731bc42961d04a3d5988accc" - integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw== - -fnv-plus@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/fnv-plus/-/fnv-plus-1.3.1.tgz#c34cb4572565434acb08ba257e4044ce2b006d67" - integrity sha512-Gz1EvfOneuFfk4yG458dJ3TLJ7gV19q3OM/vVvvHf7eT02Hm1DleB4edsia6ahbKgAYxO9gvyQ1ioWZR+a00Yw== - -focus-trap@^7.5.4: - version "7.5.4" - resolved "https://registry.yarnpkg.com/focus-trap/-/focus-trap-7.5.4.tgz#6c4e342fe1dae6add9c2aa332a6e7a0bbd495ba2" - integrity sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w== - dependencies: - tabbable "^6.2.0" - -folder-walker@3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/folder-walker/-/folder-walker-3.2.0.tgz#98e00e59773f43416a6dcf0926d4c9436f65121d" - integrity sha512-VjAQdSLsl6AkpZNyrQJfO7BXLo4chnStqb055bumZMbRUPpVuPN3a4ktsnRCmrFZjtMlYLkyXiR5rAs4WOpC4Q== - dependencies: - from2 "^2.1.0" - -follow-redirects@^1.0.0, follow-redirects@^1.12.1, follow-redirects@^1.14.0, follow-redirects@^1.15.0: - version "1.15.3" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.3.tgz#fe2f3ef2690afce7e82ed0b44db08165b207123a" - integrity sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q== - -for-each@^0.3.3, for-each@~0.3.3: - version "0.3.3" - 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" - -for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ== - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - 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" - integrity sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg== - -form-data-encoder@^2.1.2: - version "2.1.4" - resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-2.1.4.tgz#261ea35d2a70d48d30ec7a9603130fa5515e9cd5" - integrity sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw== - -form-data@^2.2.0: - version "2.5.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.1.tgz#f2cbec57b5e59e23716e128fe44d4e5dd23895f4" - integrity sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -form-data@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" - integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - -form-data@^4.0.0: - version "4.0.0" - 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" - combined-stream "^1.0.8" - mime-types "^2.1.12" - -form-data@~2.3.2: - version "2.3.3" - 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" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -formdata-polyfill@^4.0.10: - version "4.0.10" - resolved "https://registry.yarnpkg.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz#24807c31c9d402e002ab3d8c720144ceb8848423" - integrity sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g== - dependencies: - fetch-blob "^3.1.2" - -forwarded@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" - integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== - -fp-ts@1.19.3: - version "1.19.3" - 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== - -fraction.js@^4.3.6: - version "4.3.7" - resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7" - integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== - -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA== - dependencies: - map-cache "^0.2.2" - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== - -from2-array@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/from2-array/-/from2-array-0.0.4.tgz#eafc16b65f6e2719bcd57fdc1869005ac1332cd6" - integrity sha512-0G0cAp7sYLobH7ALsr835x98PU/YeVF7wlwxdWbCUaea7wsa7lJfKZUAo6p2YZGZ8F94luCuqHZS3JtFER6uPg== - dependencies: - from2 "^2.0.3" - -from2@^2.0.3, from2@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" - integrity sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g== - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.0" - -fs-constants@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" - integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== - -fs-extra@9.1.0, fs-extra@^9.0.0, fs-extra@^9.1.0: - version "9.1.0" - 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" - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - -fs-extra@^0.30.0: - version "0.30.0" - 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" - jsonfile "^2.1.0" - klaw "^1.0.0" - path-is-absolute "^1.0.0" - rimraf "^2.2.8" - -fs-extra@^4.0.2, fs-extra@^4.0.3: - version "4.0.3" - 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" - 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.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" - integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-extra@^8.1.0: - version "8.1.0" - 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" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-jetpack@^2.2.2: - version "2.4.0" - resolved "https://registry.yarnpkg.com/fs-jetpack/-/fs-jetpack-2.4.0.tgz#6080c4ab464a019d37a404baeb47f32af8835026" - integrity sha512-S/o9Dd7K9A7gicVU32eT8G0kHcmSu0rCVdP79P0MWInKFb8XpTc8Syhoo66k9no+HDshtlh4pUJTws8X+8fdFQ== - dependencies: - minimatch "^3.0.2" - rimraf "^2.6.3" - -fs-minipass@^1.2.7: - version "1.2.7" - 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-minipass@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" - integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== - dependencies: - minipass "^3.0.0" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - -fsevents@~2.3.1, fsevents@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" - integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== - -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.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" - define-properties "^1.2.0" - es-abstract "^1.22.1" - functions-have-names "^1.2.3" - -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" - 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" - integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== - -fuzzy@0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/fuzzy/-/fuzzy-0.1.3.tgz#4c76ec2ff0ac1a36a9dccf9a00df8623078d4ed8" - integrity sha512-/gZffu4ykarLrCiP3Ygsa86UAo1E5vEVlvTrpkKywXSbP9Xhln3oSp9QSV57gEq3JFFpGJ4GZ+5zdEp3FcUh4w== - -ganache-core@^2.13.2, ganache-core@^2.7.0: - version "2.13.2" - resolved "https://registry.yarnpkg.com/ganache-core/-/ganache-core-2.13.2.tgz#27e6fc5417c10e6e76e2e646671869d7665814a3" - 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" - -gauge@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-3.0.2.tgz#03bf4441c044383908bcfa0656ad91803259b395" - integrity sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q== - dependencies: - aproba "^1.0.3 || ^2.0.0" - color-support "^1.1.2" - console-control-strings "^1.0.0" - has-unicode "^2.0.1" - object-assign "^4.1.1" - signal-exit "^3.0.0" - string-width "^4.2.3" - strip-ansi "^6.0.1" - wide-align "^1.1.2" - -gaxios@^4.0.0: - version "4.3.3" - resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-4.3.3.tgz#d44bdefe52d34b6435cc41214fdb160b64abfc22" - integrity sha512-gSaYYIO1Y3wUtdfHmjDUZ8LWaxJQpiavzbF5Kq53akSzvmVg0RfyOcFDbO1KJ/KCGRFz2qG+lS81F0nkr7cRJA== - dependencies: - abort-controller "^3.0.0" - extend "^3.0.2" - https-proxy-agent "^5.0.0" - is-stream "^2.0.0" - node-fetch "^2.6.7" - -gcp-metadata@^4.2.0: - version "4.3.1" - resolved "https://registry.yarnpkg.com/gcp-metadata/-/gcp-metadata-4.3.1.tgz#fb205fe6a90fef2fd9c85e6ba06e5559ee1eefa9" - integrity sha512-x850LS5N7V1F3UcV7PoupzGsyD6iVwTVvsh3tbXfkctZnBnjW5yu5z1/3k3SehF7TyoTIe78rJs02GMMy+LF+A== - dependencies: - gaxios "^4.0.0" - json-bigint "^1.0.0" - -gensync@^1.0.0-beta.2: - version "1.0.0-beta.2" - resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" - integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== - -get-amd-module-type@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/get-amd-module-type/-/get-amd-module-type-5.0.1.tgz#bef38ea3674e1aa1bda9c59c8b0da598582f73f2" - integrity sha512-jb65zDeHyDjFR1loOVk0HQGM5WNwoGB8aLWy3LKCieMKol0/ProHkhO2X1JxojuN10vbz1qNn09MJ7tNp7qMzw== - dependencies: - ast-module-types "^5.0.0" - node-source-walk "^6.0.1" - -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" - 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" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -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, 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.2" - has-proto "^1.0.1" - has-symbols "^1.0.3" - hasown "^2.0.0" - -get-iterator@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/get-iterator/-/get-iterator-1.0.2.tgz#cd747c02b4c084461fac14f48f6b45a80ed25c82" - integrity sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg== - -get-own-enumerable-property-symbols@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" - integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== - -get-package-name@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/get-package-name/-/get-package-name-2.2.0.tgz#34d8438b5aa8b887a7c54cdf09854471cc8836de" - integrity sha512-LmCKVxioe63Fy6KDAQ/mmCSOSSRUE/x4zdrMD+7dU8quF3bGpzvP8mOmq4Dgce3nzU9AgkVDotucNOOg7c27BQ== - -get-package-type@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" - integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== - -get-port-please@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/get-port-please/-/get-port-please-3.1.1.tgz#2556623cddb4801d823c0a6a15eec038abb483be" - integrity sha512-3UBAyM3u4ZBVYDsxOQfJDxEa6XTbpBDrOjp4mf7ExFRt5BKs/QywQQiJsh2B+hxcZLSapWqCRvElUe8DnKcFHA== - -get-port@5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/get-port/-/get-port-5.1.1.tgz#0469ed07563479de6efb986baf053dcd7d4e3193" - integrity sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ== - -get-port@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/get-port/-/get-port-3.2.0.tgz#dd7ce7de187c06c8bf353796ac71e099f0980ebc" - integrity sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg== - -get-port@^6.1.2: - version "6.1.2" - resolved "https://registry.yarnpkg.com/get-port/-/get-port-6.1.2.tgz#c1228abb67ba0e17fb346da33b15187833b9c08a" - integrity sha512-BrGGraKm2uPqurfGVj/z97/zv8dPleC6x9JBNRTrDNtCkkRF4rPwrQXFgL7+I+q8QSdU4ntLQX2D7KIxSy8nGw== - -get-stream@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - -get-stream@^5.0.0, get-stream@^5.1.0: - version "5.2.0" - 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.0, get-stream@^6.0.1: - version "6.0.1" - 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.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" - integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" - -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - integrity sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA== - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== - dependencies: - assert-plus "^1.0.0" - -gh-release-fetch@4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/gh-release-fetch/-/gh-release-fetch-4.0.3.tgz#258b6f6f247af68228510c89140751f38bd4e7a5" - integrity sha512-TOiP1nwLsH5shG85Yt6v6Kjq5JU/44jXyEpbcfPgmj3C829yeXIlx9nAEwQRaxtRF3SJinn2lz7XUkfG9W/U4g== - dependencies: - "@xhmikosr/downloader" "^13.0.0" - node-fetch "^3.3.1" - semver "^7.5.3" - -git-repo-info@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/git-repo-info/-/git-repo-info-2.1.1.tgz#220ffed8cbae74ef8a80e3052f2ccb5179aed058" - integrity sha512-8aCohiDo4jwjOwma4FmYFd3i97urZulL8XL24nIPxuE+GZnfsAyy/g2Shqx6OjUiFKUXZM+Yy+KHnOmmA3FVcg== - -gitconfiglocal@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/gitconfiglocal/-/gitconfiglocal-2.1.0.tgz#07c28685c55cc5338b27b5acbcfe34aeb92e43d1" - integrity sha512-qoerOEliJn3z+Zyn1HW2F6eoYJqKwS6MgC9cztTLUB/xLWX8gD/6T60pKn4+t/d6tP7JlybI7Z3z+I572CR/Vg== - dependencies: - ini "^1.3.2" - -glob-parent@^5.1.2, glob-parent@~5.1.0, glob-parent@~5.1.2: - version "5.1.2" - 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.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.6: - version "7.1.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" - integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== - 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@9.3.4: - version "9.3.4" - resolved "https://registry.yarnpkg.com/glob/-/glob-9.3.4.tgz#e75dee24891a80c25cc7ee1dd327e126b98679af" - integrity sha512-qaSc49hojMOv1EPM4EuyITjDSgSKI0rthoHnvE81tcOi1SCVndHko7auqxdQ14eiQG2NDBJBE86+2xIrbIvrbA== - dependencies: - fs.realpath "^1.0.0" - minimatch "^8.0.2" - minipass "^4.2.4" - path-scurry "^1.6.1" - -glob@^7.0.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.5, glob@~7.2.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.0, glob@^8.0.1, 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" - -global-cache-dir@^4.3.1: - version "4.4.0" - resolved "https://registry.yarnpkg.com/global-cache-dir/-/global-cache-dir-4.4.0.tgz#8921295d32abe0f7768e96acdf7f40a9874050b7" - integrity sha512-bk0gI6IbbphRjAaCJJn5H+T/CcEck5B3a5KBO2BXSDzjFSV+API17w8GA7YPJ6IXJiasW8M0VsEIig1PCHdfOQ== - dependencies: - cachedir "^2.3.0" - path-exists "^5.0.0" - -global-dirs@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.1.tgz#0c488971f066baceda21447aecb1a8b911d22485" - integrity sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA== - dependencies: - ini "2.0.0" - -global@~4.4.0: - version "4.4.0" - 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.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - -globals@^13.19.0: - version "13.23.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.23.0.tgz#ef31673c926a0976e1f61dab4dca57e0c0a8af02" - integrity sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA== - dependencies: - type-fest "^0.20.2" - -globals@^9.18.0: - version "9.18.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" - integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== - -globalthis@^1.0.3: - version "1.0.3" - 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@^11.0.3, globby@^11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" - integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== - 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" - -globby@^13.0.0, globby@^13.1.1: - version "13.2.2" - resolved "https://registry.yarnpkg.com/globby/-/globby-13.2.2.tgz#63b90b1bf68619c2135475cbd4e71e66aa090592" - integrity sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w== - dependencies: - dir-glob "^3.0.1" - fast-glob "^3.3.0" - ignore "^5.2.4" - merge2 "^1.4.1" - slash "^4.0.0" - -"gluegun@https://github.com/edgeandnode/gluegun#v4.3.1-pin-colors-dep": - version "4.3.1" - resolved "https://github.com/edgeandnode/gluegun#b34b9003d7bf556836da41b57ef36eb21570620a" - dependencies: - apisauce "^1.0.1" - app-module-path "^2.2.0" - cli-table3 "~0.5.0" - colors "1.3.3" - cosmiconfig "6.0.0" - cross-spawn "^7.0.0" - ejs "^2.6.1" - enquirer "2.3.4" - execa "^3.0.0" - fs-jetpack "^2.2.2" - lodash.camelcase "^4.3.0" - lodash.kebabcase "^4.1.1" - lodash.lowercase "^4.3.0" - lodash.lowerfirst "^4.3.1" - lodash.pad "^4.5.1" - lodash.padend "^4.6.1" - lodash.padstart "^4.6.1" - lodash.repeat "^4.1.0" - lodash.snakecase "^4.1.1" - lodash.startcase "^4.4.0" - lodash.trim "^4.5.1" - lodash.trimend "^4.5.1" - lodash.trimstart "^4.5.1" - lodash.uppercase "^4.3.0" - lodash.upperfirst "^4.3.1" - ora "^4.0.0" - pluralize "^8.0.0" - ramdasauce "^2.1.0" - semver "^7.0.0" - which "^2.0.0" - yargs-parser "^16.1.0" - -gonzales-pe@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/gonzales-pe/-/gonzales-pe-4.3.0.tgz#fe9dec5f3c557eead09ff868c65826be54d067b3" - integrity sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ== - dependencies: - minimist "^1.2.5" - -google-auth-library@^6.1.3: - version "6.1.6" - resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-6.1.6.tgz#deacdcdb883d9ed6bac78bb5d79a078877fdf572" - integrity sha512-Q+ZjUEvLQj/lrVHF/IQwRo6p3s8Nc44Zk/DALsN+ac3T4HY/g/3rrufkgtl+nZ1TW7DNAw5cTChdVp4apUXVgQ== - dependencies: - arrify "^2.0.0" - base64-js "^1.3.0" - ecdsa-sig-formatter "^1.0.11" - fast-text-encoding "^1.0.0" - gaxios "^4.0.0" - gcp-metadata "^4.2.0" - gtoken "^5.0.4" - jws "^4.0.0" - lru-cache "^6.0.0" - -google-p12-pem@^3.1.3: - version "3.1.4" - resolved "https://registry.yarnpkg.com/google-p12-pem/-/google-p12-pem-3.1.4.tgz#123f7b40da204de4ed1fbf2fd5be12c047fc8b3b" - integrity sha512-HHuHmkLgwjdmVRngf5+gSmpkyaRI6QmOg77J8tkNBHhNEI62sGHyw4/+UkgyZEI7h84NbWprXDJ+sa3xOYFvTg== - dependencies: - node-forge "^1.3.1" - -google-spreadsheet@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/google-spreadsheet/-/google-spreadsheet-3.3.0.tgz#725aecf9ea67ff8b8c45ddaf714f78f3e99db6a1" - integrity sha512-ahmRNh14s1i3phfvbF2mxen1lohWJpUaFWgsU6P6bXu7QrmxMaim1Ys/7BU4W5yucWCzphoIrHMbrbeIR5K9mw== - dependencies: - axios "^0.21.4" - google-auth-library "^6.1.3" - lodash "^4.17.21" - -gopd@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" - integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== - dependencies: - get-intrinsic "^1.1.3" - -got@12.1.0: - version "12.1.0" - resolved "https://registry.yarnpkg.com/got/-/got-12.1.0.tgz#099f3815305c682be4fd6b0ee0726d8e4c6b0af4" - 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" - -got@9.6.0: - version "9.6.0" - resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" - integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== - 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" - -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" - -got@^12.0.0, got@^12.1.0, got@^12.3.1, got@^12.6.1: - version "12.6.1" - resolved "https://registry.yarnpkg.com/got/-/got-12.6.1.tgz#8869560d1383353204b5a9435f782df9c091f549" - integrity sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ== - dependencies: - "@sindresorhus/is" "^5.2.0" - "@szmarczak/http-timer" "^5.0.1" - cacheable-lookup "^7.0.0" - cacheable-request "^10.2.8" - decompress-response "^6.0.0" - form-data-encoder "^2.1.2" - get-stream "^6.0.1" - http2-wrapper "^2.1.10" - lowercase-keys "^3.0.0" - p-cancelable "^3.0.0" - responselike "^3.0.0" - -graceful-fs@4.2.10: - version "4.2.10" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" - integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== - -graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.10, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: - version "4.2.11" - 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.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" - integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== - -graphql-config@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/graphql-config/-/graphql-config-4.5.0.tgz#257c2338950b8dce295a27f75c5f6c39f8f777b2" - integrity sha512-x6D0/cftpLUJ0Ch1e5sj1TZn6Wcxx4oMfmhaG9shM0DKajA9iR+j1z86GSTQ19fShbGvrSSvbIQsHku6aQ6BBw== - dependencies: - "@graphql-tools/graphql-file-loader" "^7.3.7" - "@graphql-tools/json-file-loader" "^7.3.7" - "@graphql-tools/load" "^7.5.5" - "@graphql-tools/merge" "^8.2.6" - "@graphql-tools/url-loader" "^7.9.7" - "@graphql-tools/utils" "^9.0.0" - cosmiconfig "8.0.0" - jiti "1.17.1" - minimatch "4.2.3" - string-env-interpolation "1.0.1" - tslib "^2.4.0" - -graphql-import-node@^0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/graphql-import-node/-/graphql-import-node-0.0.5.tgz#caf76a6cece10858b14f27cce935655398fc1bf0" - integrity sha512-OXbou9fqh9/Lm7vwXT0XoRN9J5+WCYKnbiTalgFDvkQERITRmcfncZs6aVABedd5B85yQU5EULS4a5pnbpuI0Q== - -graphql-request@5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/graphql-request/-/graphql-request-5.1.0.tgz#dbc8feee27d21b993cd5da2d3af67821827b240a" - integrity sha512-0OeRVYigVwIiXhNmqnPDt+JhMzsjinxHE7TVy3Lm6jUzav0guVcL0lfSbi6jVTRAxcbwgyr6yrZioSHxf9gHzw== - dependencies: - "@graphql-typed-document-node/core" "^3.1.1" - cross-fetch "^3.1.5" - extract-files "^9.0.0" - form-data "^3.0.0" - -graphql-request@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/graphql-request/-/graphql-request-6.1.0.tgz#f4eb2107967af3c7a5907eb3131c671eac89be4f" - integrity sha512-p+XPfS4q7aIpKVcgmnZKhMNqhltk20hfXtkaIkTfjjmiKMJ5xrt5c743cL03y/K7y1rg3WrIC49xGiEQ4mxdNw== - dependencies: - "@graphql-typed-document-node/core" "^3.2.0" - cross-fetch "^3.1.5" - -graphql-tag@^2.11.0, graphql-tag@^2.12.6: - version "2.12.6" - resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.12.6.tgz#d441a569c1d2537ef10ca3d1633b48725329b5f1" - integrity sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg== - dependencies: - tslib "^2.1.0" - -graphql-ws@5.12.1: - version "5.12.1" - resolved "https://registry.yarnpkg.com/graphql-ws/-/graphql-ws-5.12.1.tgz#c62d5ac54dbd409cc6520b0b39de374b3d59d0dd" - integrity sha512-umt4f5NnMK46ChM2coO36PTFhHouBrK9stWWBczERguwYrGnPNxJ9dimU6IyOBfOkC6Izhkg4H8+F51W/8CYDg== - -graphql@15.5.0: - version "15.5.0" - resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.5.0.tgz#39d19494dbe69d1ea719915b578bf920344a69d5" - integrity sha512-OmaM7y0kaK31NKG31q4YbD2beNYa6jBBKtMFT6gLYJljHLJr42IqJ8KX08u3Li/0ifzTU5HjmoOOrwa5BRLeDA== - -graphql@^16.6.0: - version "16.8.1" - resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.8.1.tgz#1930a965bef1170603702acdb68aedd3f3cf6f07" - integrity sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw== - -growl@1.10.5: - version "1.10.5" - resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" - integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== - -gtoken@^5.0.4: - version "5.3.2" - resolved "https://registry.yarnpkg.com/gtoken/-/gtoken-5.3.2.tgz#deb7dc876abe002178e0515e383382ea9446d58f" - integrity sha512-gkvEKREW7dXWF8NV8pVrKfW7WqReAmjjkMBh6lNCCGOM4ucS0r0YyXXl0r/9Yj8wcW/32ISkfc8h5mPTDbtifQ== - dependencies: - gaxios "^4.0.0" - google-p12-pem "^3.1.3" - jws "^4.0.0" - -h3@^1.8.1, h3@^1.8.2: - version "1.9.0" - resolved "https://registry.yarnpkg.com/h3/-/h3-1.9.0.tgz#c5f512a93026df9837db6f30c9ef51135dd46752" - integrity sha512-+F3ZqrNV/CFXXfZ2lXBINHi+rM4Xw3CDC5z2CDK3NMPocjonKipGLLDSkrqY9DOrioZNPTIdDMWfQKm//3X2DA== - dependencies: - cookie-es "^1.0.0" - defu "^6.1.3" - destr "^2.0.2" - iron-webcrypto "^1.0.0" - radix3 "^1.1.0" - ufo "^1.3.2" - uncrypto "^0.1.3" - unenv "^1.7.4" - -hamt-sharding@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hamt-sharding/-/hamt-sharding-1.0.0.tgz#8c7cccb068cd871d721c21e6f09219e5e66383d1" - integrity sha512-jDk8N1U8qprvSt3KopOrrP46zUogxeZY+znDHP196MLBQKldld0TQFTneT1bxOFDw8vttbAQy1bG7L3/pzYorg== - dependencies: - sparse-array "^1.3.1" - -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" - -hard-rejection@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" - integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== - -hardhat-artifactor@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/hardhat-artifactor/-/hardhat-artifactor-0.2.0.tgz#940c82500653a2623ed89f7dd24dc3bd76de6bb9" - integrity sha512-034c0Ye3PjnPbBz6Adz7bNZ7T4LdPTSkjnzsBxToJKiqU4f4CwowFOqwSS0RqO2t9A7w/aWR49pLwbNzpVuDgQ== - -hardhat-contract-sizer@^2.10.0, hardhat-contract-sizer@^2.6.1: - version "2.10.0" - resolved "https://registry.yarnpkg.com/hardhat-contract-sizer/-/hardhat-contract-sizer-2.10.0.tgz#72646f43bfe50e9a5702c9720c9bc3e77d93a2c9" - integrity sha512-QiinUgBD5MqJZJh1hl1jc9dNnpJg7eE/w4/4GEnrcmZJJTDbVFNe3+/3Ep24XqISSkYxRz36czcPHKHd/a0dwA== - dependencies: - chalk "^4.0.0" - cli-table3 "^0.6.0" - strip-ansi "^6.0.0" - -hardhat@^2.12.6, hardhat@^2.19.1: - version "2.19.1" - resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.19.1.tgz#5e09e8070ecfc6109ba9d3a4a117ec2b0643032a" - integrity sha512-bsWa63g1GB78ZyMN08WLhFElLPA+J+pShuKD1BFO2+88g3l+BL3R07vj9deIi9dMbssxgE714Gof1dBEDGqnCw== - 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" - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - 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.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" - integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== - -has-flag@^3.0.0: - version "3.0.0" - 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.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-own-prop@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-own-prop/-/has-own-prop-2.0.0.tgz#f0f95d58f65804f5d218db32563bb85b8e0417af" - integrity sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ== - -has-property-descriptors@^1.0.0: - 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.2.2" - -has-proto@^1.0.1: - version "1.0.1" - 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.2, has-symbols@^1.0.3: - version "1.0.3" - 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.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== - dependencies: - has-symbols "^1.0.2" - -has-unicode@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" - integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== - -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - integrity sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q== - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - integrity sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw== - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - integrity sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ== - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - integrity sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ== - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -has-yarn@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-3.0.0.tgz#c3c21e559730d1d3b57e28af1f30d06fac38147d" - integrity sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA== - -has@~1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.4.tgz#2eb2860e000011dae4f1406a86fe80e530fb2ec6" - integrity sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ== - -hasbin@1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/hasbin/-/hasbin-1.2.3.tgz#78c5926893c80215c2b568ae1fd3fcab7a2696b0" - integrity sha512-CCd8e/w2w28G8DyZvKgiHnQJ/5XXDz6qiUHnthvtag/6T5acUeN5lqq+HMoBqcmgWueWDhiCplrw0Kb1zDACRg== - dependencies: - async "~1.5" - -hash-base@^3.0.0: - version "3.1.0" - 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.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" - -hasha@5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/hasha/-/hasha-5.2.2.tgz#a48477989b3b327aea3c04f53096d816d97522a1" - integrity sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ== - dependencies: - is-stream "^2.0.0" - type-fest "^0.8.0" - -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: - function-bind "^1.1.2" - -hat@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/hat/-/hat-0.0.3.tgz#bb014a9e64b3788aed8005917413d4ff3d502d8a" - integrity sha512-zpImx2GoKXy42fVDSEad2BPKuSQdLcqsCYa48K3zHSzM/ugWuYjLDr8IXxpVuL7uCLHw56eaiLxCRthhOzf5ug== - -he@1.2.0, he@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - -header-case@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/header-case/-/header-case-2.0.4.tgz#5a42e63b55177349cf405beb8d775acabb92c063" - integrity sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q== - dependencies: - capital-case "^1.0.4" - tslib "^2.0.3" - -heap@0.2.6: - version "0.2.6" - resolved "https://registry.yarnpkg.com/heap/-/heap-0.2.6.tgz#087e1f10b046932fc8594dd9e6d378afc9d1e5ac" - integrity sha512-MzzWcnfB1e4EG2vHi3dXHoBupmuXNZzx6pY6HldVS55JKKBoq3xOyzfSaZRkJp37HIhEYC78knabHff3zc4dQQ== - -hexer@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/hexer/-/hexer-1.5.0.tgz#b86ce808598e8a9d1892c571f3cedd86fc9f0653" - integrity sha512-dyrPC8KzBzUJ19QTIo1gXNqIISRXQ0NwteW6OeQHRN4ZuZeHkdODfj0zHBdOlHbRY8GqbqK57C9oWSvQZizFsg== - dependencies: - ansi-color "^0.2.1" - minimist "^1.1.0" - process "^0.10.0" - xtend "^4.0.0" - -hey-listen@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/hey-listen/-/hey-listen-1.0.8.tgz#8e59561ff724908de1aa924ed6ecc84a56a9aa68" - integrity sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q== - -hmac-drbg@^1.0.1: - version "1.0.1" - 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" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -home-or-tmp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" - integrity sha512-ycURW7oUxE2sNiPVw1HVEFsW+ecOpJ5zaj7eC0RlwhibhRBod20muUN8qu/gzx956YrLolVvs1MTXwKgC2rVEg== - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.1" - -hoopy@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d" - integrity sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ== - -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" - integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== - -hosted-git-info@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224" - integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA== - dependencies: - lru-cache "^6.0.0" - -hot-shots@10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/hot-shots/-/hot-shots-10.0.0.tgz#d360f9dd252da78297aca1cb08fd84a8936739c2" - integrity sha512-uy/uGpuJk7yuyiKRfZMBNkF1GAOX5O2ifO9rDCaX9jw8fu6eW9QeWC7WRPDI+O98frW1HQgV3+xwjWsZPECIzQ== - optionalDependencies: - unix-dgram "2.x" - -html-encoding-sniffer@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz#2cb1a8cf0db52414776e5b2a7a04d5dd98158de9" - integrity sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA== - dependencies: - whatwg-encoding "^2.0.0" - -http-basic@^8.1.1: - version "8.1.3" - 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" - concat-stream "^1.6.2" - http-response-object "^3.0.1" - parse-cache-control "^1.0.1" - -http-cache-semantics@^4.0.0, http-cache-semantics@^4.1.1: - version "4.1.1" - 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.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" - 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" - -http-errors@~1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.1.tgz#7c3f28577cbc8a207388455dbd62295ed07bd68c" - integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g== - dependencies: - depd "~1.1.2" - inherits "2.0.4" - setprototypeof "1.2.0" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.1" - -http-https@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/http-https/-/http-https-1.0.0.tgz#2f908dd5f1db4068c058cd6e6d4ce392c913389b" - integrity sha512-o0PWwVCSp3O0wS6FvNr6xfBCHgt0m1tvPLFOCc2iFDKTRAXhB7m8klDf7ErowFH8POa6dVdGatKU5I1YYwzUyg== - -http-proxy-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43" - integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w== - dependencies: - "@tootallnate/once" "2" - agent-base "6" - debug "4" - -http-proxy-agent@^6.0.0: - version "6.1.1" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-6.1.1.tgz#dc04f1a84e09511740cfbd984a56f86cc42e4277" - integrity sha512-JRCz+4Whs6yrrIoIlrH+ZTmhrRwtMnmOHsHn8GFEn9O2sVfSE+DAZ3oyyGIKF8tjJEeSJmP89j7aTjVsSqsU0g== - dependencies: - agent-base "^7.1.0" - debug "^4.3.4" - -http-proxy-middleware@2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz#e1a4dd6979572c7ab5a4e4b55095d1f32a74963f" - integrity sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw== - dependencies: - "@types/http-proxy" "^1.17.8" - http-proxy "^1.18.1" - is-glob "^4.0.1" - is-plain-obj "^3.0.0" - micromatch "^4.0.2" - -http-proxy@1.18.1, http-proxy@^1.18.1: - version "1.18.1" - resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" - integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== - dependencies: - eventemitter3 "^4.0.0" - follow-redirects "^1.0.0" - requires-port "^1.0.0" - -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" - integrity sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA== - dependencies: - "@types/node" "^10.0.3" - -http-shutdown@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/http-shutdown/-/http-shutdown-1.2.2.tgz#41bc78fc767637c4c95179bc492f312c0ae64c5f" - integrity sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw== - -http-signature@~1.2.0: - version "1.2.0" - 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" - jsprim "^1.2.2" - sshpk "^1.7.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" - 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.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-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" - integrity sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg== - -https-proxy-agent@5.0.1, https-proxy-agent@^5.0.0, https-proxy-agent@^5.0.1: - version "5.0.1" - 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" - debug "4" - -https-proxy-agent@^6.0.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-6.2.1.tgz#0965ab47371b3e531cf6794d1eb148710a992ba7" - integrity sha512-ONsE3+yfZF2caH5+bJlcddtWqNI3Gvs5A38+ngvljxaBiRXRswym2c7yf8UAeFpRFKjFNHIFEHqR/OLAWJzyiA== - dependencies: - agent-base "^7.0.2" - debug "4" - -human-signals@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" - integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== - -human-signals@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" - integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== - -human-signals@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-3.0.1.tgz#c740920859dafa50e5a3222da9d3bf4bb0e5eef5" - integrity sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ== - -humanize-duration@^3.27.3: - version "3.31.0" - resolved "https://registry.yarnpkg.com/humanize-duration/-/humanize-duration-3.31.0.tgz#a0384d22555024cd17e6e9f8561540d37756bf4c" - integrity sha512-fRrehgBG26NNZysRlTq1S+HPtDpp3u+Jzdc/d5A4cEzOD86YLAkDaJyJg8krSdCi7CJ+s7ht3fwRj8Dl+Btd0w== - -husky@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/husky/-/husky-6.0.0.tgz#810f11869adf51604c32ea577edbc377d7f9319e" - integrity sha512-SQS2gDTB7tBN486QSoKPKQItZw97BMOd+Kdb6ghfpBc0yXyzrddI0oDV5MkDAbuB4X2mO3/nj60TRMcYxwzZeQ== - -hyperlinker@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hyperlinker/-/hyperlinker-1.0.0.tgz#23dc9e38a206b208ee49bc2d6c8ef47027df0c0e" - integrity sha512-Ty8UblRWFEcfSuIaajM34LdPXIhbs1ajEX/BBPv24J+enSVaEVY63xQ6lTO9VRYS5LAoghIG0IDJ+p+IPzKUQQ== - -iconv-lite@0.4.24, iconv-lite@^0.4.24: - version "0.4.24" - 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" - -iconv-lite@0.6.3, iconv-lite@^0.6.2: - version "0.6.3" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" - integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== - dependencies: - safer-buffer ">= 2.1.2 < 3.0.0" - -idb-keyval@^6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/idb-keyval/-/idb-keyval-6.2.1.tgz#94516d625346d16f56f3b33855da11bfded2db33" - integrity sha512-8Sb3veuYCyrZL+VBt9LJfZjLUPWVvqn8tG28VqYNFCo43KHcKuq+b4EiXGeuaLAQWL2YmyDgMp2aSpH9JHsEQg== - -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" - 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" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -ignore@^5.2.0, ignore@^5.2.4: - 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.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.yarnpkg.com/immediate/-/immediate-3.2.3.tgz#d140fa8f614659bd6541233097ddaac25cdd991c" - integrity sha512-RrGCXRm/fRVqMIhqXrGEX9rRADavPiDFSoMb/k64i9XMk8uH4r/Omi5Ctierj6XzNecwDbO4WuFbDD1zmpl3Tg== - -immutable@4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.2.1.tgz#8a4025691018c560a40c67e43d698f816edc44d4" - integrity sha512-7WYV7Q5BTs0nlQm7tl92rDYYoyELLKHoDMBKhrxEoiV4mrfVdRz8hzPiYOzH7yWjzoVEamxRuAqhxL2PLRwZYQ== - -immutable@^4.0.0, immutable@^4.0.0-rc.12: - version "4.3.4" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.4.tgz#2e07b33837b4bb7662f288c244d1ced1ef65a78f" - integrity sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA== - -immutable@~3.7.6: - version "3.7.6" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.7.6.tgz#13b4d3cb12befa15482a26fe1b2ebae640071e4b" - integrity sha512-AizQPcaofEtO11RZhPPHBOJRdo/20MKQF9mBLnVkBoyHi1/zXK8fzVdnEpSV9gxqtnh6Qomfp3F0xT5qP/vThw== - -import-fresh@^3.1.0, 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" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -import-from@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/import-from/-/import-from-4.0.0.tgz#2710b8d66817d232e16f4166e319248d3d5492e2" - integrity sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ== - -import-lazy@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-4.0.0.tgz#e8eb627483a0a43da3c03f3e35548be5cb0cc153" - integrity sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw== - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== - -indent-string@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" - integrity sha512-BYqTHXTGUIvg7t1r4sJNKcbDZkL92nkXA8YtRpbjFHRHGDL/NtUeiBJMeE60kIFN/Mg8ESaWQvftaYMGJzQZCQ== - -indent-string@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" - integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== - -indent-string@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-5.0.0.tgz#4fd2980fccaf8622d14c64d694f4cf33c81951a5" - integrity sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg== - -inflight@^1.0.4: - version "1.0.6" - 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, 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: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -ini@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" - integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== - -ini@^1.3.2, ini@^1.3.4, ini@~1.3.0: - version "1.3.8" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" - integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== - -inquirer-autocomplete-prompt@1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/inquirer-autocomplete-prompt/-/inquirer-autocomplete-prompt-1.4.0.tgz#e767592f747e3d5bb6336fe71fb4094352e4c317" - integrity sha512-qHgHyJmbULt4hI+kCmwX92MnSxDs/Yhdt4wPA30qnoa01OF6uTXV8yvH4hKXgdaTNmkZ9D01MHjqKYEuJN+ONw== - dependencies: - ansi-escapes "^4.3.1" - chalk "^4.0.0" - figures "^3.2.0" - run-async "^2.4.0" - rxjs "^6.6.2" - -inquirer@6.5.2, inquirer@^6.0.0: - version "6.5.2" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" - integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ== - dependencies: - ansi-escapes "^3.2.0" - chalk "^2.4.2" - cli-cursor "^2.1.0" - cli-width "^2.0.0" - external-editor "^3.0.3" - figures "^2.0.0" - lodash "^4.17.12" - mute-stream "0.0.7" - run-async "^2.2.0" - rxjs "^6.4.0" - string-width "^2.1.0" - strip-ansi "^5.1.0" - through "^2.3.6" - -inquirer@^8.0.0: - version "8.2.6" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.6.tgz#733b74888195d8d400a67ac332011b5fae5ea562" - integrity sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg== - dependencies: - ansi-escapes "^4.2.1" - chalk "^4.1.1" - cli-cursor "^3.1.0" - cli-width "^3.0.0" - external-editor "^3.0.3" - figures "^3.0.0" - lodash "^4.17.21" - mute-stream "0.0.8" - ora "^5.4.1" - run-async "^2.4.0" - rxjs "^7.5.5" - string-width "^4.1.0" - strip-ansi "^6.0.0" - through "^2.3.6" - wrap-ansi "^6.0.1" - -inspect-with-kind@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/inspect-with-kind/-/inspect-with-kind-1.0.5.tgz#fce151d4ce89722c82ca8e9860bb96f9167c316c" - integrity sha512-MAQUJuIo7Xqk8EVNP+6d3CKq9c80hi4tjIbIAT6lmGW9W6WzlHiu9PS8uSuUYU+Do+j1baiFp3H25XEVxDIG2g== - dependencies: - kind-of "^6.0.2" - -interface-datastore@^0.8.0, interface-datastore@~0.8.0: - version "0.8.3" - resolved "https://registry.yarnpkg.com/interface-datastore/-/interface-datastore-0.8.3.tgz#1b948d9f8231edbaaec763a75a339e70e5f48883" - integrity sha512-0boeaQbqRUV+7edgdkDDNl8/m0bzFbBEfM3tC0Prro2ZE7N9dtcIDh/cW812P/22Gjhlj1J7KIn0mPzbO4HjPQ== - dependencies: - buffer "^5.5.0" - class-is "^1.1.0" - err-code "^2.0.0" - ipfs-utils "^1.2.3" - iso-random-stream "^1.1.1" - nanoid "^3.0.2" - -interface-datastore@^6.0.2: - version "6.1.1" - resolved "https://registry.yarnpkg.com/interface-datastore/-/interface-datastore-6.1.1.tgz#5150a00de2e7513eaadba58bcafd059cb50004c1" - integrity sha512-AmCS+9CT34pp2u0QQVXjKztkuq3y5T+BIciuiHDDtDZucZD8VudosnSdUyXJV6IsRkN5jc4RFDhCk1O6Q3Gxjg== - dependencies: - interface-store "^2.0.2" - nanoid "^3.0.2" - uint8arrays "^3.0.0" - -interface-datastore@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/interface-datastore/-/interface-datastore-0.7.0.tgz#3ab43d21089c03ac7d65651ed1e7e4d81397f4f4" - integrity sha512-TfwzBe7iInnakxjWDQn8GQHRDSgmVXRylBo9Z6ONjtaIXB1aJFYpvW1mt+Kbnql/xpTxD2LsQKRBS9+EiTVmhA== - dependencies: - class-is "^1.1.0" - err-code "^1.1.2" - uuid "^3.2.2" - -interface-store@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/interface-store/-/interface-store-2.0.2.tgz#83175fd2b0c501585ed96db54bb8ba9d55fce34c" - integrity sha512-rScRlhDcz6k199EkHqT8NpM87ebN89ICOzILoBHgaG36/WX50N32BnU/kpZgCGPLhARRAWUUX5/cyaIjt7Kipg== - -internal-slot@^1.0.5: - 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.2" - hasown "^2.0.0" - side-channel "^1.0.4" - -interpret@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" - integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== - -invariant@^2.2.2, invariant@^2.2.4: - version "2.2.4" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" - integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== - dependencies: - loose-envify "^1.0.0" - -invert-kv@^1.0.0: - version "1.0.0" - 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.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" - -ioredis@^5.3.2: - version "5.3.2" - resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-5.3.2.tgz#9139f596f62fc9c72d873353ac5395bcf05709f7" - integrity sha512-1DKMMzlIHM02eBBVOFQ1+AolGjs6+xEcM4PDL7NqOS6szq7H9jSaEkIUH6/a5Hl241LzW6JLSiAbNvTQjUupUA== - dependencies: - "@ioredis/commands" "^1.1.1" - cluster-key-slot "^1.1.0" - debug "^4.3.4" - denque "^2.1.0" - lodash.defaults "^4.2.0" - lodash.isarguments "^3.1.0" - redis-errors "^1.2.0" - redis-parser "^3.0.0" - standard-as-callback "^2.1.0" - -ip-regex@^4.0.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-4.3.0.tgz#687275ab0f57fa76978ff8f4dddc8a23d5990db5" - integrity sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q== - -ipaddr.js@1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" - integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== - -ipfs-block-service@^0.16.0: - version "0.16.0" - resolved "https://registry.yarnpkg.com/ipfs-block-service/-/ipfs-block-service-0.16.0.tgz#bca30c6c04ce10f78790ee6ade3c4eb333add38e" - integrity sha512-cSITuhI8Bizrmks8rC6SmFcSbtUf9bIUPbpHetwb7T3raSseODx80Wy51JKXFkMyLAuWYHOfDie0J/kf5csGKw== - dependencies: - streaming-iterables "^4.1.0" - -ipfs-block@~0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/ipfs-block/-/ipfs-block-0.8.1.tgz#05e1068832775e8f1c2da5b64106cc837fd2acb9" - integrity sha512-0FaCpmij+jZBoUYhjoB5ptjdl9QzvrdRIoBmUU5JiBnK2GA+4YM/ifklaB8ePRhA/rRzhd+KYBjvMFMAL4NrVQ== - dependencies: - cids "~0.7.0" - class-is "^1.1.0" - -ipfs-core-types@^0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/ipfs-core-types/-/ipfs-core-types-0.9.0.tgz#cb201ff7a9470651ba14c4e7fae56661a55bf37e" - integrity sha512-VJ8vJSHvI1Zm7/SxsZo03T+zzpsg8pkgiIi5hfwSJlsrJ1E2v68QPlnLshGHUSYw89Oxq0IbETYl2pGTFHTWfg== - dependencies: - interface-datastore "^6.0.2" - multiaddr "^10.0.0" - multiformats "^9.4.13" - -ipfs-core-utils@^0.13.0: - version "0.13.0" - resolved "https://registry.yarnpkg.com/ipfs-core-utils/-/ipfs-core-utils-0.13.0.tgz#8f0ec9aaa7c24f6f307e6e76e7bdc1cefd829894" - integrity sha512-HP5EafxU4/dLW3U13CFsgqVO5Ika8N4sRSIb/dTg16NjLOozMH31TXV0Grtu2ZWo1T10ahTzMvrfT5f4mhioXw== - dependencies: - any-signal "^2.1.2" - blob-to-it "^1.0.1" - browser-readablestream-to-it "^1.0.1" - debug "^4.1.1" - err-code "^3.0.1" - ipfs-core-types "^0.9.0" - ipfs-unixfs "^6.0.3" - ipfs-utils "^9.0.2" - it-all "^1.0.4" - it-map "^1.0.4" - it-peekable "^1.0.2" - it-to-stream "^1.0.0" - merge-options "^3.0.4" - multiaddr "^10.0.0" - multiaddr-to-uri "^8.0.0" - multiformats "^9.4.13" - nanoid "^3.1.23" - parse-duration "^1.0.0" - timeout-abort-controller "^2.0.0" - uint8arrays "^3.0.0" - -ipfs-http-client@55.0.0: - version "55.0.0" - resolved "https://registry.yarnpkg.com/ipfs-http-client/-/ipfs-http-client-55.0.0.tgz#8b713c5fa318e873b7d7ad099a4eb14320a5b0ce" - integrity sha512-GpvEs7C7WL9M6fN/kZbjeh4Y8YN7rY8b18tVWZnKxRsVwM25cIFrRI8CwNt3Ugin9yShieI3i9sPyzYGMrLNnQ== - dependencies: - "@ipld/dag-cbor" "^7.0.0" - "@ipld/dag-json" "^8.0.1" - "@ipld/dag-pb" "^2.1.3" - abort-controller "^3.0.0" - any-signal "^2.1.2" - debug "^4.1.1" - err-code "^3.0.1" - ipfs-core-types "^0.9.0" - ipfs-core-utils "^0.13.0" - ipfs-utils "^9.0.2" - it-first "^1.0.6" - it-last "^1.0.4" - merge-options "^3.0.4" - multiaddr "^10.0.0" - multiformats "^9.4.13" - native-abort-controller "^1.0.3" - parse-duration "^1.0.0" - stream-to-it "^0.2.2" - uint8arrays "^3.0.0" - -ipfs-only-hash@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/ipfs-only-hash/-/ipfs-only-hash-2.1.0.tgz#548a9c1bce03894bfe79b6dc37154d82f7706843" - integrity sha512-S9XCQOqGXsHy6XshHOxGy6sP5bkpvgBoelAiZ47fwV32luxQe8ZLZDnZ+0SEF6RlRyVyY1zKGb/VmFgHrM6H+g== - dependencies: - ipfs-unixfs-importer "^0.44.1" - ipld "^0.25.3" - ipld-in-memory "^3.0.2" - meow "^9.0.0" - -ipfs-repo-migrations@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/ipfs-repo-migrations/-/ipfs-repo-migrations-0.1.1.tgz#63443c35f047dab1ec6079f8fe38615026eb1b4a" - integrity sha512-Id8K32l7bEqMt0YxfDUAAiMFkfFr9pslOT0xg3EqTrPc0AeXQ5sZu6y69p5TI7N+A28PhrGgMU40R7IQ8Mb7sg== - dependencies: - chalk "^2.4.2" - datastore-fs "~0.9.1" - datastore-level "~0.12.1" - debug "^4.1.0" - interface-datastore "~0.8.0" - proper-lockfile "^4.1.1" - yargs "^14.2.0" - yargs-promise "^1.1.0" - -ipfs-repo@^0.30.1: - version "0.30.1" - resolved "https://registry.yarnpkg.com/ipfs-repo/-/ipfs-repo-0.30.1.tgz#28e43cf608f4409fb873557e2ee4d5ac8919f2f4" - integrity sha512-t/RG/agHGRJ1yyzrwaFRDUyTZgJcdhSGFoeRIrCJuxxApjrXQZMee58SZL9al+jArRu+5sbZqcepLwwdIV95PA== - dependencies: - base32.js "~0.1.0" - bignumber.js "^9.0.0" - bytes "^3.1.0" - cids "~0.7.0" - datastore-core "~0.7.0" - datastore-fs "~0.9.0" - datastore-level "~0.14.0" - debug "^4.1.0" - err-code "^2.0.0" - interface-datastore "^0.8.0" - ipfs-block "~0.8.1" - ipfs-repo-migrations "~0.1.0" - just-safe-get "^2.0.0" - just-safe-set "^2.1.0" - lodash.has "^4.5.2" - p-queue "^6.0.0" - proper-lockfile "^4.0.0" - sort-keys "^4.0.0" - -ipfs-unixfs-importer@^0.44.1: - version "0.44.1" - resolved "https://registry.yarnpkg.com/ipfs-unixfs-importer/-/ipfs-unixfs-importer-0.44.1.tgz#f2597f1c2134ec5f1a907a2e51edf9c576137818" - integrity sha512-DeQ7BQl6DedHTrbFyPghbheXM40sD/Ik7wPVA2+kkfi0t/oggYbyYcWBnUKz+y2fVMWNeQ95ASiQeHGhYdo2sg== - dependencies: - bl "^4.0.0" - err-code "^2.0.0" - hamt-sharding "^1.0.0" - ipfs-unixfs "^0.3.0" - ipld-dag-pb "^0.18.0" - it-all "^1.0.1" - it-batch "^1.0.3" - it-first "^1.0.1" - it-parallel-batch "^1.0.3" - merge-options "^2.0.0" - multicodec "^1.0.0" - multihashing-async "^0.8.0" - rabin-wasm "~0.0.8" - -ipfs-unixfs@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/ipfs-unixfs/-/ipfs-unixfs-0.3.0.tgz#8cb0c8031c50f4d4c01d844b4877a5fde5fd23df" - integrity sha512-0lyU0V7dMh9JAN9NPUrsT6Bf8nHpH5YPAbXByrf3snZzY5J5wuvKd9CIBgYAq1eIgTRmJIqfXGFtbD8RDchuoA== - dependencies: - err-code "^2.0.0" - protons "^1.1.0" - -ipfs-unixfs@^6.0.3: - version "6.0.9" - resolved "https://registry.yarnpkg.com/ipfs-unixfs/-/ipfs-unixfs-6.0.9.tgz#f6613b8e081d83faa43ed96e016a694c615a9374" - integrity sha512-0DQ7p0/9dRB6XCb0mVCTli33GzIzSVx5udpJuVM47tGcD+W+Bl4LsnoLswd3ggNnNEakMv1FdoFITiEnchXDqQ== - dependencies: - err-code "^3.0.1" - protobufjs "^6.10.2" - -ipfs-utils@^1.2.3: - version "1.2.4" - resolved "https://registry.yarnpkg.com/ipfs-utils/-/ipfs-utils-1.2.4.tgz#209845db3f6493dbd185333eb09c5e9ee345ddc9" - integrity sha512-xUP7SmOAb50OHL8D2KasRHRBOtRdyHHerfCEJBmS9+qpe6wzpbhftdsZJ2UD2v7HXgi7IH9eTps5uPXKUd2aVg== - dependencies: - abort-controller "^3.0.0" - buffer "^5.4.2" - err-code "^2.0.0" - fs-extra "^9.0.0" - is-electron "^2.2.0" - iso-url "^0.4.7" - it-glob "0.0.7" - merge-options "^2.0.0" - nanoid "^2.1.11" - node-fetch "^2.6.0" - stream-to-it "^0.2.0" - -ipfs-utils@^9.0.2: - version "9.0.14" - resolved "https://registry.yarnpkg.com/ipfs-utils/-/ipfs-utils-9.0.14.tgz#24f5fda1f4567685eb32bca2543d518f95fd8704" - integrity sha512-zIaiEGX18QATxgaS0/EOQNoo33W0islREABAcxXE8n7y2MGAlB+hdsxXn4J0hGZge8IqVQhW8sWIb+oJz2yEvg== - dependencies: - any-signal "^3.0.0" - browser-readablestream-to-it "^1.0.0" - buffer "^6.0.1" - electron-fetch "^1.7.2" - err-code "^3.0.1" - is-electron "^2.2.0" - iso-url "^1.1.5" - it-all "^1.0.4" - it-glob "^1.0.1" - it-to-stream "^1.0.0" - merge-options "^3.0.4" - nanoid "^3.1.20" - native-fetch "^3.0.0" - node-fetch "^2.6.8" - react-native-fetch-api "^3.0.0" - stream-to-it "^0.2.2" - -ipld-dag-cbor@~0.15.0: - version "0.15.3" - resolved "https://registry.yarnpkg.com/ipld-dag-cbor/-/ipld-dag-cbor-0.15.3.tgz#283afdb81d5b07db8e4fff7a10ef5e517e87f299" - integrity sha512-m23nG7ZyoVFnkK55/bLAErc7EfiMgaEQlqHWDTGzPI+O5r6bPfp+qbL5zTVSIT8tpbHmu174dwerVtLoVgeVyA== - dependencies: - borc "^2.1.2" - buffer "^5.5.0" - cids "~0.8.0" - is-circular "^1.0.2" - multicodec "^1.0.0" - multihashing-async "~0.8.0" - -ipld-dag-pb@^0.18.0, ipld-dag-pb@~0.18.1: - version "0.18.5" - resolved "https://registry.yarnpkg.com/ipld-dag-pb/-/ipld-dag-pb-0.18.5.tgz#29e736dcdab10a4dffbef9dec27723e2e56be962" - integrity sha512-8IAPZrkRjgTpkxV9JOwXSBe0GXNxd4B2lubPgbifTGL92rZOEKWutpijsWsWvjXOltDFHKMQIIIhkgLC5RPqbA== - dependencies: - buffer "^5.6.0" - cids "~0.8.0" - class-is "^1.1.0" - multicodec "^1.0.1" - multihashing-async "~0.8.1" - protons "^1.0.2" - stable "^0.1.8" - -ipld-in-memory@^3.0.2: - version "3.0.4" - resolved "https://registry.yarnpkg.com/ipld-in-memory/-/ipld-in-memory-3.0.4.tgz#9571e38f48faca54484c0f0cddcabb7a60935e01" - integrity sha512-eYh+QtB5hKSnkPIFEEDh/hu2CnVMtUmm1obEwB7x1zR0SSvakVWAuOkhx7SFBmTxI7YcV4jMoxtuOjvYvPrz1A== - dependencies: - hat "0.0.3" - interface-datastore "^0.8.0" - ipfs-block-service "^0.16.0" - ipfs-repo "^0.30.1" - -ipld-raw@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/ipld-raw/-/ipld-raw-4.0.1.tgz#49a6f58cdfece5a4d581925b19ee19255be2a29d" - integrity sha512-WjIdtZ06jJEar8zh+BHB84tE6ZdbS/XNa7+XCArOYfmeJ/c01T9VQpeMwdJQYn5c3s5UvvCu7y4VIi3vk2g1bA== - dependencies: - cids "~0.7.0" - multicodec "^1.0.0" - multihashing-async "~0.8.0" - -ipld@^0.25.3: - version "0.25.5" - resolved "https://registry.yarnpkg.com/ipld/-/ipld-0.25.5.tgz#dc18f7d9458ac4428f69ae669cb784e5966eb2f5" - integrity sha512-9t5qh/ROQyj2Denl4KbOd3SmNLTGvh33ZYbt5P8Jury8EdDoZhBvknFq4maK6GZMjEeAiXphMGg/YaKTrim5Ew== - dependencies: - cids "~0.8.0" - ipfs-block "~0.8.1" - ipld-dag-cbor "~0.15.0" - ipld-dag-pb "~0.18.1" - ipld-raw "^4.0.0" - merge-options "^2.0.0" - multicodec "^1.0.0" - typical "^6.0.0" - -iron-webcrypto@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/iron-webcrypto/-/iron-webcrypto-1.0.0.tgz#e3b689c0c61b434a0a4cb82d0aeabbc8b672a867" - integrity sha512-anOK1Mktt8U1Xi7fCM3RELTuYbnFikQY5VtrDj7kPgpejV7d43tWKhzgioO0zpkazLEL/j/iayRqnJhrGfqUsg== - -is-absolute@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" - integrity sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA== - dependencies: - is-relative "^1.0.0" - is-windows "^1.0.1" - -is-accessor-descriptor@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz#3223b10628354644b86260db29b3e693f5ceedd4" - integrity sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA== - dependencies: - hasown "^2.0.0" - -is-arguments@^1.0.4, is-arguments@^1.1.1: - version "1.1.1" - 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" - has-tostringtag "^1.0.0" - -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" - integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.0" - is-typed-array "^1.1.10" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== - -is-arrayish@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" - integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== - -is-bigint@^1.0.1: - version "1.0.4" - 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.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.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@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - -is-buffer@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" - integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== - -is-builtin-module@^3.1.0: - 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.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" - integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== - -is-ci@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" - integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== - dependencies: - ci-info "^2.0.0" - -is-ci@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.1.tgz#db6ecbed1bd659c43dac0f45661e7674103d1867" - integrity sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ== - dependencies: - ci-info "^3.2.0" - -is-circular@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-circular/-/is-circular-1.0.2.tgz#2e0ab4e9835f4c6b0ea2b9855a84acd501b8366c" - integrity sha512-YttjnrswnUYRVJvxCvu8z+PGMUSzC2JttP0OEXezlAEdp3EXzhf7IZ3j0gRAybJBQupedIZFhY61Tga6E0qASA== - -is-core-module@^2.13.0, is-core-module@^2.5.0: - 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: - hasown "^2.0.0" - -is-data-descriptor@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz#2109164426166d32ea38c405c1e0945d9e6a4eeb" - integrity sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw== - dependencies: - hasown "^2.0.0" - -is-date-object@^1.0.1, is-date-object@^1.0.5: - version "1.0.5" - 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-descriptor@^0.1.0: - version "0.1.7" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.7.tgz#2727eb61fd789dcd5bdf0ed4569f551d2fe3be33" - integrity sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg== - dependencies: - is-accessor-descriptor "^1.0.1" - is-data-descriptor "^1.0.1" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.3.tgz#92d27cb3cd311c4977a4db47df457234a13cb306" - integrity sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw== - dependencies: - is-accessor-descriptor "^1.0.1" - is-data-descriptor "^1.0.1" - -is-docker@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200" - integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== - -is-docker@^2.0.0, is-docker@^2.1.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" - integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== - -is-electron@^2.2.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/is-electron/-/is-electron-2.2.2.tgz#3778902a2044d76de98036f5dc58089ac4d80bb9" - integrity sha512-FO/Rhvz5tuw4MCWkpMzHFKWD2LsfHzIb7i6MdPYZ/KW7AlxawyLkqdy+jPZP1WubqEADE3O4FUENlJHDfQASRg== - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== - dependencies: - is-plain-object "^2.0.4" - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== - -is-finite@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3" - integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w== - -is-fn@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fn/-/is-fn-1.0.0.tgz#9543d5de7bcf5b08a22ec8a20bae6e286d510d8c" - 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" - 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" - 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" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-fullwidth-code-point@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz#fae3167c729e7463f8461ce512b080a49268aa88" - integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ== - -is-function@^1.0.1: - version "1.0.2" - 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.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.3, 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" - 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" - integrity sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA== - -is-installed-globally@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" - integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ== - dependencies: - global-dirs "^3.0.0" - is-path-inside "^3.0.2" - -is-interactive@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" - integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== - -is-interactive@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-2.0.0.tgz#40c57614593826da1100ade6059778d597f16e90" - integrity sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ== - -is-ip@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-ip/-/is-ip-3.1.0.tgz#2ae5ddfafaf05cb8008a62093cf29734f657c5d8" - integrity sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q== - dependencies: - ip-regex "^4.0.0" - -is-lower-case@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-lower-case/-/is-lower-case-2.0.2.tgz#1c0884d3012c841556243483aa5d522f47396d2a" - integrity sha512-bVcMJy4X5Og6VZfdOZstSexlEy20Sr0k/p/b2IlQJlfdKAQuMpiv5w2Ccxb8sKdRUNAG1PnHVHjFSdRDVS6NlQ== - dependencies: - tslib "^2.0.3" - -is-nan@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/is-nan/-/is-nan-1.3.2.tgz#043a54adea31748b55b6cd4e09aadafa69bd9e1d" - integrity sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - -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" - integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== - -is-npm@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-6.0.0.tgz#b59e75e8915543ca5d881ecff864077cba095261" - integrity sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ== - -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" - integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== - dependencies: - has-tostringtag "^1.0.0" - -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg== - dependencies: - kind-of "^3.0.2" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-obj@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" - integrity sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg== - -is-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" - integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== - -is-observable@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-1.1.0.tgz#b3e986c8f44de950867cab5403f5a3465005975e" - integrity sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA== - dependencies: - symbol-observable "^1.1.0" - -is-path-inside@^3.0.2, 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" - integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== - -is-path-inside@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-4.0.0.tgz#805aeb62c47c1b12fc3fd13bfb3ed1e7430071db" - integrity sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA== - -is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== - -is-plain-obj@^2.0.0, 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" - integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== - -is-plain-obj@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" - integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== - -is-plain-obj@^4.0.0, is-plain-obj@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz#d65025edec3657ce032fd7db63c97883eaed71f0" - integrity sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg== - -is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - -is-plain-object@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" - integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== - -is-potential-custom-element-name@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" - integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== - -is-promise@^2.1.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" - integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== - -is-regex@^1.1.4, is-regex@~1.1.4: - version "1.1.4" - 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" - has-tostringtag "^1.0.0" - -is-regexp@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" - integrity sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA== - -is-relative@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d" - integrity sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA== - dependencies: - is-unc-path "^1.0.0" - -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" - integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== - dependencies: - call-bind "^1.0.2" - -is-stream@3.0.0, is-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" - integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== - -is-stream@^1.0.1, is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ== - -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - -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" - 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" - 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" - 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" - integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== - -is-unc-path@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-1.0.0.tgz#d731e8898ed090a12c352ad2eaed5095ad322c9d" - integrity sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ== - dependencies: - unc-path-regex "^0.1.2" - -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" - integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== - -is-unicode-supported@^1.1.0, is-unicode-supported@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz#d824984b616c292a2e198207d4a609983842f714" - integrity sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ== - -is-upper-case@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-upper-case/-/is-upper-case-2.0.2.tgz#f1105ced1fe4de906a5f39553e7d3803fd804649" - integrity sha512-44pxmxAvnnAOwBg4tHPnkfvgjPwbc5QIsSstNU+YcJ1ovxVzCWpSGosPJOZh/a1tdl81fbgnLc9LLv+x2ywbPQ== - dependencies: - tslib "^2.0.3" - -is-url-superb@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-url-superb/-/is-url-superb-4.0.0.tgz#b54d1d2499bb16792748ac967aa3ecb41a33a8c2" - integrity sha512-GI+WjezhPPcbM+tqE9LnmsY5qqjwHzTvjJ36wxYX5ujNXefSUJ/T17r5bqDV8yLhcgB59KTPNOc9O9cmHTPWsA== - -is-url@^1.2.4: - version "1.2.4" - 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.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" - integrity sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q== - -is-valid-glob@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-1.0.0.tgz#29bf3eff701be2d4d315dbacc39bc39fe8f601aa" - integrity sha512-AhiROmoEFDSsjx8hW+5sGwgKVIORcXnrlAx/R0ZSeaPw70Vw0CqkGBBhHGL58Uox2eXnU1AnvXJl1XlyedO5bA== - -is-weakref@^1.0.2: - version "1.0.2" - 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" - -is-windows@^1.0.1, is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - -is-wsl@2.2.0, is-wsl@^2.1.1, is-wsl@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" - integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== - dependencies: - is-docker "^2.0.0" - -is-yarn-global@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.4.1.tgz#b312d902b313f81e4eaf98b6361ba2b45cd694bb" - integrity sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ== - -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@1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== - -isarray@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" - integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== - -iserror@0.0.2, iserror@^0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/iserror/-/iserror-0.0.2.tgz#bd53451fe2f668b9f2402c1966787aaa2c7c0bf5" - integrity sha512-oKGGrFVaWwETimP3SiWwjDeY27ovZoyZPHtxblC4hCq9fXxed/jasx+ATWFFjCVSRZng8VTMsN1nDnGo6zMBSw== - -isexe@2.0.0, isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -iso-random-stream@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/iso-random-stream/-/iso-random-stream-1.1.2.tgz#c703da2c518db573277c5678cc43c5298283d64c" - integrity sha512-7y0tsBBgQs544iTYjyrMp5xvgrbYR8b+plQq1Bryp+03p0LssrxC9C1M0oHv4QESDt7d95c74XvMk/yawKqX+A== - dependencies: - buffer "^6.0.3" - readable-stream "^3.4.0" - -iso-url@^0.4.7, iso-url@~0.4.7: - version "0.4.7" - resolved "https://registry.yarnpkg.com/iso-url/-/iso-url-0.4.7.tgz#de7e48120dae46921079fe78f325ac9e9217a385" - integrity sha512-27fFRDnPAMnHGLq36bWTpKET+eiXct3ENlCcdcMdk+mjXrb2kw3mhBUg1B7ewAC0kVzlOPhADzQgz1SE6Tglog== - -iso-url@^1.1.5: - version "1.2.1" - resolved "https://registry.yarnpkg.com/iso-url/-/iso-url-1.2.1.tgz#db96a49d8d9a64a1c889fc07cc525d093afb1811" - integrity sha512-9JPDgCN4B7QPkLtYAAOrEuAWvP9rWvR5offAr0/SeF046wIkglqH3VXgYYP6NcsKslH80UIVgmPqNe3j7tG2ng== - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA== - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== - -isomorphic-timers-promises@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/isomorphic-timers-promises/-/isomorphic-timers-promises-1.0.1.tgz#e4137c24dbc54892de8abae3a4b5c1ffff381598" - integrity sha512-u4sej9B1LPSxTGKB/HiuzvEQnXH0ECYkSVQU39koSwmFAxhlEAFl9RdTvLv4TOTQUgBS5O3O5fwUxk6byBZ+IQ== - -isomorphic-ws@5.0.0, isomorphic-ws@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz#e5529148912ecb9b451b46ed44d53dae1ce04bbf" - integrity sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw== - -isomorphic-ws@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz#55fd4cd6c5e6491e76dc125938dd863f5cd4f2dc" - integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== - -isstream@0.1.x, isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== - -it-all@^1.0.1, it-all@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/it-all/-/it-all-1.0.6.tgz#852557355367606295c4c3b7eff0136f07749335" - integrity sha512-3cmCc6Heqe3uWi3CVM/k51fa/XbMFpQVzFoDsV0IZNHSQDyAXl3c4MjHkFX5kF3922OGj7Myv1nSEUgRtcuM1A== - -it-batch@^1.0.3, it-batch@^1.0.9: - version "1.0.9" - resolved "https://registry.yarnpkg.com/it-batch/-/it-batch-1.0.9.tgz#7e95aaacb3f9b1b8ca6c8b8367892171d6a5b37f" - integrity sha512-7Q7HXewMhNFltTsAMdSz6luNhyhkhEtGGbYek/8Xb/GiqYMtwUmopE1ocPSiJKKp3rM4Dt045sNFoUu+KZGNyA== - -it-first@^1.0.1, it-first@^1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/it-first/-/it-first-1.0.7.tgz#a4bef40da8be21667f7d23e44dae652f5ccd7ab1" - integrity sha512-nvJKZoBpZD/6Rtde6FXqwDqDZGF1sCADmr2Zoc0hZsIvnE449gRFnGctxDf09Bzc/FWnHXAdaHVIetY6lrE0/g== - -it-glob@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/it-glob/-/it-glob-0.0.7.tgz#6ed5c0a6fae6ad687fdec83256260cbe7fcbb2d7" - integrity sha512-XfbziJs4fi0MfdEGTLkZXeqo2EorF2baFXxFn1E2dGbgYMhFTZlZ2Yn/mx5CkpuLWVJvO1DwtTOVW2mzRyVK8w== - dependencies: - fs-extra "^8.1.0" - minimatch "^3.0.4" - -it-glob@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/it-glob/-/it-glob-1.0.2.tgz#bab9b04d6aaac42884502f3a0bfee84c7a29e15e" - integrity sha512-Ch2Dzhw4URfB9L/0ZHyY+uqOnKvBNeS/SMcRiPmJfpHiM0TsUZn+GkpcZxAoF3dJVdPm/PuIk3A4wlV7SUo23Q== - dependencies: - "@types/minimatch" "^3.0.4" - minimatch "^3.0.4" - -it-last@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/it-last/-/it-last-1.0.6.tgz#4106232e5905ec11e16de15a0e9f7037eaecfc45" - integrity sha512-aFGeibeiX/lM4bX3JY0OkVCFkAw8+n9lkukkLNivbJRvNz8lI3YXv5xcqhFUV2lDJiraEK3OXRDbGuevnnR67Q== - -it-map@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/it-map/-/it-map-1.0.6.tgz#6aa547e363eedcf8d4f69d8484b450bc13c9882c" - integrity sha512-XT4/RM6UHIFG9IobGlQPFQUrlEKkU4eBUFG3qhWhfAdh1JfF2x11ShCrKCdmZ0OiZppPfoLuzcfA4cey6q3UAQ== - -it-parallel-batch@^1.0.3: - version "1.0.11" - resolved "https://registry.yarnpkg.com/it-parallel-batch/-/it-parallel-batch-1.0.11.tgz#f889b4e1c7a62ef24111dbafbaaa010b33d00f69" - integrity sha512-UWsWHv/kqBpMRmyZJzlmZeoAMA0F3SZr08FBdbhtbe+MtoEBgr/ZUAKrnenhXCBrsopy76QjRH2K/V8kNdupbQ== - dependencies: - it-batch "^1.0.9" - -it-peekable@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/it-peekable/-/it-peekable-1.0.3.tgz#8ebe933767d9c5aa0ae4ef8e9cb3a47389bced8c" - integrity sha512-5+8zemFS+wSfIkSZyf0Zh5kNN+iGyccN02914BY4w/Dj+uoFEoPSvj5vaWn8pNZJNSxzjW0zHRxC3LUb2KWJTQ== - -it-to-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/it-to-stream/-/it-to-stream-1.0.0.tgz#6c47f91d5b5df28bda9334c52782ef8e97fe3a4a" - integrity sha512-pLULMZMAB/+vbdvbZtebC0nWBTbG581lk6w8P7DfIIIKUfa8FbY7Oi0FxZcFPbxvISs7A9E+cMpLDBc1XhpAOA== - dependencies: - buffer "^6.0.3" - fast-fifo "^1.0.0" - get-iterator "^1.0.2" - p-defer "^3.0.0" - p-fifo "^1.0.0" - readable-stream "^3.6.0" - -jaeger-client@^3.15.0: - version "3.19.0" - resolved "https://registry.yarnpkg.com/jaeger-client/-/jaeger-client-3.19.0.tgz#9b5bd818ebd24e818616ee0f5cffe1722a53ae6e" - integrity sha512-M0c7cKHmdyEUtjemnJyx/y9uX16XHocL46yQvyqDlPdvAcwPDbHrIbKjQdBqtiE4apQ/9dmr+ZLJYYPGnurgpw== - dependencies: - node-int64 "^0.4.0" - opentracing "^0.14.4" - thriftrw "^3.5.0" - uuid "^8.3.2" - xorshift "^1.1.1" - -jake@^10.8.5: - version "10.8.7" - resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.7.tgz#63a32821177940c33f356e0ba44ff9d34e1c7d8f" - integrity sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w== - dependencies: - async "^3.2.3" - chalk "^4.0.2" - filelist "^1.0.4" - minimatch "^3.1.2" - -jayson@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jayson/-/jayson-4.0.0.tgz#145a0ced46f900934c9b307e1332bcb0c7dbdb17" - integrity sha512-v2RNpDCMu45fnLzSk47vx7I+QUaOsox6f5X0CUlabAFwxoP+8MfAY0NQRFwOEYXIxm8Ih5y6OaEa5KYiQMkyAA== - dependencies: - "@types/connect" "^3.4.33" - "@types/node" "^12.12.54" - "@types/ws" "^7.4.4" - JSONStream "^1.3.5" - commander "^2.20.3" - delay "^5.0.0" - es6-promisify "^5.0.0" - eyes "^0.1.8" - isomorphic-ws "^4.0.1" - json-stringify-safe "^5.0.1" - uuid "^8.3.2" - ws "^7.4.5" - -jest-get-type@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.5.1.tgz#3cd613c507b0f7ace013df407a1c1cd578bcb4f1" - integrity sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw== - -jest-validate@^27.3.1, jest-validate@^27.4.2: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.5.1.tgz#9197d54dc0bdb52260b8db40b46ae668e04df067" - integrity sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ== - dependencies: - "@jest/types" "^27.5.1" - camelcase "^6.2.0" - chalk "^4.0.0" - jest-get-type "^27.5.1" - leven "^3.1.0" - pretty-format "^27.5.1" - -jiti@1.17.1: - version "1.17.1" - resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.17.1.tgz#264daa43ee89a03e8be28c3d712ccc4eb9f1e8ed" - integrity sha512-NZIITw8uZQFuzQimqjUxIrIcEdxYDFIe/0xYfIlVXTkiBjjyBEvgasj5bb0/cHtPRD/NziPbT312sFrkI5ALpw== - -jiti@^1.17.1, jiti@^1.19.1, jiti@^1.20.0: - version "1.21.0" - resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.0.tgz#7c97f8fe045724e136a397f7340475244156105d" - integrity sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q== - -jose@^4.11.4: - version "4.15.4" - resolved "https://registry.yarnpkg.com/jose/-/jose-4.15.4.tgz#02a9a763803e3872cf55f29ecef0dfdcc218cc03" - integrity sha512-W+oqK4H+r5sITxfxpSU+MMdr/YSWGvgZMQDIsNoBDGGy4i7GBPTtvFKibQzW06n3U3TqHjhvBJsirShsEJ6eeQ== - -js-sdsl@^4.1.4: - version "4.4.2" - resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.4.2.tgz#2e3c031b1f47d3aca8b775532e3ebb0818e7f847" - integrity sha512-dwXFwByc/ajSV6m5bcKAPwe4yDDF6D614pxmIi5odytzxRlwqF6nwoiCek80Ixc7Cvma5awClxrzFtxCQvcM8w== - -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-sha3@^0.5.7: - version "0.5.7" - resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.5.7.tgz#0d4ffd8002d5333aabaf4a23eed2f6374c9f28e7" - integrity sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g== - -js-string-escape@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/js-string-escape/-/js-string-escape-1.0.1.tgz#e2625badbc0d67c7533e9edc1068c587ae4137ef" - integrity sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg== - -"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-tokens@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" - integrity sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg== - -js-yaml@3.14.1, js-yaml@^3.14.1: - version "3.14.1" - 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.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.0.0.tgz#f426bc0ff4b4051926cd588c71113183409a121f" - integrity sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q== - dependencies: - argparse "^2.0.1" - -js-yaml@4.1.0, js-yaml@^4.0.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" - integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== - -jsdom@^20.0.3: - version "20.0.3" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-20.0.3.tgz#886a41ba1d4726f67a8858028c99489fed6ad4db" - integrity sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ== - dependencies: - abab "^2.0.6" - acorn "^8.8.1" - acorn-globals "^7.0.0" - cssom "^0.5.0" - cssstyle "^2.3.0" - data-urls "^3.0.2" - decimal.js "^10.4.2" - domexception "^4.0.0" - escodegen "^2.0.0" - form-data "^4.0.0" - html-encoding-sniffer "^3.0.0" - http-proxy-agent "^5.0.0" - https-proxy-agent "^5.0.1" - is-potential-custom-element-name "^1.0.1" - nwsapi "^2.2.2" - parse5 "^7.1.1" - saxes "^6.0.0" - symbol-tree "^3.2.4" - tough-cookie "^4.1.2" - w3c-xmlserializer "^4.0.0" - webidl-conversions "^7.0.0" - whatwg-encoding "^2.0.0" - whatwg-mimetype "^3.0.0" - whatwg-url "^11.0.0" - ws "^8.11.0" - xml-name-validator "^4.0.0" - -jsesc@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" - integrity sha512-Mke0DA0QjUWuJlhsE0ZPPhYiJkRap642SmI/4ztCFaUs6V2AiH1sfecc+57NgaryfAA2VR3v6O+CSjC1jZJKOA== - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== - -json-bigint@^1.0.0: - version "1.0.0" - 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.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" - integrity sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ== - -json-buffer@3.0.1: - version "3.0.1" - 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.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@^3.4.0, json-rpc-engine@^3.6.0: - version "3.8.0" - resolved "https://registry.yarnpkg.com/json-rpc-engine/-/json-rpc-engine-3.8.0.tgz#9d4ff447241792e1d0a232f6ef927302bb0c62a9" - 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-error@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/json-rpc-error/-/json-rpc-error-2.0.0.tgz#a7af9c202838b5e905c7250e547f1aff77258a02" - integrity sha512-EwUeWP+KgAZ/xqFpaP6YDAXMtCJi+o/QQpCQFIYyxr01AdADi2y413eM8hSqJcoQym9WMePAJWoaODEJufC4Ug== - dependencies: - inherits "^2.0.1" - -json-rpc-random-id@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-rpc-random-id/-/json-rpc-random-id-1.0.1.tgz#ba49d96aded1444dbb8da3d203748acbbcdec8c8" - integrity sha512-RJ9YYNCkhVDBuP4zN5BBtYAzEl03yq/jIIsyif0JY9qyJuQQZNeDK7anAPKKlyEtLSj2s8h6hNh2F8zO5q7ScA== - -json-schema-ref-resolver@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-schema-ref-resolver/-/json-schema-ref-resolver-1.0.1.tgz#6586f483b76254784fc1d2120f717bdc9f0a99bf" - integrity sha512-EJAj1pgHc1hxF6vo2Z3s69fMjO1INq6eGHXZ8Z6wCQeldCuwxGK9Sxf4/cScGn3FZubCVUehfWtcDM/PLteCQw== - dependencies: - fast-deep-equal "^3.1.3" - -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" - 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" - 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" - 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" - integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== - -json-stable-stringify@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.1.0.tgz#43d39c7c8da34bfaf785a61a56808b0def9f747d" - integrity sha512-zfA+5SuwYN2VWqN1/5HZaDzQKLJHaBVMZIIM+wuYjdptkaQsqzDdqjqf+lZZJUuJq1aanHiY8LhH8LmH+qBYJA== - dependencies: - call-bind "^1.0.5" - isarray "^2.0.5" - jsonify "^0.0.1" - object-keys "^1.1.1" - -json-stringify-safe@^5.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" - integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== - -json-text-sequence@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/json-text-sequence/-/json-text-sequence-0.1.1.tgz#a72f217dc4afc4629fff5feb304dc1bd51a2f3d2" - integrity sha512-L3mEegEWHRekSHjc7+sc8eJhba9Clq1PZ8kMkzf8OxElhXc8O4TS5MwcVlj9aEbm5dr81N90WHC5nAz3UO971w== - dependencies: - delimit-stream "0.1.0" - -json-to-pretty-yaml@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/json-to-pretty-yaml/-/json-to-pretty-yaml-1.2.2.tgz#f4cd0bd0a5e8fe1df25aaf5ba118b099fd992d5b" - integrity sha512-rvm6hunfCcqegwYaG5T4yKJWxc9FXFgBVrcTZ4XfSVRwa5HA/Xs+vB/Eo9treYYHCeNM0nrSUr82V/M31Urc7A== - dependencies: - remedial "^1.0.7" - remove-trailing-spaces "^1.0.6" - -json5@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" - integrity sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw== - -json5@^2.2.0, json5@^2.2.3: - version "2.2.3" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" - integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== - -jsonc-eslint-parser@^1.0.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jsonc-eslint-parser/-/jsonc-eslint-parser-1.4.1.tgz#8cbe99f6f5199acbc5a823c4c0b6135411027fa6" - integrity sha512-hXBrvsR1rdjmB2kQmUjf1rEIa+TqHBGMge8pwi++C+Si1ad7EjZrJcpgwym+QGK/pqTx+K7keFAtLlVNdLRJOg== - dependencies: - acorn "^7.4.1" - eslint-utils "^2.1.0" - eslint-visitor-keys "^1.3.0" - espree "^6.0.0" - semver "^6.3.0" - -jsonc-parser@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz#31ff3f4c2b9793f89c67212627c51c6394f88e76" - integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w== - -jsonfile@^2.1.0: - version "2.4.0" - 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.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.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.yarnpkg.com/jsonify/-/jsonify-0.0.1.tgz#2aa3111dae3d34a0f151c63f3a45d995d9420978" - integrity sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg== - -jsonparse@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" - integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== - -jsonpath@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/jsonpath/-/jsonpath-1.1.1.tgz#0ca1ed8fb65bb3309248cc9d5466d12d5b0b9901" - integrity sha512-l6Cg7jRpixfbgoWgkrl77dgEj8RPvND0wMH6TwQmi9Qs4TFfS9u5cUFnbeKTwj5ga5Y3BTGGNI28k117LJ009w== - dependencies: - esprima "1.2.2" - static-eval "2.0.2" - underscore "1.12.1" - -jsonpointer@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-5.0.1.tgz#2110e0af0900fd37467b5907ecd13a7884a1b559" - integrity sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ== - -jsonwebtoken@9.0.1: - version "9.0.1" - resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-9.0.1.tgz#81d8c901c112c24e497a55daf6b2be1225b40145" - integrity sha512-K8wx7eJ5TPvEjuiVSkv167EVboBDv9PZdDoF7BgeQnBLVvZWW9clr2PsQHVJDTKaEIH5JBIwHujGcHp7GgI2eg== - dependencies: - jws "^3.2.2" - lodash "^4.17.21" - ms "^2.1.1" - semver "^7.3.8" - -jsprim@^1.2.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" - integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.4.0" - verror "1.10.0" - -junk@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/junk/-/junk-4.0.1.tgz#7ee31f876388c05177fe36529ee714b07b50fbed" - integrity sha512-Qush0uP+G8ZScpGMZvHUiRfI0YBWuB3gVBYlI0v0vvOJt5FLicco+IkP0a50LqTTQhmts/m6tP5SWE+USyIvcQ== - -just-safe-get@^2.0.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/just-safe-get/-/just-safe-get-2.1.2.tgz#82c2df6bbb929bf4de8d46c06ef79e1a4dd98918" - integrity sha512-DPWEh00QFgJNyfULPwgc9rTvdiPYVyt69hcgjWbN3lzKMmISW43Hwc+nlRAIo+su6PLVqUOMEUJNYR1xFog7xQ== - -just-safe-set@^2.1.0: - version "2.2.3" - resolved "https://registry.yarnpkg.com/just-safe-set/-/just-safe-set-2.2.3.tgz#b717b71a7237ff9f4b9d1220128a576001a11535" - integrity sha512-6zAkfGKRjB766zXv/UVSGOFKSAqakhwLQDyIR9bmIhJ/e6jS3Ci1VxYTqaiooYZZUw3VLg0sZva8PE6JX/iu2w== - -jwa@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a" - integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA== - dependencies: - buffer-equal-constant-time "1.0.1" - ecdsa-sig-formatter "1.0.11" - safe-buffer "^5.0.1" - -jwa@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/jwa/-/jwa-2.0.0.tgz#a7e9c3f29dae94027ebcaf49975c9345593410fc" - integrity sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA== - dependencies: - buffer-equal-constant-time "1.0.1" - ecdsa-sig-formatter "1.0.11" - safe-buffer "^5.0.1" - -jws@^3.2.2: - version "3.2.2" - resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304" - integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA== - dependencies: - jwa "^1.4.1" - safe-buffer "^5.0.1" - -jws@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jws/-/jws-4.0.0.tgz#2d4e8cf6a318ffaa12615e9dec7e86e6c97310f4" - integrity sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg== - dependencies: - jwa "^2.0.0" - safe-buffer "^5.0.1" - -jwt-decode@3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/jwt-decode/-/jwt-decode-3.1.2.tgz#3fb319f3675a2df0c2895c8f5e9fa4b67b04ed59" - integrity sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A== - -keccak@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.1.tgz#ae30a0e94dbe43414f741375cff6d64c8bea0bff" - integrity sha512-epq90L9jlFWCW7+pQa6JOnKn2Xgl2mtI664seYR6MHskvI9agt7AnDqmAlp9TqU4/caMYbA08Hi5DMZAl5zdkA== - dependencies: - node-addon-api "^2.0.0" - node-gyp-build "^4.2.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" - -keep-func-props@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/keep-func-props/-/keep-func-props-4.0.1.tgz#3a9ab077a1bcc7f98771fd534940826d44cd5df1" - integrity sha512-87ftOIICfdww3SxR5P1veq3ThBNyRPG0JGL//oaR08v0k2yTicEIHd7s0GqSJfQvlb+ybC3GiDepOweo0LDhvw== - dependencies: - mimic-fn "^4.0.0" - -keyv@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" - integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== - dependencies: - json-buffer "3.0.0" - -keyv@^4.0.0, keyv@^4.5.3: - 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" - -keyvaluestorage-interface@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/keyvaluestorage-interface/-/keyvaluestorage-interface-1.0.0.tgz#13ebdf71f5284ad54be94bd1ad9ed79adad515ff" - integrity sha512-8t6Q3TclQ4uZynJY9IGr2+SsIGwK9JHcO6ootkHCGA0CrQCRy+VkouYNO2xicET6b9al7QKzpebNow+gkpCL8g== - -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - integrity sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ== - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - integrity sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw== - dependencies: - is-buffer "^1.1.5" - -kind-of@^6.0.2, kind-of@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" - integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== - -klaw-sync@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/klaw-sync/-/klaw-sync-6.0.0.tgz#1fd2cfd56ebb6250181114f0a581167099c2b28c" - integrity sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ== - dependencies: - graceful-fs "^4.1.11" - -klaw@^1.0.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" - integrity sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw== - optionalDependencies: - graceful-fs "^4.1.9" - -kuler@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/kuler/-/kuler-2.0.0.tgz#e2c570a3800388fb44407e851531c1d670b061b3" - integrity sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A== - -lambda-local@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/lambda-local/-/lambda-local-2.1.2.tgz#22b0ecdc15ae400841e268991402e87566ba0554" - integrity sha512-nGTJn2JxZWcLGpNwXFmXC7UEXL7QCLieQWDiXs46vIv9y/gSPm/uHygEMCaym+HIziniAw0XIm+1VTrXCvG1Zw== - dependencies: - commander "^10.0.1" - dotenv "^16.3.1" - winston "^3.10.0" - -latest-version@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-7.0.0.tgz#843201591ea81a4d404932eeb61240fe04e9e5da" - integrity sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg== - dependencies: - package-json "^8.1.0" - -lazystream@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.1.tgz#494c831062f1f9408251ec44db1cba29242a2638" - integrity sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw== - dependencies: - readable-stream "^2.0.5" - -lcid@^1.0.0: - version "1.0.0" - 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.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.yarnpkg.com/level-codec/-/level-codec-7.0.1.tgz#341f22f907ce0f16763f24bddd681e395a0fb8a7" - integrity sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ== - -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" - 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== - 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" - 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@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/level-iterator-stream/-/level-iterator-stream-2.0.3.tgz#ccfff7c046dcf47955ae9a86f46dfa06a31688b4" - integrity sha512-I6Heg70nfF+e5Y3/qfthJFexhRw/Gi3bIymCoXAlijZdAcLaPuWSJs3KXyTYf23ID6g0o2QF62Yh+grOXY3Rig== - 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.yarnpkg.com/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz#e43b78b1a8143e6fa97a4f485eb8ea530352f2ed" - 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@~3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/level-iterator-stream/-/level-iterator-stream-3.0.1.tgz#2c98a4f8820d87cdacab3132506815419077c730" - integrity sha512-nEIQvxEED9yRThxvOrq8Aqziy4EGzrxSZK+QzEFAVuJvQ8glfyZ96GB6BoI4sBbLfjMXm2w4vu3Tkcm9obcY0g== - 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.yarnpkg.com/level-iterator-stream/-/level-iterator-stream-4.0.2.tgz#7ceba69b713b0d7e22fcc0d1f128ccdc8a24f79c" - integrity sha512-ZSthfEqzGSOMWoUGhTXdX9jv26d32XJuHz/5YnuHZzH6wldfWMOVwI9TBtKcya4BKTyTt3XVA0A3cF3q5CY30Q== - dependencies: - inherits "^2.0.4" - readable-stream "^3.4.0" - xtend "^4.0.2" - -level-js@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/level-js/-/level-js-4.0.2.tgz#fa51527fa38b87c4d111b0d0334de47fcda38f21" - integrity sha512-PeGjZsyMG4O89KHiez1zoMJxStnkM+oBIqgACjoo5PJqFiSUUm3GNod/KcbqN5ktyZa8jkG7I1T0P2u6HN9lIg== - dependencies: - abstract-leveldown "~6.0.1" - immediate "~3.2.3" - inherits "^2.0.3" - ltgt "^2.1.2" - typedarray-to-buffer "~3.1.5" - -level-mem@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/level-mem/-/level-mem-3.0.1.tgz#7ce8cf256eac40f716eb6489654726247f5a89e5" - integrity sha512-LbtfK9+3Ug1UmvvhR2DqLqXiPW1OJ5jEh0a3m9ZgAipiwpSxGj/qaVVy54RG5vAQN1nCuXqjvprCuKSCxcJHBg== - dependencies: - level-packager "~4.0.0" - memdown "~3.0.0" - -level-packager@^5.0.0: - version "5.1.1" - 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" - levelup "^4.3.2" - -level-packager@~4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/level-packager/-/level-packager-4.0.1.tgz#7e7d3016af005be0869bc5fa8de93d2a7f56ffe6" - integrity sha512-svCRKfYLn9/4CoFfi+d8krOtrp6RoX8+xm0Na5cgXMqSyRru0AnDYdLl+YI8u1FyS6gGZ94ILLZDE5dh2but3Q== - dependencies: - encoding-down "~5.0.0" - levelup "^3.0.0" - -level-post@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/level-post/-/level-post-1.0.7.tgz#19ccca9441a7cc527879a0635000f06d5e8f27d0" - integrity sha512-PWYqG4Q00asOrLhX7BejSajByB4EmG2GaKHfj3h5UmmZ2duciXLPGYWIjBzLECFWUGOZWlm5B20h/n3Gs3HKew== - dependencies: - ltgt "^2.1.2" - -level-sublevel@6.6.4: - version "6.6.4" - resolved "https://registry.yarnpkg.com/level-sublevel/-/level-sublevel-6.6.4.tgz#f7844ae893919cd9d69ae19d7159499afd5352ba" - integrity sha512-pcCrTUOiO48+Kp6F1+UAzF/OtWqLcQVTVF39HLdZ3RO8XBoXt+XVPKZO1vVr1aUoxHZA9OtD2e1v7G+3S5KFDA== - 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@^4.0.0: - version "4.0.1" - 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.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.yarnpkg.com/level-transcoder/-/level-transcoder-1.0.1.tgz#f8cef5990c4f1283d4c86d949e73631b0bc8ba9c" - 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@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/level-ws/-/level-ws-1.0.0.tgz#19a22d2d4ac57b18cc7c6ecc4bd23d899d8f603b" - integrity sha512-RXEfCmkd6WWFlArh3X8ONvQPm8jNpfA0s/36M4QzLqrLEIt1iJE9WBHLZ5vZJK6haMjJPJGJCQWfjMNnRcq/9Q== - dependencies: - inherits "^2.0.3" - readable-stream "^2.2.8" - xtend "^4.0.1" - -level@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/level/-/level-5.0.1.tgz#8528cc1ee37ac413270129a1eab938c610be3ccb" - integrity sha512-wcak5OQeA4rURGacqS62R/xNHjCYnJSQDBOlm4KNUGJVE9bWv2B04TclqReYejN+oD65PzD4FsqeWoI5wNC5Lg== - dependencies: - level-js "^4.0.0" - level-packager "^5.0.0" - leveldown "^5.0.0" - opencollective-postinstall "^2.0.0" - -level@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/level/-/level-8.0.0.tgz#41b4c515dabe28212a3e881b61c161ffead14394" - integrity sha512-ypf0jjAk2BWI33yzEaaotpq7fkOPALKAgDBxggO6Q9HGX2MRXn0wbP1Jn/tJv1gtL867+YOjOB49WaUF3UoJNQ== - dependencies: - browser-level "^1.0.1" - classic-level "^1.2.0" - -leveldown@^5.0.0: - version "5.6.0" - resolved "https://registry.yarnpkg.com/leveldown/-/leveldown-5.6.0.tgz#16ba937bb2991c6094e13ac5a6898ee66d3eee98" - integrity sha512-iB8O/7Db9lPaITU1aA2txU/cBEXAt4vWwKQRrrWuS6XDgbP4QZGj9BL2aNbwb002atoQ/lIotJkfyzz+ygQnUQ== - dependencies: - abstract-leveldown "~6.2.1" - napi-macros "~2.0.0" - node-gyp-build "~4.1.0" - -levelup@3.1.1, levelup@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/levelup/-/levelup-3.1.1.tgz#c2c0b3be2b4dc316647c53b42e2f559e232d2189" - integrity sha512-9N10xRkUU4dShSRRFTBdNaBxofz+PGaIZO962ckboJZiNmLuhVT6FZ6ZKAsICKfUBO76ySaYU6fJWX/jnj3Lcg== - dependencies: - deferred-leveldown "~4.0.0" - level-errors "~2.0.0" - level-iterator-stream "~3.0.0" - xtend "~4.0.0" - -levelup@^1.2.1: - version "1.3.9" - resolved "https://registry.yarnpkg.com/levelup/-/levelup-1.3.9.tgz#2dbcae845b2bb2b6bea84df334c475533bbd82ab" - 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.yarnpkg.com/levelup/-/levelup-4.4.0.tgz#f89da3a228c38deb49c48f88a70fb71f01cafed6" - integrity sha512-94++VFO3qN95cM/d6eBXvd894oJE0w3cInq9USsyQzzoJxmiYzPAocNcuGCPGGjoXqDVJcr3C1jzt1TSjyaiLQ== - 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" - -leven@^3.1.0, "leven@^3.1.0 < 4": - version "3.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" - integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== - -levn@^0.4.1: - version "0.4.1" - 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" - type-check "~0.4.0" - -levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - -light-my-request@^5.6.1: - version "5.11.0" - resolved "https://registry.yarnpkg.com/light-my-request/-/light-my-request-5.11.0.tgz#90e446c303b3a47b59df38406d5f5c2cf224f2d1" - integrity sha512-qkFCeloXCOMpmEdZ/MV91P8AT4fjwFXWaAFz3lUeStM8RcoM1ks4J/F8r1b3r6y/H4u3ACEJ1T+Gv5bopj7oDA== - dependencies: - cookie "^0.5.0" - process-warning "^2.0.0" - set-cookie-parser "^2.4.1" - -lilconfig@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" - integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== - -lilconfig@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.0.0.tgz#f8067feb033b5b74dab4602a5f5029420be749bc" - integrity sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g== - -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" - integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== - -linkify-it@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-4.0.1.tgz#01f1d5e508190d06669982ba31a7d9f56a5751ec" - integrity sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw== - dependencies: - uc.micro "^1.0.1" - -lint-staged@^11.0.0: - version "11.2.6" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-11.2.6.tgz#f477b1af0294db054e5937f171679df63baa4c43" - integrity sha512-Vti55pUnpvPE0J9936lKl0ngVeTdSZpEdTNhASbkaWX7J5R9OEifo1INBGQuGW4zmy6OG+TcWPJ3m5yuy5Q8Tg== - dependencies: - cli-truncate "2.1.0" - colorette "^1.4.0" - commander "^8.2.0" - cosmiconfig "^7.0.1" - debug "^4.3.2" - enquirer "^2.3.6" - execa "^5.1.1" - listr2 "^3.12.2" - micromatch "^4.0.4" - normalize-path "^3.0.0" - please-upgrade-node "^3.2.0" - string-argv "0.3.1" - stringify-object "3.3.0" - supports-color "8.1.1" - -listhen@^1.5.5: - version "1.5.5" - resolved "https://registry.yarnpkg.com/listhen/-/listhen-1.5.5.tgz#58915512af70f770aa3e9fb19367adf479bb58c4" - integrity sha512-LXe8Xlyh3gnxdv4tSjTjscD1vpr/2PRpzq8YIaMJgyKzRG8wdISlWVWnGThJfHnlJ6hmLt2wq1yeeix0TEbuoA== - dependencies: - "@parcel/watcher" "^2.3.0" - "@parcel/watcher-wasm" "2.3.0" - citty "^0.1.4" - clipboardy "^3.0.0" - consola "^3.2.3" - defu "^6.1.2" - get-port-please "^3.1.1" - h3 "^1.8.1" - http-shutdown "^1.2.2" - jiti "^1.20.0" - mlly "^1.4.2" - node-forge "^1.3.1" - pathe "^1.1.1" - std-env "^3.4.3" - ufo "^1.3.0" - untun "^0.1.2" - uqr "^0.1.2" - -listr-silent-renderer@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e" - integrity sha512-L26cIFm7/oZeSNVhWB6faeorXhMg4HNlb/dS/7jHhr708jxlXrtrBWo4YUxZQkc6dGoxEAe6J/D3juTRBUzjtA== - -listr-update-renderer@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz#4ea8368548a7b8aecb7e06d8c95cb45ae2ede6a2" - integrity sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA== - dependencies: - chalk "^1.1.3" - cli-truncate "^0.2.1" - elegant-spinner "^1.0.1" - figures "^1.7.0" - indent-string "^3.0.0" - log-symbols "^1.0.2" - log-update "^2.3.0" - strip-ansi "^3.0.1" - -listr-verbose-renderer@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz#f1132167535ea4c1261102b9f28dac7cba1e03db" - integrity sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw== - dependencies: - chalk "^2.4.1" - cli-cursor "^2.1.0" - date-fns "^1.27.2" - figures "^2.0.0" - -listr2@^3.12.2: - version "3.14.0" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.14.0.tgz#23101cc62e1375fd5836b248276d1d2b51fdbe9e" - integrity sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g== - dependencies: - cli-truncate "^2.1.0" - colorette "^2.0.16" - log-update "^4.0.0" - p-map "^4.0.0" - rfdc "^1.3.0" - rxjs "^7.5.1" - through "^2.3.8" - wrap-ansi "^7.0.0" - -listr2@^4.0.5: - version "4.0.5" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-4.0.5.tgz#9dcc50221583e8b4c71c43f9c7dfd0ef546b75d5" - integrity sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA== - dependencies: - cli-truncate "^2.1.0" - colorette "^2.0.16" - log-update "^4.0.0" - p-map "^4.0.0" - rfdc "^1.3.0" - rxjs "^7.5.5" - through "^2.3.8" - wrap-ansi "^7.0.0" - -listr@0.14.3: - version "0.14.3" - resolved "https://registry.yarnpkg.com/listr/-/listr-0.14.3.tgz#2fea909604e434be464c50bddba0d496928fa586" - integrity sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA== - dependencies: - "@samverschueren/stream-to-observable" "^0.3.0" - is-observable "^1.1.0" - is-promise "^2.1.0" - is-stream "^1.1.0" - listr-silent-renderer "^1.1.1" - listr-update-renderer "^0.5.0" - listr-verbose-renderer "^0.5.0" - p-map "^2.0.0" - rxjs "^6.3.3" - -lit-element@^3.3.0: - version "3.3.3" - resolved "https://registry.yarnpkg.com/lit-element/-/lit-element-3.3.3.tgz#10bc19702b96ef5416cf7a70177255bfb17b3209" - integrity sha512-XbeRxmTHubXENkV4h8RIPyr8lXc+Ff28rkcQzw3G6up2xg5E8Zu1IgOWIwBLEQsu3cOVFqdYwiVi0hv0SlpqUA== - dependencies: - "@lit-labs/ssr-dom-shim" "^1.1.0" - "@lit/reactive-element" "^1.3.0" - lit-html "^2.8.0" - -lit-html@^2.8.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/lit-html/-/lit-html-2.8.0.tgz#96456a4bb4ee717b9a7d2f94562a16509d39bffa" - integrity sha512-o9t+MQM3P4y7M7yNzqAyjp7z+mQGa4NS4CxiyLqFPyFWyc4O+nodLrkrxSaCTrla6M5YOLaT3RpbbqjszB5g3Q== - dependencies: - "@types/trusted-types" "^2.0.2" - -lit@2.8.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/lit/-/lit-2.8.0.tgz#4d838ae03059bf9cafa06e5c61d8acc0081e974e" - integrity sha512-4Sc3OFX9QHOJaHbmTMk28SYgVxLN3ePDjg7hofEft2zWlehFL3LiAuapWc4U/kYwMYJSh2hTCPZ6/LIC7ii0MA== - dependencies: - "@lit/reactive-element" "^1.6.0" - lit-element "^3.3.0" - lit-html "^2.8.0" - -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" - integrity sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A== - 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" - -local-pkg@^0.4.2, local-pkg@^0.4.3: - version "0.4.3" - resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.4.3.tgz#0ff361ab3ae7f1c19113d9bb97b98b905dbc4963" - integrity sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g== - -locate-path@7.2.0, locate-path@^7.0.0, locate-path@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-7.2.0.tgz#69cb1779bd90b35ab1e771e1f2f89a202c2a8a8a" - integrity sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA== - dependencies: - p-locate "^6.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" - 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.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" - 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.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.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - -lodash-es@^4.17.21: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" - integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== - -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" - 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" - integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== - -lodash.defaults@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" - integrity sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ== - -lodash.has@^4.5.2: - version "4.5.2" - resolved "https://registry.yarnpkg.com/lodash.has/-/lodash.has-4.5.2.tgz#d19f4dc1095058cccbe2b0cdf4ee0fe4aa37c862" - integrity sha512-rnYUdIo6xRCJnQmbVFEwcxF144erlD+M3YcJUVesflU9paQaE8p+fJDcIQrlMYbxoANFL+AB9hZrzSBBk5PL+g== - -lodash.isarguments@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" - integrity sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg== - -lodash.isempty@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.isempty/-/lodash.isempty-4.4.0.tgz#6f86cbedd8be4ec987be9aaf33c9684db1b31e7e" - integrity sha512-oKMuF3xEeqDltrGMfDxAPGIVMSSRv8tbRSODbrs4KGsRRLEhrW8N8Rd4DRgB2+621hY8A8XwwrTVhXWpxFvMzg== - -lodash.isequal@4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" - integrity sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ== - -lodash.isplainobject@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" - integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== - -lodash.kebabcase@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" - integrity sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g== - -lodash.lowercase@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/lodash.lowercase/-/lodash.lowercase-4.3.0.tgz#46515aced4acb0b7093133333af068e4c3b14e9d" - integrity sha512-UcvP1IZYyDKyEL64mmrwoA1AbFu5ahojhTtkOUr1K9dbuxzS9ev8i4TxMMGCqRC9TE8uDaSoufNAXxRPNTseVA== - -lodash.lowerfirst@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/lodash.lowerfirst/-/lodash.lowerfirst-4.3.1.tgz#de3c7b12e02c6524a0059c2f6cb7c5c52655a13d" - integrity sha512-UUKX7VhP1/JL54NXg2aq/E1Sfnjjes8fNYTNkPU8ZmsaVeBvPHKdbNaN79Re5XRL01u6wbq3j0cbYZj71Fcu5w== - -lodash.merge@4.6.2, lodash.merge@^4.6.2: - version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - -lodash.pad@^4.5.1: - version "4.5.1" - resolved "https://registry.yarnpkg.com/lodash.pad/-/lodash.pad-4.5.1.tgz#4330949a833a7c8da22cc20f6a26c4d59debba70" - integrity sha512-mvUHifnLqM+03YNzeTBS1/Gr6JRFjd3rRx88FHWUvamVaT9k2O/kXha3yBSOwB9/DTQrSTLJNHvLBBt2FdX7Mg== - -lodash.padend@^4.6.1: - version "4.6.1" - resolved "https://registry.yarnpkg.com/lodash.padend/-/lodash.padend-4.6.1.tgz#53ccba047d06e158d311f45da625f4e49e6f166e" - integrity sha512-sOQs2aqGpbl27tmCS1QNZA09Uqp01ZzWfDUoD+xzTii0E7dSQfRKcRetFwa+uXaxaqL+TKm7CgD2JdKP7aZBSw== - -lodash.padstart@^4.6.1: - version "4.6.1" - resolved "https://registry.yarnpkg.com/lodash.padstart/-/lodash.padstart-4.6.1.tgz#d2e3eebff0d9d39ad50f5cbd1b52a7bce6bb611b" - integrity sha512-sW73O6S8+Tg66eY56DBk85aQzzUJDtpoXFBgELMd5P/SotAguo+1kYO6RuYgXxA4HJH3LFTFPASX6ET6bjfriw== - -lodash.repeat@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/lodash.repeat/-/lodash.repeat-4.1.0.tgz#fc7de8131d8c8ac07e4b49f74ffe829d1f2bec44" - integrity sha512-eWsgQW89IewS95ZOcr15HHCX6FVDxq3f2PNUIng3fyzsPev9imFQxIYdFZ6crl8L56UR6ZlGDLcEb3RZsCSSqw== - -lodash.snakecase@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz#39d714a35357147837aefd64b5dcbb16becd8f8d" - integrity sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw== - -lodash.startcase@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.startcase/-/lodash.startcase-4.4.0.tgz#9436e34ed26093ed7ffae1936144350915d9add8" - integrity sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg== - -lodash.transform@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.transform/-/lodash.transform-4.6.0.tgz#12306422f63324aed8483d3f38332b5f670547a0" - integrity sha512-LO37ZnhmBVx0GvOU/caQuipEh4GN82TcWv3yHlebGDgOxbxiwwzW5Pcx2AcvpIv2WmvmSMoC492yQFNhy/l/UQ== - -lodash.trim@^4.5.1: - version "4.5.1" - resolved "https://registry.yarnpkg.com/lodash.trim/-/lodash.trim-4.5.1.tgz#36425e7ee90be4aa5e27bcebb85b7d11ea47aa57" - integrity sha512-nJAlRl/K+eiOehWKDzoBVrSMhK0K3A3YQsUNXHQa5yIrKBAhsZgSu3KoAFoFT+mEgiyBHddZ0pRk1ITpIp90Wg== - -lodash.trimend@^4.5.1: - version "4.5.1" - resolved "https://registry.yarnpkg.com/lodash.trimend/-/lodash.trimend-4.5.1.tgz#12804437286b98cad8996b79414e11300114082f" - integrity sha512-lsD+k73XztDsMBKPKvzHXRKFNMohTjoTKIIo4ADLn5dA65LZ1BqlAvSXhR2rPEC3BgAUQnzMnorqDtqn2z4IHA== - -lodash.trimstart@^4.5.1: - version "4.5.1" - resolved "https://registry.yarnpkg.com/lodash.trimstart/-/lodash.trimstart-4.5.1.tgz#8ff4dec532d82486af59573c39445914e944a7f1" - integrity sha512-b/+D6La8tU76L/61/aN0jULWHkT0EeJCmVstPBn/K9MtD2qBW83AsBNrr63dKuWYwVMO7ucv13QNO/Ek/2RKaQ== - -lodash.truncate@^4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" - integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== - -lodash.uppercase@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/lodash.uppercase/-/lodash.uppercase-4.3.0.tgz#c404abfd1469f93931f9bb24cf6cc7d57059bc73" - integrity sha512-+Nbnxkj7s8K5U8z6KnEYPGUOGp3woZbB7Ecs7v3LkkjLQSm2kP9SKIILitN1ktn2mB/tmM9oSlku06I+/lH7QA== - -lodash.upperfirst@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz#1365edf431480481ef0d1c68957a5ed99d49f7ce" - integrity sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg== - -lodash@4.17.20: - version "4.17.20" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" - integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== - -lodash@4.17.21, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@~4.17.0: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -log-process-errors@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/log-process-errors/-/log-process-errors-8.0.0.tgz#f88a9556e4914037ad97ceee24b148dc1b566dfd" - integrity sha512-+SNGqNC1gCMJfhwYzAHr/YgNT/ZJc+V2nCkvtPnjrENMeCe+B/jgShBW0lmWoh6uVV2edFAPc/IUOkDdsjTbTg== - dependencies: - colors-option "^3.0.0" - figures "^4.0.0" - filter-obj "^3.0.0" - jest-validate "^27.4.2" - map-obj "^5.0.0" - moize "^6.1.0" - semver "^7.3.5" - -log-symbols@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920" - integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA== - dependencies: - chalk "^4.0.0" - -log-symbols@4.1.0, log-symbols@^4.0.0, log-symbols@^4.1.0: - version "4.1.0" - 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" - -log-symbols@5.1.0, log-symbols@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-5.1.0.tgz#a20e3b9a5f53fac6aeb8e2bb22c07cf2c8f16d93" - integrity sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA== - dependencies: - chalk "^5.0.0" - is-unicode-supported "^1.1.0" - -log-symbols@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" - integrity sha512-mmPrW0Fh2fxOzdBbFv4g1m6pR72haFLPJ2G5SJEELf1y+iaQrDG6cWCPjy54RHYbZAt7X+ls690Kw62AdWXBzQ== - dependencies: - chalk "^1.0.0" - -log-symbols@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-3.0.0.tgz#f3a08516a5dea893336a7dee14d18a1cfdab77c4" - integrity sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ== - dependencies: - chalk "^2.4.2" - -log-update@5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/log-update/-/log-update-5.0.1.tgz#9e928bf70cb183c1f0c9e91d9e6b7115d597ce09" - integrity sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw== - dependencies: - ansi-escapes "^5.0.0" - cli-cursor "^4.0.0" - slice-ansi "^5.0.0" - strip-ansi "^7.0.1" - wrap-ansi "^8.0.1" - -log-update@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/log-update/-/log-update-2.3.0.tgz#88328fd7d1ce7938b29283746f0b1bc126b24708" - integrity sha512-vlP11XfFGyeNQlmEn9tJ66rEW1coA/79m5z6BCkudjbAGE83uhAcGYrBFwfs3AdLiLzGRusRPAbSPK9xZteCmg== - dependencies: - ansi-escapes "^3.0.0" - cli-cursor "^2.0.0" - wrap-ansi "^3.0.1" - -log-update@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1" - integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== - dependencies: - ansi-escapes "^4.3.0" - cli-cursor "^3.1.0" - slice-ansi "^4.0.0" - wrap-ansi "^6.2.0" - -logform@^2.3.2, logform@^2.4.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/logform/-/logform-2.6.0.tgz#8c82a983f05d6eaeb2d75e3decae7a768b2bf9b5" - integrity sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ== - dependencies: - "@colors/colors" "1.6.0" - "@types/triple-beam" "^1.3.2" - fecha "^4.2.0" - ms "^2.1.1" - safe-stable-stringify "^2.3.1" - triple-beam "^1.3.0" - -logplease@^1.2.15: - version "1.2.15" - resolved "https://registry.yarnpkg.com/logplease/-/logplease-1.2.15.tgz#3da442e93751a5992cc19010a826b08d0293c48a" - integrity sha512-jLlHnlsPSJjpwUfcNyUxXCl33AYg2cHhIf9QhGL2T4iPT0XPB+xP1LRKFPgIg1M/sg9kAJvy94w9CzBNrfnstA== - -long@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/long/-/long-2.4.0.tgz#9fa180bb1d9500cdc29c4156766a1995e1f4524f" - integrity sha512-ijUtjmO/n2A5PaosNG9ZGDsQ3vxJg7ZW8vsY8Kp0f2yIZWhSJvjmegV7t+9RPQKxKrvj8yKGehhS+po14hPLGQ== - -long@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" - integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== - -long@^5.0.0, long@^5.2.0: - version "5.2.3" - resolved "https://registry.yarnpkg.com/long/-/long-5.2.3.tgz#a3ba97f3877cf1d778eccbcb048525ebb77499e1" - integrity sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q== - -looper@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/looper/-/looper-2.0.0.tgz#66cd0c774af3d4fedac53794f742db56da8f09ec" - integrity sha512-6DzMHJcjbQX/UPHc1rRCBfKlLwDkvuGZ715cIR36wSdYqWXFT35uLXq5P/2orl3tz+t+VOVPxw4yPinQlUDGDQ== - -looper@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/looper/-/looper-3.0.0.tgz#2efa54c3b1cbaba9b94aee2e5914b0be57fbb749" - integrity sha512-LJ9wplN/uSn72oJRsXTx+snxPet5c8XiZmOKCm906NVYu+ag6SB6vUcnJcWxgnl2NfbIyeobAn7Bwv6xRj2XJg== - -loose-envify@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -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.1" - -lower-case-first@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/lower-case-first/-/lower-case-first-2.0.2.tgz#64c2324a2250bf7c37c5901e76a5b5309301160b" - integrity sha512-EVm/rR94FJTZi3zefZ82fLWab+GX14LJN4HrWBcuo6Evmsl9hEfnqxgcHCKb9q+mNf6EVdsjx/qucYFIIB84pg== - dependencies: - tslib "^2.0.3" - -lower-case@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" - integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== - dependencies: - tslib "^2.0.3" - -lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" - integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== - -lowercase-keys@^2.0.0: - version "2.0.0" - 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.yarnpkg.com/lowercase-keys/-/lowercase-keys-3.0.0.tgz#c5e7d442e37ead247ae9db117a9d0a467c89d4f2" - integrity sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ== - -lru-cache@5.1.1, lru-cache@^5.1.1: - version "5.1.1" - 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@^10.0.2, "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" - integrity sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag== - -lru-cache@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-3.2.0.tgz#71789b3b7f5399bec8565dda38aa30d2a097efee" - integrity sha512-91gyOKTc2k66UG6kHiH4h3S2eltcPwE1STVfMYC/NG+nZwf8IIuiamfmpGZjpbbxzSyEJaLC0tNSmhjlQUTJow== - dependencies: - pseudomap "^1.0.1" - -lru-cache@^6.0.0: - version "6.0.0" - 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_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.1.2, ltgt@~2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ltgt/-/ltgt-2.2.1.tgz#f35ca91c493f7b73da0e07495304f17b31f87ee5" - integrity sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA== - -ltgt@~2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ltgt/-/ltgt-2.1.3.tgz#10851a06d9964b971178441c23c9e52698eece34" - integrity sha512-5VjHC5GsENtIi5rbJd+feEpDKhfr7j0odoUR2Uh978g+2p93nd5o34cTjQWohXsPsCZeqoDnIqEf88mPCe0Pfw== - -luxon@^3.1.1, luxon@^3.2.1: - version "3.4.4" - resolved "https://registry.yarnpkg.com/luxon/-/luxon-3.4.4.tgz#cf20dc27dc532ba41a169c43fdcc0063601577af" - integrity sha512-zobTr7akeGHnv7eBOXcRgMeCP6+uyYsczwmeRCauvpvaAltgNyTbLH/+VaEAPUeWBT+1GuNmz4wC/6jtQzbbVA== - -maci-common@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/maci-common/-/maci-common-1.1.2.tgz#8105633d2425a3ce7cf7b3d6700cf82987287b08" - integrity sha512-KFaKDT6+QlfAX3B3EZVmitdQ2SD76qouQneFwm7OFfu4lF4RWWEak8J4F/lbS8fqJ1wG4PGTgTv7H9swJycCBw== - -macos-release@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-3.2.0.tgz#dcee82b6a4932971b1538dbf6f3aabc4a903b613" - integrity sha512-fSErXALFNsnowREYZ49XCdOHF8wOPWuFOGQrAhP7x5J/BqQv+B02cNsTykGpDgRVx43EKg++6ANmTaGTtW+hUA== - -magic-string@^0.26.7: - version "0.26.7" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.26.7.tgz#caf7daf61b34e9982f8228c4527474dac8981d6f" - integrity sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow== - dependencies: - sourcemap-codec "^1.4.8" - -magic-string@^0.27.0: - version "0.27.0" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.27.0.tgz#e4a3413b4bab6d98d2becffd48b4a257effdbbf3" - integrity sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA== - dependencies: - "@jridgewell/sourcemap-codec" "^1.4.13" - -magic-string@^0.30.3, magic-string@^0.30.5: - version "0.30.5" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.5.tgz#1994d980bd1c8835dc6e78db7cbd4ae4f24746f9" - integrity sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA== - dependencies: - "@jridgewell/sourcemap-codec" "^1.4.15" - -make-dir@^3.0.0, make-dir@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== - dependencies: - semver "^6.0.0" - -make-dir@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e" - integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw== - dependencies: - semver "^7.5.3" - -make-error@^1.1.1: - version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== - -map-cache@^0.2.0, map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg== - -map-obj@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" - integrity sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg== - -map-obj@^4.0.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a" - integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== - -map-obj@^5.0.0: - version "5.0.2" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-5.0.2.tgz#174ad9f7e5e4e777a219126d9a734ff3e14a1c68" - integrity sha512-K6K2NgKnTXimT3779/4KxSvobxOtMmx1LBZ3NwRxT/MDIR3Br/fQ4Q+WCX5QxjyUR8zg5+RV9Tbf2c5pAWTD2A== - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w== - dependencies: - object-visit "^1.0.0" - -markdown-it-link-attributes@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/markdown-it-link-attributes/-/markdown-it-link-attributes-4.0.1.tgz#25751f2cf74fd91f0a35ba7b3247fa45f2056d88" - integrity sha512-pg5OK0jPLg62H4k7M9mRJLT61gUp9nvG0XveKYHMOOluASo9OEF13WlXrpAp2aj35LbedAy3QOCgQCw0tkLKAQ== - -markdown-it@^13.0.1: - version "13.0.2" - resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-13.0.2.tgz#1bc22e23379a6952e5d56217fbed881e0c94d536" - integrity sha512-FtwnEuuK+2yVU7goGn/MJ0WBZMM9ZPgU9spqlFs7/A/pDIUNSOQZhUgOqYCficIuR2QaFnrt8LHqBWsbTAoI5w== - dependencies: - argparse "^2.0.1" - entities "~3.0.1" - linkify-it "^4.0.1" - mdurl "^1.0.1" - uc.micro "^1.0.5" - -maxstache-stream@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/maxstache-stream/-/maxstache-stream-1.0.4.tgz#9c7f5cab7e5fdd2d90da86143b4e9631ea328040" - integrity sha512-v8qlfPN0pSp7bdSoLo1NTjG43GXGqk5W2NWFnOCq2GlmFFqebGzPCjLKSbShuqIOVorOtZSAy7O/S1OCCRONUw== - dependencies: - maxstache "^1.0.0" - pump "^1.0.0" - split2 "^1.0.0" - through2 "^2.0.0" - -maxstache@^1.0.0: - version "1.0.7" - resolved "https://registry.yarnpkg.com/maxstache/-/maxstache-1.0.7.tgz#2231d5180ba783d5ecfc31c45fedac7ae4276984" - integrity sha512-53ZBxHrZM+W//5AcRVewiLpDunHnucfdzZUGz54Fnvo4tE+J3p8EL66kBrs2UhBXvYKTWckWYYWBqJqoTcenqg== - -mcl-wasm@^0.7.1: - version "0.7.9" - resolved "https://registry.yarnpkg.com/mcl-wasm/-/mcl-wasm-0.7.9.tgz#c1588ce90042a8700c3b60e40efb339fc07ab87f" - integrity sha512-iJIUcQWA88IJB/5L15GnJVnSQJmf/YaxxV6zRavv83HILHaJQb6y0iFyDMdDO0gN8X37tdxmAOrH/P8B6RB8sQ== - -md5-hex@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/md5-hex/-/md5-hex-3.0.1.tgz#be3741b510591434b2784d79e556eefc2c9a8e5c" - integrity sha512-BUiRtTtV39LIJwinWBjqVsU9xhdnz7/i889V859IBFpuqGAj6LuOvHv5XLbgZ2R7ptJoJaEcxkv88/h25T7Ciw== - dependencies: - blueimp-md5 "^2.10.0" - -md5.js@^1.3.4: - version "1.3.5" - 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" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -mdurl@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" - integrity sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g== - -media-typer@0.3.0: - version "0.3.0" - 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.yarnpkg.com/memdown/-/memdown-1.4.1.tgz#b4e4e192174664ffbae41361aa500f3119efe215" - 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@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/memdown/-/memdown-3.0.0.tgz#93aca055d743b20efc37492e9e399784f2958309" - integrity sha512-tbV02LfZMWLcHcq4tw++NuqMO+FZX8tNJEiD2aNRm48ZZusVg5N8NART+dmBkepJVye986oixErf7jfXboMGMA== - 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" - -memoize-one@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-6.0.0.tgz#b2591b871ed82948aee4727dc6abceeeac8c1045" - integrity sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw== - -memory-level@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/memory-level/-/memory-level-1.0.0.tgz#7323c3fd368f9af2f71c3cd76ba403a17ac41692" - integrity sha512-UXzwewuWeHBz5krr7EvehKcmLFNoXxGcvuYhC41tRnkrTbJohtS7kVn9akmgirtRygg+f7Yjsfi8Uu5SGSQ4Og== - dependencies: - abstract-level "^1.0.0" - functional-red-black-tree "^1.0.1" - module-error "^1.0.1" - -memorystream@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" - integrity sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw== - -meow@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/meow/-/meow-9.0.0.tgz#cd9510bc5cac9dee7d03c73ee1f9ad959f4ea364" - integrity sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ== - dependencies: - "@types/minimist" "^1.2.0" - camelcase-keys "^6.2.2" - decamelize "^1.2.0" - decamelize-keys "^1.1.0" - hard-rejection "^2.1.0" - minimist-options "4.1.0" - normalize-package-data "^3.0.0" - read-pkg-up "^7.0.1" - redent "^3.0.0" - trim-newlines "^3.0.0" - type-fest "^0.18.0" - yargs-parser "^20.2.3" - -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== - -merge-options@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-options/-/merge-options-2.0.0.tgz#36ca5038badfc3974dbde5e58ba89d3df80882c3" - integrity sha512-S7xYIeWHl2ZUKF7SDeBhGg6rfv5bKxVBdk95s/I7wVF8d+hjLSztJ/B271cnUiF6CAFduEQ5Zn3HYwAjT16DlQ== - dependencies: - is-plain-obj "^2.0.0" - -merge-options@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/merge-options/-/merge-options-3.0.4.tgz#84709c2aa2a4b24c1981f66c179fe5565cc6dbb7" - integrity sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ== - dependencies: - is-plain-obj "^2.1.0" - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -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@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/merkle-patricia-tree/-/merkle-patricia-tree-3.0.0.tgz#448d85415565df72febc33ca362b8b614f5a58f8" - integrity sha512-soRaMuNf/ILmw3KWbybaCjhx86EYeBbD8ph0edQCTed0JN/rxDt1EBN52Ajre3VyGo+91f8+/rfPIRQnnGMqmQ== - 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" - -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" - 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" - -meros@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/meros/-/meros-1.3.0.tgz#c617d2092739d55286bf618129280f362e6242f2" - integrity sha512-2BNGOimxEz5hmjUG2FwoxCt5HN7BXdaWyFqEwxPTrJzVdABtrL4TiHTcsWSFAxPQ/tOnEaQEJh3qWq71QRMY+w== - -methods@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== - -micro-api-client@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/micro-api-client/-/micro-api-client-3.3.0.tgz#52dd567d322f10faffe63d19d4feeac4e4ffd215" - integrity sha512-y0y6CUB9RLVsy3kfgayU28746QrNMpSm9O/AYGNsBgOkJr/X/Jk0VLGoO8Ude7Bpa8adywzF+MzXNZRFRsNPhg== - -micro-ftch@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/micro-ftch/-/micro-ftch-0.3.1.tgz#6cb83388de4c1f279a034fb0cf96dfc050853c5f" - integrity sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg== - -micro-memoize@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/micro-memoize/-/micro-memoize-4.1.2.tgz#ce719c1ba1e41592f1cd91c64c5f41dcbf135f36" - integrity sha512-+HzcV2H+rbSJzApgkj0NdTakkC+bnyeiUxgT6/m7mjcz1CmM22KYFKp+EVj1sWe4UYcnriJr5uqHQD/gMHLD+g== - -micromatch@^3.1.10, micromatch@^3.1.4: - version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== - 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.2, micromatch@^4.0.4, micromatch@^4.0.5: - version "4.0.5" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== - dependencies: - braces "^3.0.2" - picomatch "^2.3.1" - -miller-rabin@^4.0.0: - version "4.0.1" - 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" - brorand "^1.0.1" - -mime-db@1.52.0, mime-db@^1.28.0: - version "1.52.0" - 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.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.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - -mime@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-3.0.0.tgz#b374550dca3a0c18443b0c950a6a58f1931cf7a7" - integrity sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A== - -mimic-fn@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" - integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== - -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -mimic-fn@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" - integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== - -mimic-response@^1.0.0, mimic-response@^1.0.1: - version "1.0.1" - 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.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" - integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== - -mimic-response@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-4.0.0.tgz#35468b19e7c75d10f5165ea25e75a5ceea7cf70f" - integrity sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg== - -min-document@^2.19.0: - version "2.19.0" - 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" - -min-indent@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" - integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== - -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" - 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" - integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== - -minimatch@3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== - dependencies: - brace-expansion "^1.1.7" - -minimatch@4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-4.2.3.tgz#b4dcece1d674dee104bb0fb833ebb85a78cbbca6" - integrity sha512-lIUdtK5hdofgCTu3aT0sOaHsYR37viUuIc0rwnnDXImbwFRcumyLMeZaM0t0I/fgxS6s6JMfu0rLD1Wz9pv1ng== - 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@^3.0.2, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: - version "3.1.2" - 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, minimatch@^5.1.0, minimatch@^5.1.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@^8.0.2: - version "8.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-8.0.4.tgz#847c1b25c014d4e9a7f68aaf63dedd668a626229" - integrity sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA== - dependencies: - brace-expansion "^2.0.1" - -minimatch@^9.0.0, minimatch@^9.0.3: - 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-options@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" - integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== - dependencies: - arrify "^1.0.1" - is-plain-obj "^1.1.0" - kind-of "^6.0.3" - -minimist@1.2.8, minimist@^1.1.0, minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6, minimist@~1.2.8: - version "1.2.8" - 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.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" - integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== - dependencies: - safe-buffer "^5.1.2" - yallist "^3.0.0" - -minipass@^3.0.0: - version "3.3.6" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" - integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== - dependencies: - yallist "^4.0.0" - -minipass@^4.2.4: - version "4.2.8" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-4.2.8.tgz#f0010f64393ecfc1d1ccb5f582bcaf45f48e1a3a" - integrity sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ== - -minipass@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" - integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== - -"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" - integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== - -minizlib@^1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" - integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== - dependencies: - minipass "^2.9.0" - -minizlib@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" - integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== - dependencies: - minipass "^3.0.0" - yallist "^4.0.0" - -mixin-deep@^1.2.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" - integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - -mkdirp-promise@^5.0.1: - version "5.0.1" - 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.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.1: - version "0.5.6" - 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.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - -mlly@^1.0.0, mlly@^1.1.0, mlly@^1.2.0, mlly@^1.4.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.4.2.tgz#7cf406aa319ff6563d25da6b36610a93f2a8007e" - integrity sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg== - dependencies: - acorn "^8.10.0" - pathe "^1.1.1" - pkg-types "^1.0.3" - ufo "^1.3.0" - -mnemonist@^0.38.0: - version "0.38.5" - 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: - version "10.2.0" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.2.0.tgz#1fd4a7c32ba5ac372e03a17eef435bd00e5c68b8" - 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" - -mocha@^8.2.1: - version "8.4.0" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-8.4.0.tgz#677be88bf15980a3cae03a73e10a0fc3997f0cff" - integrity sha512-hJaO0mwDXmZS4ghXsvPVriOhsxQ7ofcpQdm8dE+jISUOKopitvnXFQmpRR7jd2K6VBG6E26gU3IAbXXGIbu4sQ== - dependencies: - "@ungap/promise-all-settled" "1.1.2" - ansi-colors "4.1.1" - browser-stdout "1.3.1" - chokidar "3.5.1" - debug "4.3.1" - diff "5.0.0" - escape-string-regexp "4.0.0" - find-up "5.0.0" - glob "7.1.6" - growl "1.10.5" - he "1.2.0" - js-yaml "4.0.0" - log-symbols "4.0.0" - minimatch "3.0.4" - ms "2.1.3" - nanoid "3.1.20" - serialize-javascript "5.0.1" - strip-json-comments "3.1.1" - supports-color "8.1.1" - which "2.0.2" - wide-align "1.1.3" - workerpool "6.1.0" - yargs "16.2.0" - yargs-parser "20.2.4" - yargs-unparser "2.0.0" - -mock-fs@^4.1.0: - version "4.14.0" - resolved "https://registry.yarnpkg.com/mock-fs/-/mock-fs-4.14.0.tgz#ce5124d2c601421255985e6e94da80a7357b1b18" - integrity sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw== - -mock-property@~1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/mock-property/-/mock-property-1.0.3.tgz#3e37c50a56609d548cabd56559fde3dd8767b10c" - 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-alias@^2.2.2: - version "2.2.3" - resolved "https://registry.yarnpkg.com/module-alias/-/module-alias-2.2.3.tgz#ec2e85c68973bda6ab71ce7c93b763ec96053221" - integrity sha512-23g5BFj4zdQL/b6tor7Ji+QY4pEfNH784BMslY9Qb0UnJWRAt+lQGLYmRaM0KDBwIG23ffEBELhZDP2rhi9f/Q== - -module-definition@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/module-definition/-/module-definition-5.0.1.tgz#62d1194e5d5ea6176b7dc7730f818f466aefa32f" - integrity sha512-kvw3B4G19IXk+BOXnYq/D/VeO9qfHaapMeuS7w7sNUqmGaA6hywdFHMi+VWeR9wUScXM7XjoryTffCZ5B0/8IA== - dependencies: - ast-module-types "^5.0.0" - node-source-walk "^6.0.1" - -module-details-from-path@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/module-details-from-path/-/module-details-from-path-1.0.3.tgz#114c949673e2a8a35e9d35788527aa37b679da2b" - integrity sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A== - -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" - integrity sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA== - -moize@^6.1.0, moize@^6.1.3: - version "6.1.6" - resolved "https://registry.yarnpkg.com/moize/-/moize-6.1.6.tgz#ac2e723e74b951875fe2c0c3433405c2b098c3e6" - integrity sha512-vSKdIUO61iCmTqhdoIDrqyrtp87nWZUmBPniNjO0fX49wEYmyDO4lvlnFXiGcaH1JLE/s/9HbiK4LSHsbiUY6Q== - dependencies: - fast-equals "^3.0.1" - micro-memoize "^4.1.2" - -motion@10.16.2: - version "10.16.2" - resolved "https://registry.yarnpkg.com/motion/-/motion-10.16.2.tgz#7dc173c6ad62210a7e9916caeeaf22c51e598d21" - integrity sha512-p+PurYqfUdcJZvtnmAqu5fJgV2kR0uLFQuBKtLeFVTrYEVllI99tiOTSefVNYuip9ELTEkepIIDftNdze76NAQ== - dependencies: - "@motionone/animation" "^10.15.1" - "@motionone/dom" "^10.16.2" - "@motionone/svelte" "^10.16.2" - "@motionone/types" "^10.15.1" - "@motionone/utils" "^10.15.1" - "@motionone/vue" "^10.16.2" - -move-file@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/move-file/-/move-file-3.1.0.tgz#ea9675d54852708242462bfe60d56b3c3854cdf7" - integrity sha512-4aE3U7CCBWgrQlQDMq8da4woBWDGHioJFiOZ8Ie6Yq2uwYQ9V2kGhTz4x3u6Wc+OU17nw0yc3rJ/lQ4jIiPe3A== - dependencies: - path-exists "^5.0.0" - -mri@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" - integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== - -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: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -muggle-string@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/muggle-string/-/muggle-string-0.3.1.tgz#e524312eb1728c63dd0b2ac49e3282e6ed85963a" - integrity sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg== - -multiaddr-to-uri@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/multiaddr-to-uri/-/multiaddr-to-uri-8.0.0.tgz#65efe4b1f9de5f6b681aa42ff36a7c8db7625e58" - integrity sha512-dq4p/vsOOUdVEd1J1gl+R2GFrXJQH8yjLtz4hodqdVbieg39LvBOdMQRdQnfbg5LSM/q1BYNVf5CBbwZFFqBgA== - dependencies: - multiaddr "^10.0.0" - -multiaddr@^10.0.0: - version "10.0.1" - resolved "https://registry.yarnpkg.com/multiaddr/-/multiaddr-10.0.1.tgz#0d15848871370860a4d266bb44d93b3dac5d90ef" - integrity sha512-G5upNcGzEGuTHkzxezPrrD6CaIHR9uo+7MwqhNVcXTs33IInon4y7nMiGxl2CY5hG7chvYQUQhz5V52/Qe3cbg== - dependencies: - dns-over-http-resolver "^1.2.3" - err-code "^3.0.1" - is-ip "^3.1.0" - multiformats "^9.4.5" - uint8arrays "^3.0.0" - varint "^6.0.0" - -multibase@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.7.0.tgz#1adfc1c50abe05eefeb5091ac0c2728d6b84581b" - integrity sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg== - dependencies: - base-x "^3.0.8" - buffer "^5.5.0" - -multibase@^1.0.0, multibase@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/multibase/-/multibase-1.0.1.tgz#4adbe1de0be8a1ab0274328b653c3f1903476724" - integrity sha512-KcCxpBVY8fdVKu4dJMAahq4F/2Z/9xqEjIiR7PiMe7LRGeorFn2NLmicN6nLBCqQvft6MG2Lc9X5P0IdyvnxEw== - dependencies: - base-x "^3.0.8" - buffer "^5.5.0" - -multibase@~0.6.0: - version "0.6.1" - resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.6.1.tgz#b76df6298536cc17b9f6a6db53ec88f85f8cc12b" - integrity sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw== - dependencies: - base-x "^3.0.8" - buffer "^5.5.0" - -multicodec@^0.5.5: - version "0.5.7" - 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, multicodec@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-1.0.4.tgz#46ac064657c40380c28367c90304d8ed175a714f" - integrity sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg== - dependencies: - buffer "^5.6.0" - varint "^5.0.0" - -multiformats@^9.4.13, multiformats@^9.4.2, multiformats@^9.4.5, multiformats@^9.5.4: - version "9.9.0" - resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-9.9.0.tgz#c68354e7d21037a8f1f8833c8ccd68618e8f1d37" - integrity sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg== - -multihashes@^0.4.15, multihashes@~0.4.15: - version "0.4.21" - resolved "https://registry.yarnpkg.com/multihashes/-/multihashes-0.4.21.tgz#dc02d525579f334a7909ade8a122dabb58ccfcb5" - integrity sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw== - dependencies: - buffer "^5.5.0" - multibase "^0.7.0" - varint "^5.0.0" - -multihashes@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/multihashes/-/multihashes-1.0.1.tgz#a89415d68283cf6287c6e219e304e75ce7fb73fe" - integrity sha512-S27Tepg4i8atNiFaU5ZOm3+gl3KQlUanLs/jWcBxQHFttgq+5x1OgbQmf2d8axJ/48zYGBd/wT9d723USMFduw== - dependencies: - buffer "^5.6.0" - multibase "^1.0.1" - varint "^5.0.0" - -multihashing-async@^0.8.0, multihashing-async@~0.8.0, multihashing-async@~0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/multihashing-async/-/multihashing-async-0.8.2.tgz#3d5da05df27d83be923f6d04143a0954ff87f27f" - integrity sha512-2lKa1autuCy8x7KIEj9aVNbAb3aIMRFYIwN7mq/zD4pxgNIVgGlm+f6GKY4880EOF2Y3GktHYssRy7TAJQ2DyQ== - dependencies: - blakejs "^1.1.0" - buffer "^5.4.3" - err-code "^2.0.0" - js-sha3 "^0.8.0" - multihashes "^1.0.1" - murmurhash3js-revisited "^3.0.0" - -multiparty@4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/multiparty/-/multiparty-4.2.3.tgz#6b14981badb5ad3f0929622868751810368d4633" - integrity sha512-Ak6EUJZuhGS8hJ3c2fY6UW5MbkGUPMBEGd13djUzoY/BHqV/gTuFWtC6IuVA7A2+v3yjBS6c4or50xhzTQZImQ== - dependencies: - http-errors "~1.8.1" - safe-buffer "5.2.1" - uid-safe "2.1.5" - -murmurhash3js-revisited@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/murmurhash3js-revisited/-/murmurhash3js-revisited-3.0.0.tgz#6bd36e25de8f73394222adc6e41fa3fac08a5869" - integrity sha512-/sF3ee6zvScXMb1XFJ8gDsSnY+X8PbOyjIuBhtgis10W2Jx4ZjIhikUCIF9c4gpJxVnQIsPAFrSwTCuAjicP6g== - -mustache@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/mustache/-/mustache-4.2.0.tgz#e5892324d60a12ec9c2a73359edca52972bf6f64" - integrity sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ== - -mute-stream@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" - integrity sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ== - -mute-stream@0.0.8, mute-stream@~0.0.4: - version "0.0.8" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" - integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== - -mz@^2.7.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" - integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== - dependencies: - any-promise "^1.0.0" - object-assign "^4.0.1" - thenify-all "^1.0.0" - -nan@^2.16.0, nan@^2.2.1: - version "2.18.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.18.0.tgz#26a6faae7ffbeb293a39660e88a76b82e30b7554" - integrity sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w== - -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" - integrity sha512-9MqxMH/BSJC7dnLsEMPyfN5Dvoo49IsPFYMcHw3Bcfc2kN0lpHRBSzlMSVx4HGyJ7s9B31CyBTVehWJoQ8Ctew== - -nanoassert@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/nanoassert/-/nanoassert-2.0.0.tgz#a05f86de6c7a51618038a620f88878ed1e490c09" - integrity sha512-7vO7n28+aYO4J+8w96AzhmU8G+Y/xpPDJz/se19ICsqj/momRbb9mh9ZUtkoJ5X3nTnPdhEJyc0qnM6yAsHBaA== - -nanoid@3.1.20: - version "3.1.20" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.20.tgz#badc263c6b1dcf14b71efaa85f6ab4c1d6cfc788" - integrity sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw== - -nanoid@3.3.3: - version "3.3.3" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25" - integrity sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w== - -nanoid@^2.1.11: - version "2.1.11" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-2.1.11.tgz#ec24b8a758d591561531b4176a01e3ab4f0f0280" - integrity sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA== - -nanoid@^3.0.2, nanoid@^3.1.20, nanoid@^3.1.23, nanoid@^3.3.6: - version "3.3.7" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" - integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== - -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" - integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== - 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.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.yarnpkg.com/napi-macros/-/napi-macros-2.0.0.tgz#2b6bae421e7b96eb687aa6c77a7858640670001b" - integrity sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg== - -napi-wasm@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/napi-wasm/-/napi-wasm-1.1.0.tgz#bbe617823765ae9c1bc12ff5942370eae7b2ba4e" - integrity sha512-lHwIAJbmLSjF9VDRm9GoVOy9AGp3aIvkjv+Kvz9h16QR3uSVYH78PNQUnT2U4X53mhlnV2M7wrhibQ3GHicDmg== - -native-abort-controller@^1.0.3, native-abort-controller@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/native-abort-controller/-/native-abort-controller-1.0.4.tgz#39920155cc0c18209ff93af5bc90be856143f251" - integrity sha512-zp8yev7nxczDJMoP6pDxyD20IU0T22eX8VwN2ztDccKvSZhRaV33yP1BGwKSZfXuqWUzsXopVFjBdau9OOAwMQ== - -native-fetch@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/native-fetch/-/native-fetch-3.0.0.tgz#06ccdd70e79e171c365c75117959cf4fe14a09bb" - integrity sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw== - -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" - 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" - integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== - -natural-orderby@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/natural-orderby/-/natural-orderby-2.0.3.tgz#8623bc518ba162f8ff1cdb8941d74deb0fdcc016" - integrity sha512-p7KTHxU0CUrcOXe62Zfrb5Z13nLvPhSWR/so3kFulUQU0sgUll2Z0LwpsLN351eOOD+hRGu/F1g+6xDfPeD++Q== - -negotiator@0.6.3: - version "0.6.3" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" - integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== - -nested-error-stacks@^2.0.0, nested-error-stacks@^2.1.0, nested-error-stacks@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/nested-error-stacks/-/nested-error-stacks-2.1.1.tgz#26c8a3cee6cc05fbcf1e333cd2fc3e003326c0b5" - integrity sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw== - -netlify-cli@^16.2.0: - version "16.9.3" - resolved "https://registry.yarnpkg.com/netlify-cli/-/netlify-cli-16.9.3.tgz#c26acc6fc6238641ae629bb6ffdeefc39ffe5907" - integrity sha512-BsdDMUSzURdAwvda5+tETWFZc+eBTV8h4a9Vto92f5JN8x2nky5WRvniajMm2S2zq+tXlSYUHi98jwIC4B5kTw== - dependencies: - "@bugsnag/js" "7.20.2" - "@fastify/static" "6.10.2" - "@netlify/build" "29.23.4" - "@netlify/build-info" "7.10.1" - "@netlify/config" "20.9.0" - "@netlify/edge-bundler" "9.4.1" - "@netlify/local-functions-proxy" "1.1.1" - "@netlify/zip-it-and-ship-it" "9.25.4" - "@octokit/rest" "19.0.13" - ansi-escapes "6.2.0" - ansi-styles "6.2.1" - ansi-to-html "0.7.2" - ascii-table "0.0.9" - backoff "2.5.0" - better-opn "3.0.2" - boxen "7.1.1" - chalk "5.2.0" - chokidar "3.5.3" - ci-info "3.8.0" - clean-deep "3.4.0" - commander "10.0.1" - comment-json "4.2.3" - concordance "5.0.4" - configstore "6.0.0" - content-type "1.0.5" - cookie "0.5.0" - copy-template-dir "1.4.0" - cron-parser "4.8.1" - debug "4.3.4" - decache "4.6.2" - dot-prop "7.2.0" - dotenv "16.0.3" - env-paths "3.0.0" - envinfo "7.8.1" - etag "1.8.1" - execa "5.1.1" - express "4.18.2" - express-logging "1.1.1" - extract-zip "2.0.1" - fastest-levenshtein "1.0.16" - fastify "4.17.0" - find-up "6.3.0" - flush-write-stream "2.0.0" - folder-walker "3.2.0" - from2-array "0.0.4" - fuzzy "0.1.3" - get-port "5.1.1" - gh-release-fetch "4.0.3" - git-repo-info "2.1.1" - gitconfiglocal "2.1.0" - hasbin "1.2.3" - hasha "5.2.2" - http-proxy "1.18.1" - http-proxy-middleware "2.0.6" - https-proxy-agent "5.0.1" - inquirer "6.5.2" - inquirer-autocomplete-prompt "1.4.0" - is-docker "3.0.0" - is-stream "3.0.0" - is-wsl "2.2.0" - isexe "2.0.0" - js-yaml "^4.1.0" - jsonwebtoken "9.0.1" - jwt-decode "3.1.2" - lambda-local "2.1.2" - listr "0.14.3" - locate-path "7.2.0" - lodash "4.17.21" - log-symbols "5.1.0" - log-update "5.0.1" - minimist "1.2.8" - multiparty "4.2.3" - netlify "13.1.10" - netlify-headers-parser "7.1.2" - netlify-redirect-parser "14.2.0" - netlify-redirector "0.5.0" - node-fetch "2.6.12" - node-version-alias "3.4.1" - ora "6.3.1" - p-filter "3.0.0" - p-map "5.5.0" - p-wait-for "5.0.2" - parallel-transform "1.2.0" - parse-github-url "1.0.2" - parse-gitignore "2.0.0" - path-key "4.0.0" - prettyjson "1.2.5" - pump "3.0.0" - raw-body "2.5.2" - read-pkg-up "9.1.0" - semver "7.5.4" - source-map-support "0.5.21" - strip-ansi-control-characters "2.0.0" - tabtab "3.0.2" - tempy "3.0.0" - terminal-link "3.0.0" - through2-filter "3.0.0" - through2-map "3.0.0" - to-readable-stream "3.0.0" - toml "3.0.0" - ulid "2.3.0" - unixify "1.0.0" - update-notifier "6.0.2" - uuid "9.0.0" - wait-port "1.0.4" - write-file-atomic "5.0.1" - zod "^3.22.4" - -netlify-headers-parser@7.1.2, netlify-headers-parser@^7.1.2: - version "7.1.2" - resolved "https://registry.yarnpkg.com/netlify-headers-parser/-/netlify-headers-parser-7.1.2.tgz#5b2f76e030eb8ba423c370c4e4814ddcc9c65e3b" - integrity sha512-DfoboA8PrcLXMan3jIVyLsQtKS+nepKDx6WwZKk5EQDMr2AJoBPCtSHTOLuABzkde1UXdOITf3snmcAmzlNLqw== - dependencies: - escape-string-regexp "^5.0.0" - fast-safe-stringify "^2.0.7" - is-plain-obj "^4.0.0" - map-obj "^5.0.0" - path-exists "^5.0.0" - toml "^3.0.0" - -netlify-redirect-parser@14.2.0, netlify-redirect-parser@^14.2.0: - version "14.2.0" - resolved "https://registry.yarnpkg.com/netlify-redirect-parser/-/netlify-redirect-parser-14.2.0.tgz#8da1b911b43ea51e0c5fa5dd1401157d1301a8f5" - integrity sha512-3Mi7sMH7XXZhjvXx/5RtJ/rU/E6zKkE4etcYQbEu8B3r872D0opoYyGdPW/MvaYQyVdfg23XEFaEI4zzQTupaw== - dependencies: - fast-safe-stringify "^2.1.1" - filter-obj "^5.0.0" - is-plain-obj "^4.0.0" - path-exists "^5.0.0" - toml "^3.0.0" - -netlify-redirector@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/netlify-redirector/-/netlify-redirector-0.5.0.tgz#9611dd8497dab4e13d9f6a6f1595b9528b9e7abf" - integrity sha512-4zdzIP+6muqPCuE8avnrgDJ6KW/2+UpHTRcTbMXCIRxiRmyrX+IZ4WSJGZdHPWF3WmQpXpy603XxecZ9iygN7w== - -netlify@13.1.10: - version "13.1.10" - resolved "https://registry.yarnpkg.com/netlify/-/netlify-13.1.10.tgz#27520caf8582bd3c12d961e46b723f614c1d9b28" - integrity sha512-ByFz8S08HWVKd9r/lkTahZX7xSq4IRyPCUvuaduI4GHyQaSWEdVNK1krC05vlhL9W0SzDn8Yjowh0Ru4PKrOYw== - dependencies: - "@netlify/open-api" "^2.19.1" - lodash-es "^4.17.21" - micro-api-client "^3.3.0" - node-fetch "^3.0.0" - omit.js "^2.0.2" - p-wait-for "^4.0.0" - qs "^6.9.6" - -netlify@^13.1.10, netlify@^13.1.11: - version "13.1.11" - resolved "https://registry.yarnpkg.com/netlify/-/netlify-13.1.11.tgz#f5151bbd5e05cd5a67713f89c05a57dd6377b599" - integrity sha512-exrD6cqwo5avDNtU7YT9iuN0+yoW+aaEUxvr/39oP36wZRKreoPm6KNVisTR9d4lXrPeUG8XI+rERuLhwMQmdw== - dependencies: - "@netlify/open-api" "^2.26.0" - lodash-es "^4.17.21" - micro-api-client "^3.3.0" - node-fetch "^3.0.0" - omit.js "^2.0.2" - p-wait-for "^4.0.0" - qs "^6.9.6" - -next-tick@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" - integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== - -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - -no-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" - integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== - dependencies: - lower-case "^2.0.2" - tslib "^2.0.3" - -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" - integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== - -node-addon-api@^3.0.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161" - integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A== - -node-addon-api@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-7.0.0.tgz#8136add2f510997b3b94814f4af1cce0b0e3962e" - integrity sha512-vgbBJTS4m5/KkE16t5Ly0WW9hz46swAstv0hYYwMtbG7AznRhNyfLRe8HZAiWIpcHzoO7HxhLuBQj9rJ/Ho0ZA== - -node-domexception@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" - integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== - -node-fetch-native@^1.4.0, node-fetch-native@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/node-fetch-native/-/node-fetch-native-1.4.1.tgz#5a336e55b4e1b1e72b9927da09fecd2b374c9be5" - integrity sha512-NsXBU0UgBxo2rQLOeWNZqS3fvflWePMECr8CoSWoSTqCqGbVVsvl9vZu1HfQicYN0g5piV9Gh8RTEvo/uP752w== - -node-fetch@2.6.12: - version "2.6.12" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.12.tgz#02eb8e22074018e3d5a83016649d04df0e348fba" - integrity sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g== - dependencies: - whatwg-url "^5.0.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.8: - version "2.7.0" - 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-fetch@^3.0.0, node-fetch@^3.1.1, node-fetch@^3.3.1: - version "3.3.2" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.3.2.tgz#d1e889bacdf733b4ff3b2b243eb7a12866a0b78b" - integrity sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA== - dependencies: - data-uri-to-buffer "^4.0.0" - fetch-blob "^3.1.4" - formdata-polyfill "^4.0.10" - -node-fetch@~1.7.1: - version "1.7.3" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" - integrity sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ== - dependencies: - encoding "^0.1.11" - is-stream "^1.0.1" - -node-forge@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" - integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== - -node-gyp-build@^4.2.0, node-gyp-build@^4.2.2, node-gyp-build@^4.3.0: - version "4.7.1" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.7.1.tgz#cd7d2eb48e594874053150a9418ac85af83ca8f7" - integrity sha512-wTSrZ+8lsRRa3I3H8Xr65dLWSgCvY2l4AOnaeKdPA9TB/WYMPaTcrzf3rXvFoVvjKNVnu0CcWSx54qq9GKRUYg== - -node-gyp-build@~4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.1.1.tgz#d7270b5d86717068d114cc57fff352f96d745feb" - integrity sha512-dSq1xmcPDKPZ2EED2S6zw/b9NKsqzXRE6dVr8TVQnI3FJOTteUMuqF3Qqs6LZg+mLGYJWqQzMbIjMtJqTv87nQ== - -node-int64@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" - integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== - -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-source-walk@^6.0.0, node-source-walk@^6.0.1, node-source-walk@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/node-source-walk/-/node-source-walk-6.0.2.tgz#ba81bc4bc0f6f05559b084bea10be84c3f87f211" - integrity sha512-jn9vOIK/nfqoFCcpK89/VCVaLg1IHE6UVfDOzvqmANaJ/rWCTEdH8RZ1V278nv2jr36BJdyQXIAavBLXpzdlag== - dependencies: - "@babel/parser" "^7.21.8" - -node-stdlib-browser@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/node-stdlib-browser/-/node-stdlib-browser-1.2.0.tgz#5ddcfdf4063b88fb282979a1aa6ddab9728d5e4c" - integrity sha512-VSjFxUhRhkyed8AtLwSCkMrJRfQ3e2lGtG3sP6FEgaLKBBbxM/dLfjRe1+iLhjvyLFW3tBQ8+c0pcOtXGbAZJg== - dependencies: - assert "^2.0.0" - browser-resolve "^2.0.0" - browserify-zlib "^0.2.0" - buffer "^5.7.1" - console-browserify "^1.1.0" - constants-browserify "^1.0.0" - create-require "^1.1.1" - crypto-browserify "^3.11.0" - domain-browser "^4.22.0" - events "^3.0.0" - https-browserify "^1.0.0" - isomorphic-timers-promises "^1.0.1" - os-browserify "^0.3.0" - path-browserify "^1.0.1" - pkg-dir "^5.0.0" - process "^0.11.10" - punycode "^1.4.1" - querystring-es3 "^0.2.1" - readable-stream "^3.6.0" - stream-browserify "^3.0.0" - stream-http "^3.2.0" - string_decoder "^1.0.0" - timers-browserify "^2.0.4" - tty-browserify "0.0.1" - url "^0.11.0" - util "^0.12.4" - vm-browserify "^1.0.1" - -node-stream-zip@^1.15.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/node-stream-zip/-/node-stream-zip-1.15.0.tgz#158adb88ed8004c6c49a396b50a6a5de3bca33ea" - integrity sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw== - -node-version-alias@3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/node-version-alias/-/node-version-alias-3.4.1.tgz#3b38457372bd54ecf2fe10607b8124067d4c60a8" - integrity sha512-Kf3L9spAL6lEHMPyqpwHSTNG3LPkOXBfSUnBMG/YE2TdoC8Qoqf0+qg01nr6K9MFQEcXtWUyTQzLJByRixSBsA== - dependencies: - all-node-versions "^11.3.0" - filter-obj "^5.1.0" - is-plain-obj "^4.1.0" - normalize-node-version "^12.4.0" - path-exists "^5.0.0" - semver "^7.3.8" - -nofilter@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/nofilter/-/nofilter-3.1.0.tgz#c757ba68801d41ff930ba2ec55bab52ca184aa66" - integrity sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g== - -noop2@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/noop2/-/noop2-2.0.0.tgz#4b636015e9882b54783c02b412f699d8c5cd0a5b" - integrity sha512-2bu7Pfpf6uNqashWV8P7yYeutQ3XkLY9MBSYI5sOAFZxuWcW/uJfLbKj5m6SvMDT9U1Y0C+7UFG+7VSiIdXjtA== - -nopt@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88" - integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== - dependencies: - abbrev "1" - -normalize-node-version@^12.4.0: - version "12.4.0" - resolved "https://registry.yarnpkg.com/normalize-node-version/-/normalize-node-version-12.4.0.tgz#94d4be3f7e6769d85c5de8b4b8d4ed3bc232f538" - integrity sha512-0oLZN5xcyKVrSHMk8/9RuNblEe7HEsXAt5Te2xmMiZD9VX7bqWYe0HMyfqSYFD3xv0949lZuXaEwjTqle1uWWQ== - dependencies: - all-node-versions "^11.3.0" - filter-obj "^5.1.0" - semver "^7.3.7" - -normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: - version "2.5.0" - 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" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-package-data@^3.0.0, normalize-package-data@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz#dbcc3e2da59509a0983422884cd172eefdfa525e" - integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA== - dependencies: - hosted-git-info "^4.0.1" - is-core-module "^2.5.0" - semver "^7.3.4" - validate-npm-package-license "^3.0.1" - -normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w== - dependencies: - remove-trailing-separator "^1.0.1" - -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" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -normalize-range@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" - integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== - -normalize-url@^4.1.0: - version "4.5.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" - integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== - -normalize-url@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" - integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== - -normalize-url@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-8.0.0.tgz#593dbd284f743e8dcf6a5ddf8fadff149c82701a" - integrity sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw== - -npm-run-path@^4.0.0, npm-run-path@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" - integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== - dependencies: - path-key "^3.0.0" - -npm-run-path@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" - integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== - dependencies: - path-key "^4.0.0" - -npmlog@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-5.0.1.tgz#f06678e80e29419ad67ab964e0fa69959c1eb8b0" - integrity sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw== - dependencies: - are-we-there-yet "^2.0.0" - console-control-strings "^1.1.0" - gauge "^3.0.0" - set-blocking "^2.0.0" - -nth-check@^2.1.1: - version "2.1.1" - 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" - -nullthrows@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/nullthrows/-/nullthrows-1.1.1.tgz#7818258843856ae971eae4208ad7d7eb19a431b1" - integrity sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw== - -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" - 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" - integrity sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig== - dependencies: - bn.js "4.11.6" - strip-hex-prefix "1.0.0" - -nwsapi@^2.2.2: - version "2.2.7" - resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.7.tgz#738e0707d3128cb750dddcfe90e4610482df0f30" - integrity sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ== - -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== - -object-assign@^4, object-assign@^4.0.0, object-assign@^4.0.1, 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" - integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== - -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - integrity sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ== - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - -object-hash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" - integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== - -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-inspect@~1.12.3: - version "1.12.3" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" - integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== - -object-is@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" - integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - -object-keys@^1.1.1: - version "1.1.1" - 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.yarnpkg.com/object-keys/-/object-keys-0.4.0.tgz#28a6aae7428dd2c3a92f3d95f21335dd204e0336" - integrity sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw== - -object-treeify@^1.1.33: - version "1.1.33" - resolved "https://registry.yarnpkg.com/object-treeify/-/object-treeify-1.1.33.tgz#f06fece986830a3cba78ddd32d4c11d1f76cdf40" - integrity sha512-EFVjAYfzWqWsBMRHPMAXLCDIJnpMhdWAqR7xG6M6a2cs6PMFpl/+Z20w9zDW4vkxOFfddegBKq9Rehd0bxWE7A== - -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - integrity sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA== - dependencies: - isobject "^3.0.0" - -object.assign@^4.1.4: - version "4.1.4" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" - 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" - -object.getownpropertydescriptors@^2.1.6: - version "2.1.7" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.7.tgz#7a466a356cd7da4ba8b9e94ff6d35c3eeab5d56a" - 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.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ== - dependencies: - isobject "^3.0.1" - -obliterator@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/obliterator/-/obliterator-2.0.4.tgz#fa650e019b2d075d745e44f1effeb13a2adbe816" - integrity sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ== - -oboe@2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/oboe/-/oboe-2.1.4.tgz#20c88cdb0c15371bb04119257d4fdd34b0aa49f6" - integrity sha512-ymBJ4xSC6GBXLT9Y7lirj+xbqBLa+jADGJldGEYG7u8sZbS9GyG+u1Xk9c5cbriKwSpCg41qUhPjvU5xOpvIyQ== - dependencies: - http-https "^1.0.0" - -oboe@2.1.5: - version "2.1.5" - 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" - -ofetch@^1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/ofetch/-/ofetch-1.3.3.tgz#588cb806a28e5c66c2c47dd8994f9059a036d8c0" - integrity sha512-s1ZCMmQWXy4b5K/TW9i/DtiN8Ku+xCiHcjQ6/J/nDdssirrQNOoB165Zu8EqLMA2lln1JUth9a0aW9Ap2ctrUg== - dependencies: - destr "^2.0.1" - node-fetch-native "^1.4.0" - ufo "^1.3.0" - -omit.js@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/omit.js/-/omit.js-2.0.2.tgz#dd9b8436fab947a5f3ff214cb2538631e313ec2f" - integrity sha512-hJmu9D+bNB40YpL9jYebQl4lsTW6yEHRTroJzNLqQJYHm7c+NQnJGfZmIWh8S3q3KoaxV1aLhV6B3+0N0/kyJg== - -on-exit-leak-free@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/on-exit-leak-free/-/on-exit-leak-free-0.2.0.tgz#b39c9e3bf7690d890f4861558b0d7b90a442d209" - integrity sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg== - -on-exit-leak-free@^2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz#fed195c9ebddb7d9e4c3842f93f281ac8dadd3b8" - integrity sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA== - -on-finished@2.4.1: - version "2.4.1" - 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" - -on-headers@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" - integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== - -once@^1.3.0, once@^1.3.1, once@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== - dependencies: - wrappy "1" - -one-time@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/one-time/-/one-time-1.0.0.tgz#e06bc174aed214ed58edede573b433bbf827cb45" - integrity sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g== - dependencies: - fn.name "1.x.x" - -onetime@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" - integrity sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ== - dependencies: - mimic-fn "^1.0.0" - -onetime@^5.1.0, onetime@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - -onetime@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" - integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== - dependencies: - mimic-fn "^4.0.0" - -open@^7.4.2: - version "7.4.2" - resolved "https://registry.yarnpkg.com/open/-/open-7.4.2.tgz#b8147e26dcf3e426316c730089fd71edd29c2321" - integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q== - dependencies: - is-docker "^2.0.0" - is-wsl "^2.1.1" - -open@^8.0.4: - version "8.4.2" - resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" - integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ== - dependencies: - define-lazy-prop "^2.0.0" - is-docker "^2.1.1" - is-wsl "^2.2.0" - -opencollective-postinstall@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz#7a0fff978f6dbfa4d006238fbac98ed4198c3259" - integrity sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q== - -opentracing@^0.14.4: - version "0.14.7" - resolved "https://registry.yarnpkg.com/opentracing/-/opentracing-0.14.7.tgz#25d472bd0296dc0b64d7b94cbc995219031428f5" - integrity sha512-vz9iS7MJ5+Bp1URw8Khvdyw1H/hGvzHWlKQ7eRrQojSCDL1/SrWfrY9QebLw97n2deyRtzHRC3MkQfVNUCo91Q== - -optimisedmt@^0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/optimisedmt/-/optimisedmt-0.0.7.tgz#ef1dac1e5d84c27b19bcdbec16eb4a213fa86f75" - integrity sha512-yVlKMmP/egqiAtg12KFZxqKx35STm+RB5kSSvo9q0B0sIx/7HbWj7fJcFLUFtWzbYp2IvdOhx31s4IC7RmU5pQ== - dependencies: - assert "^2.0.0" - circomlibjs "0.0.8" - ffjavascript "^0.2.39" - -optionator@^0.8.1: - version "0.8.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" - 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" - -optionator@^0.9.3: - version "0.9.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" - integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== - 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" - -ora@6.3.1: - version "6.3.1" - resolved "https://registry.yarnpkg.com/ora/-/ora-6.3.1.tgz#a4e9e5c2cf5ee73c259e8b410273e706a2ad3ed6" - integrity sha512-ERAyNnZOfqM+Ao3RAvIXkYh5joP220yf59gVe2X/cI6SiCxIdi4c9HZKZD8R6q/RDXEje1THBju6iExiSsgJaQ== - dependencies: - chalk "^5.0.0" - cli-cursor "^4.0.0" - cli-spinners "^2.6.1" - is-interactive "^2.0.0" - is-unicode-supported "^1.1.0" - log-symbols "^5.1.0" - stdin-discarder "^0.1.0" - strip-ansi "^7.0.1" - wcwidth "^1.0.1" - -ora@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ora/-/ora-4.1.1.tgz#566cc0348a15c36f5f0e979612842e02ba9dddbc" - integrity sha512-sjYP8QyVWBpBZWD6Vr1M/KwknSw6kJOz41tvGMlwWeClHBtYKTbHMki1PsLZnxKpXMPbTKv9b3pjQu3REib96A== - dependencies: - chalk "^3.0.0" - cli-cursor "^3.1.0" - cli-spinners "^2.2.0" - is-interactive "^1.0.0" - log-symbols "^3.0.0" - mute-stream "0.0.8" - strip-ansi "^6.0.0" - wcwidth "^1.0.1" - -ora@^5.4.1: - version "5.4.1" - resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" - integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== - dependencies: - bl "^4.1.0" - chalk "^4.1.0" - cli-cursor "^3.1.0" - cli-spinners "^2.5.0" - is-interactive "^1.0.0" - is-unicode-supported "^0.1.0" - log-symbols "^4.1.0" - strip-ansi "^6.0.0" - wcwidth "^1.0.1" - -ordinal@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/ordinal/-/ordinal-1.0.3.tgz#1a3c7726a61728112f50944ad7c35c06ae3a0d4d" - integrity sha512-cMddMgb2QElm8G7vdaa02jhUNbTSrhsgAGUz1OokD83uJTwSUn+nKoNoKVVaRa08yF6sgfO7Maou1+bgLd9rdQ== - -os-browserify@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" - integrity sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A== - -os-homedir@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - integrity sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ== - -os-locale@^1.4.0: - version "1.4.0" - 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-name@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/os-name/-/os-name-5.1.0.tgz#4f5ab5edfa6938b590112714f1570fe79f1d957a" - integrity sha512-YEIoAnM6zFmzw3PQ201gCVCIWbXNyKObGlVvpAVvraAeOHnlYVKFssbA/riRX5R40WA6kKrZ7Dr7dWzO3nKSeQ== - dependencies: - macos-release "^3.1.0" - windows-release "^5.0.1" - -os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== - -p-cancelable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" - integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== - -p-cancelable@^2.0.0: - version "2.1.1" - 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.yarnpkg.com/p-cancelable/-/p-cancelable-3.0.0.tgz#63826694b54d61ca1c20ebcb6d3ecf5e14cd8050" - integrity sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw== - -p-defer@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-3.0.0.tgz#d1dceb4ee9b2b604b1d94ffec83760175d4e6f83" - integrity sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw== - -p-event@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/p-event/-/p-event-4.2.0.tgz#af4b049c8acd91ae81083ebd1e6f5cae2044c1b5" - integrity sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ== - dependencies: - p-timeout "^3.1.0" - -p-event@^5.0.0, p-event@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/p-event/-/p-event-5.0.1.tgz#614624ec02ae7f4f13d09a721c90586184af5b0c" - integrity sha512-dd589iCQ7m1L0bmC5NLlVYfy3TbBEsMUfWx9PyAgPeIcFZ/E2yaTZ4Rz4MiBmmJShviiftHVXOqfnfzJ6kyMrQ== - dependencies: - p-timeout "^5.0.2" - -p-every@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-every/-/p-every-2.0.0.tgz#ad940b82b1bd1da01c307b11e1dd25fe7286181a" - integrity sha512-MCz9DqD5opPC48Zsd+BHm56O/HfhYIQQtupfDzhXoVgQdg/Ux4F8/JcdRuQ+arq7zD5fB6zP3axbH3d9Nr8dlw== - dependencies: - p-map "^2.0.0" - -p-fifo@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-fifo/-/p-fifo-1.0.0.tgz#e29d5cf17c239ba87f51dde98c1d26a9cfe20a63" - integrity sha512-IjoCxXW48tqdtDFz6fqo5q1UfFVjjVZe8TC1QRflvNUJtNfCUhxOUw6MOVZhDPjqhSzc26xKdugsO17gmzd5+A== - dependencies: - fast-fifo "^1.0.0" - p-defer "^3.0.0" - -p-filter@3.0.0, p-filter@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-filter/-/p-filter-3.0.0.tgz#ce50e03b24b23930e11679ab8694bd09a2d7ed35" - integrity sha512-QtoWLjXAW++uTX67HZQz1dbTpqBfiidsB6VtQUC9iR85S120+s0T5sO6s+B5MLzFcZkrEd/DGMmCjR+f2Qpxwg== - dependencies: - p-map "^5.1.0" - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== - -p-finally@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561" - integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw== - -p-limit@3.1.0, p-limit@^3.0.2, p-limit@^3.1.0: - version "3.1.0" - 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-limit@^1.1.0: - version "1.3.0" - 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: - version "2.3.0" - 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@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-4.0.0.tgz#914af6544ed32bfa54670b061cafcbd04984b644" - integrity sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ== - dependencies: - yocto-queue "^1.0.0" - -p-locate@^2.0.0: - version "2.0.0" - 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.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" - 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" - 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" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - -p-locate@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-6.0.0.tgz#3da9a49d4934b901089dca3302fa65dc5a05c04f" - integrity sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw== - dependencies: - p-limit "^4.0.0" - -p-map@5.5.0, p-map@^5.0.0, p-map@^5.1.0, p-map@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-5.5.0.tgz#054ca8ca778dfa4cf3f8db6638ccb5b937266715" - integrity sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg== - dependencies: - aggregate-error "^4.0.0" - -p-map@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" - integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== - -p-map@^4.0.0: - version "4.0.0" - 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-queue@^6.0.0: - version "6.6.2" - resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-6.6.2.tgz#2068a9dcf8e67dd0ec3e7a2bcb76810faa85e426" - integrity sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ== - dependencies: - eventemitter3 "^4.0.4" - p-timeout "^3.2.0" - -p-reduce@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-3.0.0.tgz#f11773794792974bd1f7a14c72934248abff4160" - integrity sha512-xsrIUgI0Kn6iyDYm9StOpOeK29XM1aboGji26+QEortiFST1hGZaUQOLhtEbqHErPpGW/aSz6allwK2qcptp0Q== - -p-retry@^5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-5.1.2.tgz#c16eaee4f2016f9161d12da40d3b8b0f2e3c1b76" - integrity sha512-couX95waDu98NfNZV+i/iLt+fdVxmI7CbrrdC2uDWfPdUAApyxT4wmDlyOtR5KtTDmkDO0zDScDjDou9YHhd9g== - dependencies: - "@types/retry" "0.12.1" - retry "^0.13.1" - -p-timeout@^3.1.0, p-timeout@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" - integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== - dependencies: - p-finally "^1.0.0" - -p-timeout@^5.0.0, p-timeout@^5.0.2: - version "5.1.0" - resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-5.1.0.tgz#b3c691cf4415138ce2d9cfe071dba11f0fee085b" - integrity sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew== - -p-timeout@^6.0.0: - version "6.1.2" - resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-6.1.2.tgz#22b8d8a78abf5e103030211c5fc6dee1166a6aa5" - integrity sha512-UbD77BuZ9Bc9aABo74gfXhNvzC9Tx7SxtHSh1fxvx3jTLLYvmVhiQZZrJzqqU0jKbN32kb5VOKiLEQI/3bIjgQ== - -p-try@^1.0.0: - version "1.0.0" - 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.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -p-wait-for@5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/p-wait-for/-/p-wait-for-5.0.2.tgz#1546a15e64accf1897377cb1507fa4c756fffe96" - integrity sha512-lwx6u1CotQYPVju77R+D0vFomni/AqRfqLmqQ8hekklqZ6gAY9rONh7lBQ0uxWMkC2AuX9b2DVAl8To0NyP1JA== - dependencies: - p-timeout "^6.0.0" - -p-wait-for@^4.0.0, p-wait-for@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-wait-for/-/p-wait-for-4.1.0.tgz#290f126f49bbd7c84e0cedccb342cd631aaa0f16" - integrity sha512-i8nE5q++9h8oaQHWltS1Tnnv4IoMDOlqN7C0KFG2OdbK0iFJIt6CROZ8wfBM+K4Pxqfnq4C4lkkpXqTEpB5DZw== - dependencies: - p-timeout "^5.0.0" - -package-json@^8.1.0: - version "8.1.1" - resolved "https://registry.yarnpkg.com/package-json/-/package-json-8.1.1.tgz#3e9948e43df40d1e8e78a85485f1070bf8f03dc8" - integrity sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA== - dependencies: - got "^12.1.0" - registry-auth-token "^5.0.1" - registry-url "^6.0.0" - semver "^7.3.7" - -pako@~1.0.5: - version "1.0.11" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" - integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== - -parallel-transform@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" - integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== - dependencies: - cyclist "^1.0.1" - inherits "^2.0.3" - readable-stream "^2.1.5" - -param-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" - integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== - dependencies: - dot-case "^3.0.4" - tslib "^2.0.3" - -parent-module@^1.0.0: - version "1.0.1" - 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-asn1@^5.0.0, parse-asn1@^5.1.6: - version "5.1.6" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" - integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== - 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.yarnpkg.com/parse-cache-control/-/parse-cache-control-1.0.1.tgz#8eeab3e54fa56920fe16ba38f77fa21aacc2d74e" - integrity sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg== - -parse-duration@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/parse-duration/-/parse-duration-1.1.0.tgz#5192084c5d8f2a3fd676d04a451dbd2e05a1819c" - integrity sha512-z6t9dvSJYaPoQq7quMzdEagSFtpGu+utzHqqxmpVWNNZRIXnvqyCvn9XsTdh7c/w0Bqmdz3RB3YnRaKtpRtEXQ== - -parse-filepath@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.2.tgz#a632127f53aaf3d15876f5872f3ffac763d6c891" - integrity sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q== - dependencies: - is-absolute "^1.0.0" - map-cache "^0.2.0" - path-root "^0.1.1" - -parse-github-url@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/parse-github-url/-/parse-github-url-1.0.2.tgz#242d3b65cbcdda14bb50439e3242acf6971db395" - integrity sha512-kgBf6avCbO3Cn6+RnzRGLkUsv4ZVqv/VfAYkRsyBcgkshNvVBkRn1FEZcW0Jb+npXQWm2vHPnnOqFteZxRRGNw== - -parse-gitignore@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/parse-gitignore/-/parse-gitignore-2.0.0.tgz#81156b265115c507129f3faea067b8476da3b642" - integrity sha512-RmVuCHWsfu0QPNW+mraxh/xjQVw/lhUCUru8Zni3Ctq3AoMhpDTq0OVdKS6iesd6Kqb7viCV3isAL43dciOSog== - -parse-headers@^2.0.0: - version "2.0.5" - 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.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.0.0, parse-json@^5.2.0: - version "5.2.0" - 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" - error-ex "^1.3.1" - json-parse-even-better-errors "^2.3.0" - lines-and-columns "^1.1.6" - -parse-ms@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/parse-ms/-/parse-ms-3.0.0.tgz#3ea24a934913345fcc3656deda72df921da3a70e" - integrity sha512-Tpb8Z7r7XbbtBTrM9UhpkzzaMrqA2VXMT3YChzYltwV3P3pM6t8wl7TvpMnSTosz1aQAdVib7kdoys7vYOPerw== - -parse5@^7.1.1: - version "7.1.2" - 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.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== - -pascal-case@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" - integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== - dependencies: - no-case "^3.0.4" - tslib "^2.0.3" - -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - integrity sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw== - -password-prompt@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/password-prompt/-/password-prompt-1.1.3.tgz#05e539f4e7ca4d6c865d479313f10eb9db63ee5f" - integrity sha512-HkrjG2aJlvF0t2BMH0e2LB/EHf3Lcq3fNMzy4GYHcQblAvOl+QQji1Lx7WRBMqpVK8p+KR7bCg7oqAMXtdgqyw== - dependencies: - ansi-escapes "^4.3.2" - cross-spawn "^7.0.3" - -patch-package@6.2.2: - version "6.2.2" - resolved "https://registry.yarnpkg.com/patch-package/-/patch-package-6.2.2.tgz#71d170d650c65c26556f0d0fbbb48d92b6cc5f39" - integrity sha512-YqScVYkVcClUY0v8fF0kWOjDYopzIM8e3bj/RU1DPeEF14+dCGm6UeOYm4jvCyxqIEQ5/eJzmbWfDWnUleFNMg== - 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" - -patch-package@^6.2.2: - version "6.5.1" - resolved "https://registry.yarnpkg.com/patch-package/-/patch-package-6.5.1.tgz#3e5d00c16997e6160291fee06a521c42ac99b621" - integrity sha512-I/4Zsalfhc6bphmJTlrLoOcAF87jcxko4q0qsv4bGcurbr8IskEOtdnt9iCmsQVGL1B+iUhSQqweyTLJfCF9rA== - dependencies: - "@yarnpkg/lockfile" "^1.1.0" - chalk "^4.1.2" - cross-spawn "^6.0.5" - find-yarn-workspace-root "^2.0.0" - fs-extra "^9.0.0" - is-ci "^2.0.0" - klaw-sync "^6.0.0" - minimist "^1.2.6" - open "^7.4.2" - rimraf "^2.6.3" - semver "^5.6.0" - slash "^2.0.0" - tmp "^0.0.33" - yaml "^1.10.2" - -path-browserify@^1.0.0, path-browserify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" - integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== - -path-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/path-case/-/path-case-3.0.4.tgz#9168645334eb942658375c56f80b4c0cb5f82c6f" - integrity sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg== - dependencies: - dot-case "^3.0.4" - tslib "^2.0.3" - -path-exists@^2.0.0: - version "2.1.0" - 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.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.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-exists@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-5.0.0.tgz#a6aad9489200b21fab31e49cf09277e5116fb9e7" - integrity sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ== - -path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - -path-key@4.0.0, path-key@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" - integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== - -path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== - -path-key@^3.0.0, path-key@^3.1.0: - version "3.1.1" - 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.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -path-root-regex@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d" - integrity sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ== - -path-root@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/path-root/-/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7" - integrity sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg== - dependencies: - path-root-regex "^0.1.0" - -path-scurry@^1.6.1: - version "1.10.1" - 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" - minipass "^5.0.0 || ^6.0.2 || ^7.0.0" - -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" - 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" - integrity sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg== - dependencies: - graceful-fs "^4.1.2" - pify "^2.0.0" - pinkie-promise "^2.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" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - -path-type@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-5.0.0.tgz#14b01ed7aea7ddf9c7c3f46181d4d04f9c785bb8" - integrity sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg== - -pathe@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/pathe/-/pathe-0.2.0.tgz#30fd7bbe0a0d91f0e60bae621f5d19e9e225c339" - integrity sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw== - -pathe@^1.0.0, pathe@^1.1.0, pathe@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.1.tgz#1dd31d382b974ba69809adc9a7a347e65d84829a" - integrity sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q== - -pathval@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" - integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== - -pbkdf2@^3.0.17, pbkdf2@^3.0.3, pbkdf2@^3.0.9: - version "3.1.2" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" - 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" - -peek-readable@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/peek-readable/-/peek-readable-5.0.0.tgz#7ead2aff25dc40458c60347ea76cfdfd63efdfec" - integrity sha512-YtCKvLUOvwtMGmrniQPdO7MwPjgkFBtFIrmfSbYmYuq3tKDV/mcfAhBth1+C3ru7uXIZasc/pHnb+YDYNkkj4A== - -pend@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" - integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg== - -performance-now@^2.1.0: - version "2.1.0" - 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.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== - -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -pify@^2.0.0, pify@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== - -pinia@^2.0.26: - version "2.1.7" - resolved "https://registry.yarnpkg.com/pinia/-/pinia-2.1.7.tgz#4cf5420d9324ca00b7b4984d3fbf693222115bbc" - integrity sha512-+C2AHFtcFqjPih0zpYuvof37SFxMQ7OEG2zV9jRI12i9BOy3YQVAHwdKtyyc8pDcDyIc33WCIsZaCFWU7WWxGQ== - dependencies: - "@vue/devtools-api" "^6.5.0" - vue-demi ">=0.14.5" - -pinkie-promise@^2.0.0: - version "2.0.1" - 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.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg== - -pino-abstract-transport@v0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/pino-abstract-transport/-/pino-abstract-transport-0.5.0.tgz#4b54348d8f73713bfd14e3dc44228739aa13d9c0" - integrity sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ== - dependencies: - duplexify "^4.1.2" - split2 "^4.0.0" - -pino-abstract-transport@v1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/pino-abstract-transport/-/pino-abstract-transport-1.1.0.tgz#083d98f966262164504afb989bccd05f665937a8" - integrity sha512-lsleG3/2a/JIWUtf9Q5gUNErBqwIu1tUKTT3dUzaf5DySw9ra1wcqKjJjLX1VTY64Wk1eEOYsVGSaGfCK85ekA== - dependencies: - readable-stream "^4.0.0" - split2 "^4.0.0" - -pino-std-serializers@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-4.0.0.tgz#1791ccd2539c091ae49ce9993205e2cd5dbba1e2" - integrity sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q== - -pino-std-serializers@^6.0.0: - version "6.2.2" - resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-6.2.2.tgz#d9a9b5f2b9a402486a5fc4db0a737570a860aab3" - integrity sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA== - -pino@7.11.0: - version "7.11.0" - resolved "https://registry.yarnpkg.com/pino/-/pino-7.11.0.tgz#0f0ea5c4683dc91388081d44bff10c83125066f6" - integrity sha512-dMACeu63HtRLmCG8VKdy4cShCPKaYDR4youZqoSWLxl5Gu99HUw8bw75thbPv9Nip+H+QYX8o3ZJbTdVZZ2TVg== - dependencies: - atomic-sleep "^1.0.0" - fast-redact "^3.0.0" - on-exit-leak-free "^0.2.0" - pino-abstract-transport v0.5.0 - pino-std-serializers "^4.0.0" - process-warning "^1.0.0" - quick-format-unescaped "^4.0.3" - real-require "^0.1.0" - safe-stable-stringify "^2.1.0" - sonic-boom "^2.2.1" - thread-stream "^0.15.1" - -pino@^8.5.0: - version "8.16.2" - resolved "https://registry.yarnpkg.com/pino/-/pino-8.16.2.tgz#7a906f2d9a8c5b4c57412c9ca95d6820bd2090cd" - integrity sha512-2advCDGVEvkKu9TTVSa/kWW7Z3htI/sBKEZpqiHk6ive0i/7f5b1rsU8jn0aimxqfnSz5bj/nOYkwhBUn5xxvg== - dependencies: - atomic-sleep "^1.0.0" - fast-redact "^3.1.1" - on-exit-leak-free "^2.1.0" - pino-abstract-transport v1.1.0 - pino-std-serializers "^6.0.0" - process-warning "^2.0.0" - quick-format-unescaped "^4.0.3" - real-require "^0.2.0" - safe-stable-stringify "^2.3.1" - sonic-boom "^3.7.0" - thread-stream "^2.0.0" - -pirates@^4.0.1: - version "4.0.6" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" - integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== - -pkg-dir@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-5.0.0.tgz#a02d6aebe6ba133a928f74aec20bafdfe6b8e760" - integrity sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA== - dependencies: - find-up "^5.0.0" - -pkg-dir@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-7.0.0.tgz#8f0c08d6df4476756c5ff29b3282d0bab7517d11" - integrity sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA== - dependencies: - find-up "^6.3.0" - -pkg-types@^1.0.1, pkg-types@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-1.0.3.tgz#988b42ab19254c01614d13f4f65a2cfc7880f868" - integrity sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A== - dependencies: - jsonc-parser "^3.2.0" - mlly "^1.2.0" - pathe "^1.1.0" - -please-upgrade-node@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" - integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg== - dependencies: - semver-compare "^1.0.0" - -pluralize@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" - integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== - -pngjs@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-5.0.0.tgz#e79dd2b215767fd9c04561c01236df960bce7fbb" - integrity sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw== - -pnglib@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/pnglib/-/pnglib-0.0.1.tgz#f9ab6f9c688f4a9d579ad8be28878a716e30c096" - integrity sha512-95ChzOoYLOPIyVmL+Y6X+abKGXUJlvOVLkB1QQkyXl7Uczc6FElUy/x01NS7r2GX6GRezloO/ecCX9h4U9KadA== - -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - integrity sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg== - -postcss-import@^15.1.0: - version "15.1.0" - resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-15.1.0.tgz#41c64ed8cc0e23735a9698b3249ffdbf704adc70" - integrity sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew== - dependencies: - postcss-value-parser "^4.0.0" - read-cache "^1.0.0" - resolve "^1.1.7" - -postcss-js@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-4.0.1.tgz#61598186f3703bab052f1c4f7d805f3991bee9d2" - integrity sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw== - dependencies: - camelcase-css "^2.0.1" - -postcss-load-config@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-4.0.2.tgz#7159dcf626118d33e299f485d6afe4aff7c4a3e3" - integrity sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ== - dependencies: - lilconfig "^3.0.0" - yaml "^2.3.4" - -postcss-nested@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-6.0.1.tgz#f83dc9846ca16d2f4fa864f16e9d9f7d0961662c" - integrity sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ== - dependencies: - postcss-selector-parser "^6.0.11" - -postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.13: - version "6.0.13" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b" - integrity sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ== - dependencies: - cssesc "^3.0.0" - util-deprecate "^1.0.2" - -postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" - integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== - -postcss-values-parser@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/postcss-values-parser/-/postcss-values-parser-6.0.2.tgz#636edc5b86c953896f1bb0d7a7a6615df00fb76f" - integrity sha512-YLJpK0N1brcNJrs9WatuJFtHaV9q5aAOj+S4DI5S7jgHlRfm0PIbDCAFRYMQD5SHq7Fy6xsDhyutgS0QOAs0qw== - dependencies: - color-name "^1.1.4" - is-url-superb "^4.0.0" - quote-unquote "^1.0.0" - -postcss@^8.4.19, postcss@^8.4.23, postcss@^8.4.27, postcss@^8.4.31: - version "8.4.31" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d" - integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ== - dependencies: - nanoid "^3.3.6" - picocolors "^1.0.0" - source-map-js "^1.0.2" - -postinstall-postinstall@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/postinstall-postinstall/-/postinstall-postinstall-2.1.0.tgz#4f7f77441ef539d1512c40bd04c71b06a4704ca3" - integrity sha512-7hQX6ZlZXIoRiWNrbMQaLzUUfH+sSx39u8EJ9HYuDc1kLo9IXKWjM5RSquZN1ad5GnH8CGFM78fsAAQi3OKEEQ== - -precinct@^11.0.0: - version "11.0.5" - resolved "https://registry.yarnpkg.com/precinct/-/precinct-11.0.5.tgz#3e15b3486670806f18addb54b8533e23596399ff" - integrity sha512-oHSWLC8cL/0znFhvln26D14KfCQFFn4KOLSw6hmLhd+LQ2SKt9Ljm89but76Pc7flM9Ty1TnXyrA2u16MfRV3w== - dependencies: - "@dependents/detective-less" "^4.1.0" - commander "^10.0.1" - detective-amd "^5.0.2" - detective-cjs "^5.0.1" - detective-es6 "^4.0.1" - detective-postcss "^6.1.3" - detective-sass "^5.0.3" - detective-scss "^4.0.3" - detective-stylus "^4.0.0" - detective-typescript "^11.1.0" - module-definition "^5.0.1" - node-source-walk "^6.0.2" - -precond@0.2: - version "0.2.3" - resolved "https://registry.yarnpkg.com/precond/-/precond-0.2.3.tgz#aa9591bcaa24923f1e0f4849d240f47efc1075ac" - 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" - 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" - integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== - -prepend-http@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" - integrity sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA== - -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" - integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== - dependencies: - fast-diff "^1.1.2" - -prettier@1.19.1, prettier@^1.14.2: - version "1.19.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" - integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== - -prettier@3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.3.tgz#432a51f7ba422d1469096c0fdc28e235db8f9643" - integrity sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg== - -prettier@^2.1.2, prettier@^2.8.3: - version "2.8.8" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" - integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== - -pretty-format@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.5.1.tgz#2181879fdea51a7a5851fb39d920faa63f01d88e" - integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ== - dependencies: - ansi-regex "^5.0.1" - ansi-styles "^5.0.0" - react-is "^17.0.1" - -pretty-ms@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-8.0.0.tgz#a35563b2a02df01e595538f86d7de54ca23194a3" - integrity sha512-ASJqOugUF1bbzI35STMBUpZqdfYKlJugy6JBziGi2EE+AL5JPJGSzvpeVXojxrr0ViUYoToUjb5kjSEGf7Y83Q== - dependencies: - parse-ms "^3.0.0" - -prettyjson@1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/prettyjson/-/prettyjson-1.2.5.tgz#ef3cfffcc70505c032abc59785884b4027031835" - integrity sha512-rksPWtoZb2ZpT5OVgtmy0KHVM+Dca3iVwWY9ifwhcexfjebtgjg3wmrUt9PvJ59XIYBcknQeYHD8IAnVlh9lAw== - dependencies: - colors "1.4.0" - minimist "^1.2.0" - -private@^0.1.6, private@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" - integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== - -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" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -process-warning@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-1.0.0.tgz#980a0b25dc38cd6034181be4b7726d89066b4616" - integrity sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q== - -process-warning@^2.0.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-2.3.1.tgz#0caf992272c439f45dd416e1407ee25a3d4c778a" - integrity sha512-JjBvFEn7MwFbzUDa2SRtKJSsyO0LlER4V/FmwLMhBlXNbGgGxdyFCxIdMDLerWUycsVUyaoM9QFLvppFy4IWaQ== - -process@^0.10.0: - version "0.10.1" - resolved "https://registry.yarnpkg.com/process/-/process-0.10.1.tgz#842457cc51cfed72dc775afeeafb8c6034372725" - integrity sha512-dyIett8dgGIZ/TXKUzeYExt7WA6ldDzys9vTDU/cCA9L17Ypme+KzS+NjQCjpn9xsvi/shbMC+yP/BcFMBz0NA== - -process@^0.11.10: - version "0.11.10" - 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.yarnpkg.com/promise-to-callback/-/promise-to-callback-1.0.0.tgz#5d2a749010bfb67d963598fcd3960746a68feef7" - integrity sha512-uhMIZmKM5ZteDMfLgJnoSq9GCwsNKrYau73Awf1jIy6/eUcuuZ3P+CD9zUv0kJsIUbU+x6uLNIhXhLHDs1pNPA== - dependencies: - is-fn "^1.0.0" - set-immediate-shim "^1.0.1" - -promise@^7.1.1: - version "7.3.1" - resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" - integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg== - dependencies: - asap "~2.0.3" - -promise@^8.0.0: - version "8.3.0" - resolved "https://registry.yarnpkg.com/promise/-/promise-8.3.0.tgz#8cb333d1edeb61ef23869fbb8a4ea0279ab60e0a" - integrity sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg== - dependencies: - asap "~2.0.6" - -prompt-async@^0.9.9: - version "0.9.9" - resolved "https://registry.yarnpkg.com/prompt-async/-/prompt-async-0.9.9.tgz#6fb90053480eec4d06368d6e7fa434736b61193b" - integrity sha512-XHpcP55ME/MRHvvKTGYSayMMpWY7M2dEx5g6WdfHabkO4+BrJIWeZh4+qJG4lRgebr5ovT+Cnv98qfmXqQ3RXA== - dependencies: - prompt "^1.0.0" - -prompt@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/prompt/-/prompt-1.3.0.tgz#b1f6d47cb1b6beed4f0660b470f5d3ec157ad7ce" - integrity sha512-ZkaRWtaLBZl7KKAKndKYUL8WqNT+cQHKRZnT4RYYms48jQkFw3rrBL+/N5K/KtdEveHkxs982MX2BkDKub2ZMg== - dependencies: - "@colors/colors" "1.5.0" - async "3.2.3" - read "1.0.x" - revalidator "0.1.x" - winston "2.x" - -proper-lockfile@^4.0.0, proper-lockfile@^4.1.1: - version "4.1.2" - resolved "https://registry.yarnpkg.com/proper-lockfile/-/proper-lockfile-4.1.2.tgz#c8b9de2af6b2f1601067f98e01ac66baa223141f" - integrity sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA== - dependencies: - graceful-fs "^4.2.4" - retry "^0.12.0" - signal-exit "^3.0.2" - -proto-list@~1.2.1: - version "1.2.4" - resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" - integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== - -protobufjs@^6.10.2: - version "6.11.4" - resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.11.4.tgz#29a412c38bf70d89e537b6d02d904a6f448173aa" - integrity sha512-5kQWPaJHi1WoCpjTGszzQ32PG2F4+wRY6BmAT4Vfw56Q2FZ4YZzK20xUYQH4YkfehY1e6QSICrJquM6xXZNcrw== - dependencies: - "@protobufjs/aspromise" "^1.1.2" - "@protobufjs/base64" "^1.1.2" - "@protobufjs/codegen" "^2.0.4" - "@protobufjs/eventemitter" "^1.1.0" - "@protobufjs/fetch" "^1.1.0" - "@protobufjs/float" "^1.0.2" - "@protobufjs/inquire" "^1.1.0" - "@protobufjs/path" "^1.1.2" - "@protobufjs/pool" "^1.1.0" - "@protobufjs/utf8" "^1.1.0" - "@types/long" "^4.0.1" - "@types/node" ">=13.7.0" - long "^4.0.0" - -protobufjs@^7.1.2, protobufjs@^7.2.2, protobufjs@^7.2.3, protobufjs@^7.2.4: - version "7.2.5" - resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.2.5.tgz#45d5c57387a6d29a17aab6846dcc283f9b8e7f2d" - integrity sha512-gGXRSXvxQ7UiPgfw8gevrfRWcTlSbOFg+p/N+JVJEK5VhueL2miT6qTymqAmjr1Q5WbOCyJbyrk6JfWKwlFn6A== - dependencies: - "@protobufjs/aspromise" "^1.1.2" - "@protobufjs/base64" "^1.1.2" - "@protobufjs/codegen" "^2.0.4" - "@protobufjs/eventemitter" "^1.1.0" - "@protobufjs/fetch" "^1.1.0" - "@protobufjs/float" "^1.0.2" - "@protobufjs/inquire" "^1.1.0" - "@protobufjs/path" "^1.1.2" - "@protobufjs/pool" "^1.1.0" - "@protobufjs/utf8" "^1.1.0" - "@types/node" ">=13.7.0" - long "^5.0.0" - -protocol-buffers-schema@^3.3.1: - version "3.6.0" - resolved "https://registry.yarnpkg.com/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz#77bc75a48b2ff142c1ad5b5b90c94cd0fa2efd03" - integrity sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw== - -protons@^1.0.2, protons@^1.1.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/protons/-/protons-1.2.1.tgz#5f1e0db8b2139469cd1c3b4e332a4c2d95d0a218" - integrity sha512-2oqDyc/SN+tNcJf8XxrXhYL7sQn2/OMl8mSdD7NVGsWjMEmAbks4eDVnCyf0vAoRbBWyWTEXWk4D8XfuKVl3zg== - dependencies: - buffer "^5.5.0" - protocol-buffers-schema "^3.3.1" - signed-varint "^2.0.1" - varint "^5.0.0" - -proxy-addr@^2.0.7, proxy-addr@~2.0.7: - version "2.0.7" - 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-compare@2.5.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/proxy-compare/-/proxy-compare-2.5.1.tgz#17818e33d1653fbac8c2ec31406bce8a2966f600" - integrity sha512-oyfc0Tx87Cpwva5ZXezSp5V9vht1c7dZBhvuV/y3ctkgMVUmiAGDVeeB0dKhGSyT0v1ZTEQYpe/RXlBVBNuCLA== - -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.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw== - -ps-list@^8.0.0: - version "8.1.1" - resolved "https://registry.yarnpkg.com/ps-list/-/ps-list-8.1.1.tgz#9ff1952b26a9a07fcc05270407e60544237ae581" - integrity sha512-OPS9kEJYVmiO48u/B9qneqhkMvgCxT+Tm28VCEJpheTpl8cJ0ffZRRNgS5mrQRTrX5yRTpaJ+hRDeefXYmmorQ== - -pseudomap@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - integrity sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ== - -psl@^1.1.28, psl@^1.1.33: - version "1.9.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" - integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== - -public-encrypt@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" - integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== - 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" - resolved "https://registry.yarnpkg.com/pull-cat/-/pull-cat-1.1.11.tgz#b642dd1255da376a706b6db4fa962f5fdb74c31b" - integrity sha512-i3w+xZ3DCtTVz8S62hBOuNLRHqVDsHMNZmgrZsjPnsxXUgbWtXEee84lo1XswE7W2a3WHyqsNuDJTjVLAQR8xg== - -pull-defer@^0.2.2: - version "0.2.3" - resolved "https://registry.yarnpkg.com/pull-defer/-/pull-defer-0.2.3.tgz#4ee09c6d9e227bede9938db80391c3dac489d113" - integrity sha512-/An3KE7mVjZCqNhZsr22k1Tx8MACnUnHZZNPSJ0S62td8JtYr/AiRG42Vz7Syu31SoTLUzVIe61jtT/pNdjVYA== - -pull-level@^2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pull-level/-/pull-level-2.0.4.tgz#4822e61757c10bdcc7cf4a03af04c92734c9afac" - integrity sha512-fW6pljDeUThpq5KXwKbRG3X7Ogk3vc75d5OQU/TvXXui65ykm+Bn+fiktg+MOx2jJ85cd+sheufPL+rw9QSVZg== - 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" - resolved "https://registry.yarnpkg.com/pull-live/-/pull-live-1.0.1.tgz#a4ecee01e330155e9124bbbcf4761f21b38f51f5" - integrity sha512-tkNz1QT5gId8aPhV5+dmwoIiA1nmfDOzJDlOOUpU5DNusj6neNd3EePybJ5+sITr2FwyCs/FVpx74YMCfc8YeA== - dependencies: - pull-cat "^1.1.9" - pull-stream "^3.4.0" - -pull-pushable@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/pull-pushable/-/pull-pushable-2.2.0.tgz#5f2f3aed47ad86919f01b12a2e99d6f1bd776581" - integrity sha512-M7dp95enQ2kaHvfCt2+DJfyzgCSpWVR2h2kWYnVsW6ZpxQBx5wOu0QWOvQPVoPnBLUZYitYP2y7HyHkLQNeGXg== - -pull-stream@^3.2.3, pull-stream@^3.4.0, pull-stream@^3.6.8: - version "3.7.0" - resolved "https://registry.yarnpkg.com/pull-stream/-/pull-stream-3.7.0.tgz#85de0e44ff38a4d2ad08cc43fc458e1922f9bf0b" - integrity sha512-Eco+/R004UaCK2qEDE8vGklcTG2OeZSVm1kTUQNrykEjDwcFXDZhygFDsW49DbXyJMEhHeRL3z5cRVqPAhXlIw== - -pull-window@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/pull-window/-/pull-window-2.1.4.tgz#fc3b86feebd1920c7ae297691e23f705f88552f0" - integrity sha512-cbDzN76BMlcGG46OImrgpkMf/VkCnupj8JhsrpBw3aWBM9ye345aYnqitmZCgauBkc0HbbRRn9hCnsa3k2FNUg== - dependencies: - looper "^2.0.0" - -pump@3.0.0, pump@^3.0.0: - version "3.0.0" - 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" - -pump@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/pump/-/pump-1.0.3.tgz#5dfe8311c33bbf6fc18261f9f34702c47c08a954" - integrity sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw== - 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.3.2, punycode@^1.4.1: - version "1.4.1" - 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.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" - integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== - -pupa@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/pupa/-/pupa-3.1.0.tgz#f15610274376bbcc70c9a3aa8b505ea23f41c579" - integrity sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug== - dependencies: - escape-goat "^4.0.0" - -pvtsutils@^1.3.2, pvtsutils@^1.3.5: - version "1.3.5" - resolved "https://registry.yarnpkg.com/pvtsutils/-/pvtsutils-1.3.5.tgz#b8705b437b7b134cd7fd858f025a23456f1ce910" - integrity sha512-ARvb14YB9Nm2Xi6nBq1ZX6dAM0FsJnuk+31aUp4TrcZEdKUlSqOqsxJHUPJDNE3qiIp+iUPEIeR6Je/tgV7zsA== - dependencies: - tslib "^2.6.1" - -pvutils@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.1.3.tgz#f35fc1d27e7cd3dfbd39c0826d173e806a03f5a3" - integrity sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ== - -qrcode@1.5.3, qrcode@^1.5.1: - version "1.5.3" - resolved "https://registry.yarnpkg.com/qrcode/-/qrcode-1.5.3.tgz#03afa80912c0dccf12bc93f615a535aad1066170" - integrity sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg== - dependencies: - dijkstrajs "^1.0.1" - encode-utf8 "^1.0.3" - pngjs "^5.0.0" - yargs "^15.3.1" - -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.9.6: - version "6.11.2" - 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.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" - integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== - -query-string@7.1.3: - version "7.1.3" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-7.1.3.tgz#a1cf90e994abb113a325804a972d98276fe02328" - integrity sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg== - dependencies: - decode-uri-component "^0.2.2" - filter-obj "^1.1.0" - split-on-first "^1.0.0" - strict-uri-encode "^2.0.0" - -query-string@^5.0.1: - version "5.1.1" - 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" - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" - -querystring-es3@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - integrity sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA== - -querystringify@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" - integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== - -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" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - -queue-tick@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/queue-tick/-/queue-tick-1.0.1.tgz#f6f07ac82c1fd60f82e098b417a80e52f1f4c142" - integrity sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag== - -quick-format-unescaped@^4.0.3: - version "4.0.4" - resolved "https://registry.yarnpkg.com/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz#93ef6dd8d3453cbc7970dd614fad4c5954d6b5a7" - integrity sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg== - -quick-lru@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" - integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== - -quick-lru@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" - integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== - -quote-unquote@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/quote-unquote/-/quote-unquote-1.0.0.tgz#67a9a77148effeaf81a4d428404a710baaac8a0b" - integrity sha512-twwRO/ilhlG/FIgYeKGFqyHhoEhqgnKVkcmqMKi2r524gz3ZbDTcyFt38E9xjJI2vT+KbRNHVbnJ/e0I25Azwg== - -r1csfile@0.0.16: - version "0.0.16" - resolved "https://registry.yarnpkg.com/r1csfile/-/r1csfile-0.0.16.tgz#53c66a79b50eebc2d15a1048e39d548ce9da7ccd" - integrity sha512-A2jRVWzGgmXeG2lVAc0H4suJmzt50it5UvBnycJgBCpMXM3tH/M6RguP7nvs6suY/yYnkN6jX6iTScSiDUF3FA== - dependencies: - "@iden3/bigarray" "0.0.2" - fastfile "0.0.18" - ffjavascript "0.2.22" - -r1csfile@0.0.32: - version "0.0.32" - resolved "https://registry.yarnpkg.com/r1csfile/-/r1csfile-0.0.32.tgz#64a6c63ff76b737b3ee22bcedb2bb9a033cbeb1a" - integrity sha512-DkRXeOg0iRmfhgIuWICvdkOiLHpyb7+AcUd/WHpqBJEUp27pe7wKXBR4Jr3TPYCT4sTV9a/F3bovyAC4wystnQ== - dependencies: - "@iden3/bigarray" "0.0.2" - "@iden3/binfileutils" "0.0.8" - fastfile "0.0.19" - ffjavascript "0.2.35" - -r1csfile@0.0.41: - version "0.0.41" - resolved "https://registry.yarnpkg.com/r1csfile/-/r1csfile-0.0.41.tgz#e3d2709d36923156dd1fc2db9858987b30c92948" - integrity sha512-Q1WDF3u1vYeAwjHo4YuddkA8Aq0TulbKjmGm99+Atn13Lf5fTsMZBnBV9T741w8iSyPFG6Uh6sapQby77sREqA== - dependencies: - "@iden3/bigarray" "0.0.2" - "@iden3/binfileutils" "0.0.11" - fastfile "0.0.20" - ffjavascript "0.2.56" - -rabin-wasm@~0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/rabin-wasm/-/rabin-wasm-0.0.8.tgz#5b61b1d519d0377453435fbca5f82510b3f956cb" - integrity sha512-TpIki3NG/X7nPnYHtYdF4Vp5NLrHvztiM5oL8+9NoeX/ClUfUyy7Y7DMrESZl1ropCpZJAjFMv/ZHYrkLu3bCQ== - dependencies: - assemblyscript "github:assemblyscript/assemblyscript#v0.6" - bl "^1.0.0" - debug "^4.1.1" - minimist "^1.2.0" - node-fetch "^2.6.0" - readable-stream "^2.0.4" - -radix3@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/radix3/-/radix3-1.1.0.tgz#9745df67a49c522e94a33d0a93cf743f104b6e0d" - integrity sha512-pNsHDxbGORSvuSScqNJ+3Km6QAVqk8CfsCBIEoDgpqLrkD2f3QM4I7d1ozJJ172OmIcoUcerZaNWqtLkRXTV3A== - -ramda@^0.24.1: - version "0.24.1" - resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.24.1.tgz#c3b7755197f35b8dc3502228262c4c91ddb6b857" - integrity sha512-HEm619G8PaZMfkqCa23qiOe7r3R0brPu7ZgOsgKUsnvLhd0qhc/vTjkUovomgPWa5ECBa08fJZixth9LaoBo5w== - -ramda@^0.25.0: - version "0.25.0" - resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.25.0.tgz#8fdf68231cffa90bc2f9460390a0cb74a29b29a9" - integrity sha512-GXpfrYVPwx3K7RQ6aYT8KPS8XViSXUVJT1ONhoKPE9VAleW42YE+U+8VEyGWt41EnEQW7gwecYJriTI0pKoecQ== - -ramdasauce@^2.1.0: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ramdasauce/-/ramdasauce-2.1.3.tgz#acb45ecc7e4fc4d6f39e19989b4a16dff383e9c2" - integrity sha512-Ml3CPim4SKwmg5g9UI77lnRSeKr/kQw7YhQ6rfdMcBYy6DMlwmkEwQqjygJ3OhxPR+NfFfpjKl3Tf8GXckaqqg== - dependencies: - ramda "^0.24.1" - -random-bytes@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/random-bytes/-/random-bytes-1.0.0.tgz#4f68a1dc0ae58bd3fb95848c30324db75d64360b" - integrity sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ== - -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.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" - integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== - dependencies: - randombytes "^2.0.5" - 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" - 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== - 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== - dependencies: - bytes "3.1.2" - http-errors "2.0.0" - iconv-lite "0.4.24" - unpipe "1.0.0" - -rc@1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" - integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== - dependencies: - deep-extend "^0.6.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - -react-is@^17.0.1: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" - integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== - -react-native-fetch-api@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/react-native-fetch-api/-/react-native-fetch-api-3.0.0.tgz#81e1bb6562c292521bc4eca52fe1097f4c1ebab5" - integrity sha512-g2rtqPjdroaboDKTsJCTlcmtw54E25OjyaunUP0anOZn4Fuo2IKs8BVfe02zVggA/UysbmfSnRJIqtNkAgggNA== - dependencies: - p-defer "^3.0.0" - -read-cache@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" - integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA== - dependencies: - pify "^2.3.0" - -read-pkg-up@9.1.0, read-pkg-up@^9.0.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-9.1.0.tgz#38ca48e0bc6c6b260464b14aad9bcd4e5b1fbdc3" - integrity sha512-vaMRR1AC1nrd5CQM0PhlRsO5oc2AAigqr7cCrZ/MW/Rsaflz4RlgzkpL4qoU/z1F6wrbd85iFv1OQj/y5RdGvg== - dependencies: - find-up "^6.3.0" - read-pkg "^7.1.0" - type-fest "^2.5.0" - -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" - integrity sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A== - dependencies: - find-up "^1.0.0" - read-pkg "^1.0.0" - -read-pkg-up@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" - integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== - dependencies: - find-up "^4.1.0" - read-pkg "^5.2.0" - type-fest "^0.8.1" - -read-pkg@^1.0.0: - version "1.1.0" - 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" - -read-pkg@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" - integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== - dependencies: - "@types/normalize-package-data" "^2.4.0" - normalize-package-data "^2.5.0" - parse-json "^5.0.0" - type-fest "^0.6.0" - -read-pkg@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-7.1.0.tgz#438b4caed1ad656ba359b3e00fd094f3c427a43e" - integrity sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg== - dependencies: - "@types/normalize-package-data" "^2.4.1" - normalize-package-data "^3.0.2" - parse-json "^5.2.0" - type-fest "^2.0.0" - -read@1.0.x: - version "1.0.7" - resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4" - integrity sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ== - dependencies: - mute-stream "~0.0.4" - -readable-stream@^1.0.33: - version "1.1.14" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" - 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, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.8, readable-stream@^2.2.9, readable-stream@^2.3.0, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6: - version "2.3.8" - 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" - 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@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.5.0, readable-stream@^3.6.0, readable-stream@^3.6.2: - version "3.6.2" - 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@^4.0.0: - version "4.4.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.4.2.tgz#e6aced27ad3b9d726d8308515b9a1b98dc1b9d13" - integrity sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA== - dependencies: - abort-controller "^3.0.0" - buffer "^6.0.3" - events "^3.3.0" - process "^0.11.10" - string_decoder "^1.3.0" - -readable-stream@~1.0.15, readable-stream@~1.0.26-4: - version "1.0.34" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" - 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" - -readable-web-to-node-stream@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz#5d52bb5df7b54861fd48d015e93a2cb87b3ee0bb" - integrity sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw== - dependencies: - readable-stream "^3.6.0" - -readdir-glob@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/readdir-glob/-/readdir-glob-1.1.3.tgz#c3d831f51f5e7bfa62fa2ffbe4b508c640f09584" - integrity sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA== - dependencies: - minimatch "^5.1.0" - -readdirp@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" - integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== - dependencies: - graceful-fs "^4.1.11" - micromatch "^3.1.10" - readable-stream "^2.0.2" - -readdirp@^3.4.0, readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" - -readdirp@~3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" - integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== - dependencies: - picomatch "^2.2.1" - -readline@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/readline/-/readline-1.3.0.tgz#c580d77ef2cfc8752b132498060dc9793a7ac01c" - integrity sha512-k2d6ACCkiNYz222Fs/iNze30rRJ1iIicW7JuX/7/cozvih6YCkFZH+J6mAFDVgv0dRBaAyr4jDqC95R2y4IADg== - -real-require@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/real-require/-/real-require-0.1.0.tgz#736ac214caa20632847b7ca8c1056a0767df9381" - integrity sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg== - -real-require@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/real-require/-/real-require-0.2.0.tgz#209632dea1810be2ae063a6ac084fee7e33fba78" - integrity sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg== - -receptacle@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/receptacle/-/receptacle-1.3.2.tgz#a7994c7efafc7a01d0e2041839dab6c4951360d2" - integrity sha512-HrsFvqZZheusncQRiEE7GatOAETrARKV/lnfYicIm8lbvp/JQOdADOfhjBd2DajvoszEyxSM6RlAAIZgEoeu/A== - dependencies: - ms "^2.1.1" - -rechoir@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" - integrity sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw== - dependencies: - resolve "^1.1.6" - -redent@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" - integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== - dependencies: - indent-string "^4.0.0" - strip-indent "^3.0.0" - -redeyed@~2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/redeyed/-/redeyed-2.1.1.tgz#8984b5815d99cb220469c99eeeffe38913e6cc0b" - integrity sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ== - dependencies: - esprima "~4.0.0" - -redis-errors@^1.0.0, redis-errors@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/redis-errors/-/redis-errors-1.2.0.tgz#eb62d2adb15e4eaf4610c04afe1529384250abad" - integrity sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w== - -redis-parser@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/redis-parser/-/redis-parser-3.0.0.tgz#b66d828cdcafe6b4b8a428a7def4c6bcac31c8b4" - integrity sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A== - dependencies: - redis-errors "^1.0.0" - -regenerate@^1.2.1: - version "1.4.2" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" - integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== - -regenerator-runtime@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" - integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== - -regenerator-runtime@^0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45" - integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA== - -regenerator-transform@^0.10.0: - version "0.10.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" - 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" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - -regexp-tree@^0.1.24: - version "0.1.27" - resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.27.tgz#2198f0ef54518ffa743fe74d983b56ffd631b6cd" - integrity sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA== - -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" - integrity sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - set-function-name "^2.0.0" - -regexpu-core@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" - integrity sha512-tJ9+S4oKjxY8IZ9jmjnp/mtytu1u3iyIQAfmI51IKWH6bFf7XR1ybtaO6j7INhZKXOTYADk7V5qxaqLkmNxiZQ== - dependencies: - regenerate "^1.2.1" - regjsgen "^0.2.0" - regjsparser "^0.1.4" - -registry-auth-token@^5.0.1: - version "5.0.2" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-5.0.2.tgz#8b026cc507c8552ebbe06724136267e63302f756" - integrity sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ== - dependencies: - "@pnpm/npm-conf" "^2.1.0" - -registry-url@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-6.0.1.tgz#056d9343680f2f64400032b1e199faa692286c58" - integrity sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q== - dependencies: - rc "1.2.8" - -regjsgen@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" - integrity sha512-x+Y3yA24uF68m5GA+tBjbGYo64xXVJpbToBaWCoSNSc1hdk6dfctaRWrNFTVJZIIhL5GxW8zwjoixbnifnK59g== - -regjsparser@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" - integrity sha512-jlQ9gYLfk2p3V5Ag5fYhA7fv7OHzd1KUH0PRP46xc3TgwjwgROIW572AfYg/X9kaNq/LJnu6oJcFRXlIrGoTRw== - dependencies: - jsesc "~0.5.0" - -relay-runtime@12.0.0: - version "12.0.0" - resolved "https://registry.yarnpkg.com/relay-runtime/-/relay-runtime-12.0.0.tgz#1e039282bdb5e0c1b9a7dc7f6b9a09d4f4ff8237" - integrity sha512-QU6JKr1tMsry22DXNy9Whsq5rmvwr3LSZiiWV/9+DFpuTWvp+WFhobWMc8TC4OjKFfNhEZy7mOiqUAn5atQtug== - dependencies: - "@babel/runtime" "^7.0.0" - fbjs "^3.0.0" - invariant "^2.2.4" - -remedial@^1.0.7: - version "1.0.8" - resolved "https://registry.yarnpkg.com/remedial/-/remedial-1.0.8.tgz#a5e4fd52a0e4956adbaf62da63a5a46a78c578a0" - integrity sha512-/62tYiOe6DzS5BqVsNpH/nkGlX45C/Sp6V+NtiN6JQNS1Viay7cWkazmRkrQrdFj2eshDe96SIQNIoMxqhzBOg== - -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw== - -remove-trailing-spaces@^1.0.6: - version "1.0.8" - resolved "https://registry.yarnpkg.com/remove-trailing-spaces/-/remove-trailing-spaces-1.0.8.tgz#4354d22f3236374702f58ee373168f6d6887ada7" - integrity sha512-O3vsMYfWighyFbTd8hk8VaSj9UAGENxAtX+//ugIst2RMk5e03h6RoIS+0ylsFxY1gvmPuAY/PO4It+gPEeySA== - -repeat-element@^1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" - integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== - -repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== - -repeating@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" - integrity sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A== - dependencies: - is-finite "^1.0.0" - -request@2.88.2, request@^2.79.0, request@^2.85.0: - version "2.88.2" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" - integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== - 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" - -require-directory@^2.1.1: - version "2.1.1" - 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.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.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" - integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== - -require-in-the-middle@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/require-in-the-middle/-/require-in-the-middle-7.2.0.tgz#b539de8f00955444dc8aed95e17c69b0a4f10fcf" - integrity sha512-3TLx5TGyAY6AOqLBoXmHkNql0HIf2RGbuMgCDT2WO/uGVAPJs6h7Kl+bN6TIZGd9bWhWPwnDnTHGtW8Iu77sdw== - dependencies: - debug "^4.1.1" - module-details-from-path "^1.0.3" - resolve "^1.22.1" - -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" - 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" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== - -require-package-name@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/require-package-name/-/require-package-name-2.0.1.tgz#c11e97276b65b8e2923f75dabf5fb2ef0c3841b9" - integrity sha512-uuoJ1hU/k6M0779t3VMVIYpb2VMJk05cehCaABFhXaibcbvfgR8wKiozLjVFSzJPmQMRqIcO0HMyTFqfV09V6Q== - -requires-port@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== - -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" - integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== - -resolve-from@5.0.0, resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - integrity sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg== - -resolve@1.17.0: - version "1.17.0" - 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.1.7, resolve@^1.10.0, resolve@^1.17.0, resolve@^1.22.1, resolve@^1.22.2, resolve@^1.8.1, resolve@~1.22.6: - 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" - -resolve@^2.0.0-next.1: - version "2.0.0-next.5" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.5.tgz#6b0ec3107e671e52b68cd068ef327173b90dc03c" - integrity sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA== - dependencies: - is-core-module "^2.13.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -responselike@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" - integrity sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ== - dependencies: - lowercase-keys "^1.0.0" - -responselike@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.1.tgz#9a0bc8fdc252f3fb1cca68b016591059ba1422bc" - integrity sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw== - dependencies: - lowercase-keys "^2.0.0" - -responselike@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-3.0.0.tgz#20decb6c298aff0dbee1c355ca95461d42823626" - integrity sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg== - dependencies: - lowercase-keys "^3.0.0" - -restore-cursor@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" - integrity sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q== - dependencies: - onetime "^2.0.0" - signal-exit "^3.0.2" - -restore-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" - integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== - dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" - -restore-cursor@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-4.0.0.tgz#519560a4318975096def6e609d44100edaa4ccb9" - integrity sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg== - dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" - -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== - -ret@~0.2.0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.2.2.tgz#b6861782a1f4762dce43402a71eb7a283f44573c" - integrity sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ== - -retimer@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/retimer/-/retimer-3.0.0.tgz#98b751b1feaf1af13eb0228f8ea68b8f9da530df" - integrity sha512-WKE0j11Pa0ZJI5YIk0nflGI7SQsfl2ljihVy7ogh7DeQSeYAUi0ubZ/yEueGtDfUPk6GH5LRw1hBdLq4IwUBWA== - -retry@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" - integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== - -retry@^0.13.1: - version "0.13.1" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" - integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== - -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - -revalidator@0.1.x: - version "0.1.8" - resolved "https://registry.yarnpkg.com/revalidator/-/revalidator-0.1.8.tgz#fece61bfa0c1b52a206bd6b18198184bdd523a3b" - integrity sha512-xcBILK2pA9oh4SiinPEZfhP8HfrB/ha+a2fTMyl7Om2WjlDVrOQy99N2MXXlUHqGJz4qEu2duXxHJjDWuK/0xg== - -rfdc@^1.2.0, rfdc@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" - integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== - -rimraf@^2.2.8, rimraf@^2.6.3: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - -rimraf@^3.0.0, rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - 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.1, rlp@^2.2.2, rlp@^2.2.3, rlp@^2.2.4, rlp@^2.2.5: - 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" - -rollup@^3.27.1: - version "3.29.4" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.29.4.tgz#4d70c0f9834146df8705bfb69a9a19c9e1109981" - integrity sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw== - optionalDependencies: - fsevents "~2.3.2" - -run-async@^2.2.0, run-async@^2.4.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" - integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== - -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" - integrity sha512-jJA7irRNM91jaKc3Hcl1npHsFLOXOoTkPCUL1JEa1R82O2miplXXRaGdjW/KM/98YQWDhJLiSs793CnXfblJUw== - dependencies: - queue-microtask "^1.2.2" - -run-parallel@^1.1.4, run-parallel@^1.1.9: - version "1.2.0" - 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.yarnpkg.com/rustbn.js/-/rustbn.js-0.2.0.tgz#8082cb886e707155fd1cb6f23bd591ab8d55d0ca" - integrity sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA== - -rxjs@^6.3.3, rxjs@^6.4.0, rxjs@^6.6.2: - version "6.6.7" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" - integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== - dependencies: - tslib "^1.9.0" - -rxjs@^7.5.1, rxjs@^7.5.5: - version "7.8.1" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" - integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== - dependencies: - tslib "^2.1.0" - -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" - 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" - -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.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.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.yarnpkg.com/safe-event-emitter/-/safe-event-emitter-1.0.1.tgz#5b692ef22329ed8f69fdce607e50ca734f6f20af" - integrity sha512-e1wFe99A91XYYxoQbcq2ZJUWurxEyP8vfz7A7vuUe1s95q8r5ebraVaA1BukYJcpM6V16ugWoD9vngi8Ccu5fg== - dependencies: - events "^3.0.0" - -safe-json-stringify@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz#356e44bc98f1f93ce45df14bcd7c01cda86e0afd" - integrity sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg== - -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" - integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.3" - is-regex "^1.1.4" - -safe-regex2@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/safe-regex2/-/safe-regex2-2.0.0.tgz#b287524c397c7a2994470367e0185e1916b1f5b9" - integrity sha512-PaUSFsUaNNuKwkBijoAPHAK6/eM6VirvyPWlZ7BAQy4D+hCvh4B6lIG+nPdhbFfIbP+gTGBcrdsOaUs0F+ZBOQ== - dependencies: - ret "~0.2.0" - -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg== - dependencies: - ret "~0.1.10" - -safe-stable-stringify@^2.1.0, safe-stable-stringify@^2.3.1: - version "2.4.3" - resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz#138c84b6f6edb3db5f8ef3ef7115b8f55ccbf886" - integrity sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g== - -"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -sass@^1.56.1: - version "1.69.5" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.69.5.tgz#23e18d1c757a35f2e52cc81871060b9ad653dfde" - integrity sha512-qg2+UCJibLr2LCVOt3OlPhr/dqVHWOa9XtZf2OjbLs/T4VPSJ00udtgJxH3neXZm+QqX8B+3cU7RaLqp1iVfcQ== - dependencies: - chokidar ">=3.0.0 <4.0.0" - immutable "^4.0.0" - source-map-js ">=0.6.2 <2.0.0" - -saxes@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/saxes/-/saxes-6.0.0.tgz#fe5b4a4768df4f14a201b1ba6a65c1f3d9988cc5" - integrity sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA== - dependencies: - xmlchars "^2.2.0" - -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== - -scryptsy@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/scryptsy/-/scryptsy-1.2.1.tgz#a3225fa4b2524f802700761e2855bdf3b2d92163" - integrity sha512-aldIRgMozSJ/Gl6K6qmJZysRP82lz83Wb42vl4PWN8SaLFHIaOzLPc9nUUW2jQN88CuGm5q5HefJ9jZ3nWSmTw== - dependencies: - pbkdf2 "^3.0.3" - -scuid@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/scuid/-/scuid-1.1.0.tgz#d3f9f920956e737a60f72d0e4ad280bf324d5dab" - integrity sha512-MuCAyrGZcTLfQoH2XoBlQ8C6bzwN88XT/0slOGz0pn8+gIP85BOAfYa44ZXQUTOwRwPU0QvgU+V+OSajl/59Xg== - -scule@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/scule/-/scule-1.1.0.tgz#cbc109256b4aa59fc8074151284cb8cb103531eb" - integrity sha512-vRUjqhyM/YWYzT+jsMk6tnl3NkY4A4soJ8uyh3O6Um+JXEQL9ozUCe7pqrxn3CSKokw0hw3nFStfskzpgYwR0g== - -secp256k1@^4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-4.0.3.tgz#c4559ecd1b8d3c1827ed2d1b94190d69ce267303" - integrity sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA== - dependencies: - elliptic "^6.5.4" - node-addon-api "^2.0.0" - node-gyp-build "^4.2.0" - -secure-json-parse@^2.5.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/secure-json-parse/-/secure-json-parse-2.7.0.tgz#5a5f9cd6ae47df23dba3151edd06855d47e09862" - integrity sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw== - -seedrandom@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/seedrandom/-/seedrandom-3.0.1.tgz#eb3dde015bcf55df05a233514e5df44ef9dce083" - integrity sha512-1/02Y/rUeU1CJBAGLebiC5Lbo5FnB22gQbIFFYTLkwvp1xdABZJH1sn4ZT1MzXmPpzv+Rf/Lu2NcsLJiK4rcDg== - -seek-bzip@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/seek-bzip/-/seek-bzip-1.0.6.tgz#35c4171f55a680916b52a07859ecf3b5857f21c4" - integrity sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ== - dependencies: - commander "^2.8.1" - -semaphore@>=1.0.1, semaphore@^1.0.3, semaphore@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/semaphore/-/semaphore-1.1.0.tgz#aaad8b86b20fe8e9b32b16dc2ee682a8cd26a8aa" - integrity sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA== - -semver-compare@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" - integrity sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow== - -semver-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-4.0.0.tgz#3afcf5ed6d62259f5c72d0d5d50dffbdc9680df5" - integrity sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA== - dependencies: - semver "^7.3.5" - -"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.5.0, semver@^5.6.0: - version "5.7.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" - integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== - -semver@7.3.8: - version "7.3.8" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" - integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== - dependencies: - lru-cache "^6.0.0" - -semver@7.5.4, semver@^7.0.0, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.6, semver@^7.3.7, semver@^7.3.8, semver@^7.5.2, semver@^7.5.3, semver@^7.5.4: - version "7.5.4" - 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@^6.0.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" - integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== - -semver@~5.4.1: - version "5.4.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" - integrity sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg== - -send@0.18.0: - version "0.18.0" - resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" - 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" - -sentence-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/sentence-case/-/sentence-case-3.0.4.tgz#3645a7b8c117c787fde8702056225bb62a45131f" - integrity sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg== - dependencies: - no-case "^3.0.4" - tslib "^2.0.3" - upper-case-first "^2.0.2" - -serialize-javascript@5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4" - integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA== - dependencies: - randombytes "^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" - 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" - integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.18.0" - -servify@^0.1.12: - version "0.1.12" - resolved "https://registry.yarnpkg.com/servify/-/servify-0.1.12.tgz#142ab7bee1f1d033b66d0707086085b17c06db95" - 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" - -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== - -set-cookie-parser@^2.4.1: - version "2.6.0" - resolved "https://registry.yarnpkg.com/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz#131921e50f62ff1a66a461d7d62d7b21d5d15a51" - integrity sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ== - -set-function-length@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.1.1.tgz#4bc39fafb0307224a33e106a7d35ca1218d659ed" - integrity sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ== - dependencies: - define-data-property "^1.1.1" - get-intrinsic "^1.2.1" - gopd "^1.0.1" - has-property-descriptors "^1.0.0" - -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" - 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.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" - integrity sha512-Li5AOqrZWCVA2n5kryzEmqai6bKSIvpz5oUJHPVj6+dsbD3X1ixtsY5tEnsaNpH3pFAHmG8eIHUrtEtohrg+UQ== - -set-value@^2.0.0, set-value@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" - integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== - 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.4, setimmediate@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== - -setprototypeof@1.2.0: - version "1.2.0" - 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.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg== - dependencies: - shebang-regex "^1.0.0" - -shebang-command@^2.0.0: - version "2.0.0" - 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@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -shell-quote@^1.7.3: - version "1.8.1" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680" - integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== - -shelljs@^0.8.3, shelljs@^0.8.4: - version "0.8.5" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c" - integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow== - dependencies: - glob "^7.0.0" - interpret "^1.0.0" - rechoir "^0.6.2" - -shimmer@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/shimmer/-/shimmer-1.2.1.tgz#610859f7de327b587efebf501fb43117f9aff337" - integrity sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw== - -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== - dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - -signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: - version "3.0.7" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" - integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== - -signal-exit@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" - integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== - -signed-varint@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/signed-varint/-/signed-varint-2.0.1.tgz#50a9989da7c98c2c61dad119bc97470ef8528129" - integrity sha512-abgDPg1106vuZZOvw7cFwdCABddfJRz5akcCcchzTbhyhYnsG31y4AlZEgp315T7W3nQq5P4xeOm186ZiPVFzw== - dependencies: - varint "~5.0.0" - -signedsource@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/signedsource/-/signedsource-1.0.0.tgz#1ddace4981798f93bd833973803d80d52e93ad6a" - integrity sha512-6+eerH9fEnNmi/hyM1DXcRK3pWdoMQtlkQ+ns0ntzunjKqp5i3sKCc80ym8Fib3iaYhdJUOPdhlJWj1tvge2Ww== - -simple-concat@^1.0.0: - version "1.0.1" - 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.yarnpkg.com/simple-get/-/simple-get-2.8.2.tgz#5708fb0919d440657326cd5fe7d2599d07705019" - integrity sha512-Ijd/rV5o+mSBBs4F/x9oDPtTx9Zb6X9brmnXvMW4J7IR15ngi9q5xxqWBKU744jTZiaXtxaPL7uHG6vtN8kUkw== - dependencies: - decompress-response "^3.3.0" - once "^1.3.1" - simple-concat "^1.0.0" - -simple-swizzle@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" - integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== - dependencies: - is-arrayish "^0.3.1" - -slash@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" - integrity sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg== - -slash@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" - integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -slash@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" - integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== - -slice-ansi@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" - integrity sha512-up04hB2hR92PgjpyU3y/eg91yIBILyjVY26NvvciY3EVVPjybkMszMpXQ9QAkcS3I5rtJBDLoTxxg+qvW8c7rw== - -slice-ansi@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" - integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" - -slice-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" - integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" - -slice-ansi@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-5.0.0.tgz#b73063c57aa96f9cd881654b15294d95d285c42a" - integrity sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ== - dependencies: - ansi-styles "^6.0.0" - is-fullwidth-code-point "^4.0.0" - -snake-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-3.0.4.tgz#4f2bbd568e9935abdfd593f34c691dadb49c452c" - integrity sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg== - dependencies: - dot-case "^3.0.4" - tslib "^2.0.3" - -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== - 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" - -snarkjs@0.4.7: - version "0.4.7" - resolved "https://registry.yarnpkg.com/snarkjs/-/snarkjs-0.4.7.tgz#d4f8e854896705ec746ca91742b076333efb7083" - integrity sha512-gehpEKZwhBZEYPLokfBqtHIxaHHy50LYDI4xFVopNEwICInHPIbG4nJ0nJ1vgqz+bv824UFQC84XnQ0C/mPjag== - dependencies: - "@iden3/binfileutils" "0.0.8" - blake2b-wasm "^2.3.0" - circom_runtime "0.1.13" - ejs "^3.1.6" - fastfile "0.0.19" - ffjavascript "0.2.37" - js-sha3 "^0.8.0" - logplease "^1.2.15" - r1csfile "0.0.32" - readline "^1.3.0" - -snarkjs@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/snarkjs/-/snarkjs-0.5.0.tgz#cf26bf1d3835eb16b4b330a438bad9824837d6b0" - integrity sha512-KWz8mZ2Y+6wvn6GGkQo6/ZlKwETdAGohd40Lzpwp5TUZCn6N6O4Az1SuX1rw/qREGL6Im+ycb19suCFE8/xaKA== - dependencies: - "@iden3/binfileutils" "0.0.11" - bfj "^7.0.2" - blake2b-wasm "^2.4.0" - circom_runtime "0.1.21" - ejs "^3.1.6" - fastfile "0.0.20" - ffjavascript "0.2.56" - js-sha3 "^0.8.0" - logplease "^1.2.15" - r1csfile "0.0.41" - -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.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" - -solc@^0.6.3: - version "0.6.12" - resolved "https://registry.yarnpkg.com/solc/-/solc-0.6.12.tgz#48ac854e0c729361b22a7483645077f58cba080e" - integrity sha512-Lm0Ql2G9Qc7yPP2Ba+WNmzw2jwsrd3u4PobHYlSOxaut3TtUbj9+5ZrT6f4DUpNPEoBaFUOEg9Op9C0mk7ge9g== - dependencies: - command-exists "^1.2.8" - commander "3.0.2" - 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@^3.3.2: - version "3.6.2" - resolved "https://registry.yarnpkg.com/solhint/-/solhint-3.6.2.tgz#2b2acbec8fdc37b2c68206a71ba89c7f519943fe" - integrity sha512-85EeLbmkcPwD+3JR7aEMKsVC9YrRSxd4qkXuMzrlf7+z2Eqdfm1wHWq1ffTuo5aDhoZxp2I9yF3QkxZOxOL7aQ== - 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" - optionalDependencies: - prettier "^2.8.3" - -solidity-rlp@2.0.8: - version "2.0.8" - resolved "https://registry.yarnpkg.com/solidity-rlp/-/solidity-rlp-2.0.8.tgz#1548370b690ef06dbb62af06b7675bc86b19bbe3" - integrity sha512-gzYzHoFKRH1ydJeCfzm3z/BvKrZGK/V9+qbOlNbBcRAYeizjCdDNhLTTE8iIJrHqsRrZRSOo+7mhbnxoBoZvJQ== - -sonic-boom@^2.2.1: - version "2.8.0" - resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-2.8.0.tgz#c1def62a77425090e6ad7516aad8eb402e047611" - integrity sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg== - dependencies: - atomic-sleep "^1.0.0" - -sonic-boom@^3.7.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-3.7.0.tgz#b4b7b8049a912986f4a92c51d4660b721b11f2f2" - integrity sha512-IudtNvSqA/ObjN97tfgNmOKyDOs4dNcg4cUUsHDebqsgb8wGBBwb31LIgShNO8fye0dFI52X1+tFoKKI6Rq1Gg== - dependencies: - atomic-sleep "^1.0.0" - -sort-keys-length@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/sort-keys-length/-/sort-keys-length-1.0.1.tgz#9cb6f4f4e9e48155a6aa0671edd336ff1479a188" - integrity sha512-GRbEOUqCxemTAk/b32F2xa8wDTs+Z1QHOkbhJDQTvv/6G3ZkbJ+frYWsTcc7cBB3Fu4wy4XlLCuNtJuMn7Gsvw== - dependencies: - sort-keys "^1.0.0" - -sort-keys@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" - integrity sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg== - dependencies: - is-plain-obj "^1.0.0" - -sort-keys@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-4.2.0.tgz#6b7638cee42c506fff8c1cecde7376d21315be18" - integrity sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg== - dependencies: - is-plain-obj "^2.0.0" - -"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" - integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== - -source-map-resolve@^0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" - integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== - 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.5.12: - version "0.5.12" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.12.tgz#b4f3b10d51857a5af0138d3ce8003b201613d599" - integrity sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map-support@0.5.21, source-map-support@^0.5.11, source-map-support@^0.5.13, source-map-support@^0.5.19, source-map-support@^0.5.20, source-map-support@^0.5.21: - version "0.5.21" - 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" - source-map "^0.6.0" - -source-map-support@^0.4.15: - version "0.4.18" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" - integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA== - dependencies: - source-map "^0.5.6" - -source-map-url@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" - integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== - -source-map@0.6.1, source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -source-map@^0.5.6, source-map@^0.5.7: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== - -sourcemap-codec@^1.4.8: - version "1.4.8" - resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" - integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== - -sparse-array@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/sparse-array/-/sparse-array-1.3.2.tgz#0e1a8b71706d356bc916fe754ff496d450ec20b0" - integrity sha512-ZT711fePGn3+kQyLuv1fpd3rNSkNF8vd5Kv2D+qnOANeyKs3fx6bUMGWRPvgTTcYV64QMqZKZwcuaQSP3AZ0tg== - -spdx-correct@^3.0.0: - version "3.2.0" - 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" - spdx-license-ids "^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" - 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" - 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.16" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz#a14f64e0954f6e25cc6587bd4f392522db0d998f" - integrity sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw== - -split-ca@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/split-ca/-/split-ca-1.0.1.tgz#6c83aff3692fa61256e0cd197e05e9de157691a6" - integrity sha512-Q5thBSxp5t8WPTTJQS59LrGqOZqOsrhDGDVm8azCqIBjSBd7nd9o2PM+mDulQQkh8h//4U6hFZnc/mul8t5pWQ== - -split-on-first@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f" - integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw== - -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== - dependencies: - extend-shallow "^3.0.0" - -split2@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/split2/-/split2-1.1.1.tgz#162d9b18865f02ab2f2ad9585522db9b54c481f9" - integrity sha512-cfurE2q8LamExY+lJ9Ex3ZfBwqAPduzOKVscPDXNCLLMvyaeD3DTz1yk7fVIs6Chco+12XeD0BB6HEoYzPYbXA== - dependencies: - through2 "~2.0.0" - -split2@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4" - integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== - -sponge-case@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/sponge-case/-/sponge-case-1.0.1.tgz#260833b86453883d974f84854cdb63aecc5aef4c" - integrity sha512-dblb9Et4DAtiZ5YSUZHLl4XhH4uK80GhAZrVXdN4O2P4gQ40Wa5UIOPUHlA/nFd2PLblBZWUioLMMAVrgpoYcA== - dependencies: - tslib "^2.0.3" - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== - -sshpk@^1.7.0: - 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" - 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" - -stable@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" - integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== - -stack-generator@^2.0.3: - version "2.0.10" - resolved "https://registry.yarnpkg.com/stack-generator/-/stack-generator-2.0.10.tgz#8ae171e985ed62287d4f1ed55a1633b3fb53bb4d" - integrity sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ== - dependencies: - stackframe "^1.3.4" - -stack-trace@0.0.x: - version "0.0.10" - resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" - integrity sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg== - -stackframe@^1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.3.4.tgz#b881a004c8c149a5e8efef37d51b16e412943310" - integrity sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw== - -stacktrace-parser@^0.1.10: - version "0.1.10" - 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" - -standard-as-callback@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/standard-as-callback/-/standard-as-callback-2.1.0.tgz#8953fc05359868a77b5b9739a665c5977bb7df45" - integrity sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A== - -static-eval@2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/static-eval/-/static-eval-2.0.2.tgz#2d1759306b1befa688938454c546b7871f806a42" - integrity sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg== - dependencies: - escodegen "^1.8.1" - -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - integrity sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g== - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - -statuses@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" - integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== - -"statuses@>= 1.5.0 < 2": - version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== - -std-env@^3.4.3: - version "3.5.0" - resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.5.0.tgz#83010c9e29bd99bf6f605df87c19012d82d63b97" - integrity sha512-JGUEaALvL0Mf6JCfYnJOTcobY+Nc7sG/TemDRBqCA0wEr4DER7zDchaaixTlmOxAjG1uRJmX82EQcxwTQTkqVA== - -stdin-discarder@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/stdin-discarder/-/stdin-discarder-0.1.0.tgz#22b3e400393a8e28ebf53f9958f3880622efde21" - integrity sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ== - dependencies: - bl "^5.0.0" - -stream-browserify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-3.0.0.tgz#22b0a2850cdf6503e73085da1fc7b7d0c2122f2f" - integrity sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA== - dependencies: - inherits "~2.0.4" - readable-stream "^3.5.0" - -stream-http@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-3.2.0.tgz#1872dfcf24cb15752677e40e5c3f9cc1926028b5" - integrity sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A== - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.4" - readable-stream "^3.6.0" - xtend "^4.0.2" - -stream-shift@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" - integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== - -stream-to-it@^0.2.0, stream-to-it@^0.2.2: - version "0.2.4" - resolved "https://registry.yarnpkg.com/stream-to-it/-/stream-to-it-0.2.4.tgz#d2fd7bfbd4a899b4c0d6a7e6a533723af5749bd0" - integrity sha512-4vEbkSs83OahpmBybNJXlJd7d6/RxzkkSdT3I0mnGt79Xd2Kk+e1JqbvAvsQfCeKj3aKb0QIWkyK3/n0j506vQ== - dependencies: - get-iterator "^1.0.2" - -stream-to-pull-stream@^1.7.1: - version "1.7.3" - resolved "https://registry.yarnpkg.com/stream-to-pull-stream/-/stream-to-pull-stream-1.7.3.tgz#4161aa2d2eb9964de60bfa1af7feaf917e874ece" - integrity sha512-6sNyqJpr5dIOQdgNy/xcDWwDuzAsAwVzhzrWlAPAQ7Lkjx/rv0wgvxEyKwTq6FmNd5rjTrELt/CLmaSw7crMGg== - dependencies: - looper "^3.0.0" - pull-stream "^3.2.3" - -streaming-iterables@^4.1.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/streaming-iterables/-/streaming-iterables-4.1.2.tgz#0a98f1460be70d8bf904f7fffaeb10b16ed708ab" - integrity sha512-IzhmKnQ2thkNMUcaGsjedrxdAoXPhtIFn8hUlmSqSqafa2p0QmZudu6ImG7ckvPNfazpMfr6Ef8cxUWyIyxpxA== - -streamsearch@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" - integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== - -streamx@^2.15.0: - version "2.15.5" - resolved "https://registry.yarnpkg.com/streamx/-/streamx-2.15.5.tgz#87bcef4dc7f0b883f9359671203344a4e004c7f1" - integrity sha512-9thPGMkKC2GctCzyCUjME3yR03x2xNo0GPKGkRw2UMYN+gqWa9uqpyNWhmsNCutU5zHmkUum0LsCRQTXUgUCAg== - dependencies: - fast-fifo "^1.1.0" - queue-tick "^1.0.1" - -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" - integrity sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ== - -strict-uri-encode@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" - integrity sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ== - -string-argv@0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" - integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== - -string-env-interpolation@1.0.1, string-env-interpolation@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/string-env-interpolation/-/string-env-interpolation-1.0.1.tgz#ad4397ae4ac53fe6c91d1402ad6f6a52862c7152" - integrity sha512-78lwMoCcn0nNu8LszbP1UA7g55OeE4v7rCeWnM5B453rnNr4aq+5it3FEYtZrSEiMvHZOZ9Jlqb0OD0M2VInqg== - -string-template@~0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/string-template/-/string-template-0.2.1.tgz#42932e598a352d01fc22ec3367d9d84eec6c9add" - integrity sha512-Yptehjogou2xm4UJbxJ4CxgZx12HBfeystp0y3x7s4Dj32ltVVG1Gg8YhKjHZkHicuKpZX/ffilA8505VbUbpw== - -string-width@^1.0.1: - version "1.0.2" - 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", string-width@^2.1.0, string-width@^2.1.1: - version "2.1.1" - 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@^1.0.2 || 2 || 3 || 4", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: - version "4.2.3" - 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" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.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" - 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@^5.0.0, 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" - integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== - dependencies: - eastasianwidth "^0.2.0" - emoji-regex "^9.2.2" - strip-ansi "^7.0.1" - -string.prototype.trim@^1.2.8, 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" - integrity sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - -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" - integrity sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - -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" - integrity sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - -string_decoder@^1.0.0, string_decoder@^1.1.1, string_decoder@^1.3.0: - 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" - -stringify-object@3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" - integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== - dependencies: - get-own-enumerable-property-symbols "^3.0.0" - is-obj "^1.0.1" - is-regexp "^1.0.0" - -strip-ansi-control-characters@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi-control-characters/-/strip-ansi-control-characters-2.0.0.tgz#8875b5ba3a859a0a44f94e1cf7d3eda8980997b9" - integrity sha512-Q0/k5orrVGeaOlIOUn1gybGU0IcAbgHQT1faLo5hik4DqClKVSaka5xOhNNoRgtfztHVxCYxi7j71mrWom0bIw== - -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" - 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" - 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" - 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" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^7.0.0, strip-ansi@^7.0.1: - version "7.1.0" - 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.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" - integrity sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g== - dependencies: - is-utf8 "^0.2.0" - -strip-dirs@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-dirs/-/strip-dirs-3.0.0.tgz#7c9a5d7822ce079a9db40387a4b20d5654746f42" - integrity sha512-I0sdgcFTfKQlUPZyAqPJmSG3HLO9rWDFnxonnIbskYNM3DwFOeTNB5KzVq3dA1GdRAc/25b5Y7UO2TQfKWw4aQ== - dependencies: - inspect-with-kind "^1.0.5" - is-plain-obj "^1.1.0" - -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - -strip-final-newline@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" - integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== - -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" - integrity sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A== - dependencies: - is-hex-prefixed "1.0.0" - -strip-indent@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" - integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== - dependencies: - min-indent "^1.0.0" - -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" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -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-literal@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/strip-literal/-/strip-literal-1.3.0.tgz#db3942c2ec1699e6836ad230090b84bb458e3a07" - integrity sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg== - dependencies: - acorn "^8.10.0" - -strip-outer@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-outer/-/strip-outer-2.0.0.tgz#c45c724ed9b1ff6be5f660503791404f4714084b" - integrity sha512-A21Xsm1XzUkK0qK1ZrytDUvqsQWict2Cykhvi0fBQntGG5JSprESasEyV1EZ/4CiR5WB5KjzLTrP/bO37B0wPg== - -strtok3@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/strtok3/-/strtok3-7.0.0.tgz#868c428b4ade64a8fd8fee7364256001c1a4cbe5" - integrity sha512-pQ+V+nYQdC5H3Q7qBZAz/MO6lwGhoC2gOAjuouGf/VO0m7vQRh8QNMl2Uf6SwAtzZ9bOw3UIeBukEGNJl5dtXQ== - dependencies: - "@tokenizer/token" "^0.3.0" - peek-readable "^5.0.0" - -sucrase@^3.32.0: - version "3.34.0" - resolved "https://registry.yarnpkg.com/sucrase/-/sucrase-3.34.0.tgz#1e0e2d8fcf07f8b9c3569067d92fbd8690fb576f" - integrity sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw== - dependencies: - "@jridgewell/gen-mapping" "^0.3.2" - commander "^4.0.0" - glob "7.1.6" - lines-and-columns "^1.1.6" - mz "^2.7.0" - pirates "^4.0.1" - ts-interface-checker "^0.1.9" - -supports-color@8.1.1, 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@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - integrity sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g== - -supports-color@^5.3.0: - version "5.5.0" - 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.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" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-color@^9.0.0: - version "9.4.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-9.4.0.tgz#17bfcf686288f531db3dea3215510621ccb55954" - integrity sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw== - -supports-hyperlinks@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz#3943544347c1ff90b15effb03fc14ae45ec10624" - integrity sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA== - dependencies: - has-flag "^4.0.0" - supports-color "^7.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" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - -swap-case@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/swap-case/-/swap-case-2.0.2.tgz#671aedb3c9c137e2985ef51c51f9e98445bf70d9" - integrity sha512-kc6S2YS/2yXbtkSMunBtKdah4VFETZ8Oh6ONSmSd9bRxhqTrtARUCBUiWXH3xVPpvR7tz2CSnkuXVE42EcGnMw== - dependencies: - tslib "^2.0.3" - -swarm-js@^0.1.40: - version "0.1.42" - resolved "https://registry.yarnpkg.com/swarm-js/-/swarm-js-0.1.42.tgz#497995c62df6696f6e22372f457120e43e727979" - 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" - -symbol-observable@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" - integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== - -symbol-tree@^3.2.4: - version "3.2.4" - resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" - integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== - -sync-request@6.1.0: - version "6.1.0" - 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" - sync-rpc "^1.2.1" - then-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" - integrity sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw== - dependencies: - get-port "^3.1.0" - -tabbable@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-6.2.0.tgz#732fb62bc0175cfcec257330be187dcfba1f3b97" - integrity sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew== - -table@^6.8.0, table@^6.8.1: - version "6.8.1" - resolved "https://registry.yarnpkg.com/table/-/table-6.8.1.tgz#ea2b71359fe03b017a5fbc296204471158080bdf" - integrity sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA== - 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" - -tabtab@3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/tabtab/-/tabtab-3.0.2.tgz#a2cea0f1035f88d145d7da77eaabbd3fe03e1ec9" - integrity sha512-jANKmUe0sIQc/zTALTBy186PoM/k6aPrh3A7p6AaAfF6WPSbTx1JYeGIGH162btpH+mmVEXln+UxwViZHO2Jhg== - dependencies: - debug "^4.0.1" - es6-promisify "^6.0.0" - inquirer "^6.0.0" - minimist "^1.2.0" - mkdirp "^0.5.1" - untildify "^3.0.3" - -tailwindcss@^3.2.4: - version "3.3.5" - resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.3.5.tgz#22a59e2fbe0ecb6660809d9cc5f3976b077be3b8" - integrity sha512-5SEZU4J7pxZgSkv7FP1zY8i2TIAOooNZ1e/OGtxIEv6GltpoiXUqWvLy89+a10qYTB1N5Ifkuw9lqQkN9sscvA== - dependencies: - "@alloc/quick-lru" "^5.2.0" - arg "^5.0.2" - chokidar "^3.5.3" - didyoumean "^1.2.2" - dlv "^1.1.3" - fast-glob "^3.3.0" - glob-parent "^6.0.2" - is-glob "^4.0.3" - jiti "^1.19.1" - lilconfig "^2.1.0" - micromatch "^4.0.5" - normalize-path "^3.0.0" - object-hash "^3.0.0" - picocolors "^1.0.0" - postcss "^8.4.23" - postcss-import "^15.1.0" - postcss-js "^4.0.1" - postcss-load-config "^4.0.1" - postcss-nested "^6.0.1" - postcss-selector-parser "^6.0.11" - resolve "^1.22.2" - sucrase "^3.32.0" - -tape@^4.6.3: - version "4.17.0" - resolved "https://registry.yarnpkg.com/tape/-/tape-4.17.0.tgz#de89f3671ddc5dad178d04c28dc6b0183f42268e" - 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-fs@~1.16.3: - version "1.16.3" - resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-1.16.3.tgz#966a628841da2c4010406a82167cbd5e0c72d509" - integrity sha512-NvCeXpYx7OsmOh8zIOP/ebG55zZmxLE0etfWRbWok+q2Qo8x/vOR/IJT1taADXPe+jsiu9axDb3X4B+iIgNlKw== - dependencies: - chownr "^1.0.1" - mkdirp "^0.5.1" - pump "^1.0.0" - tar-stream "^1.1.2" - -tar-stream@^1.1.2: - version "1.6.2" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.2.tgz#8ea55dab37972253d9a9af90fdcd559ae435c555" - integrity sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A== - dependencies: - bl "^1.0.0" - buffer-alloc "^1.2.0" - end-of-stream "^1.0.0" - fs-constants "^1.0.0" - readable-stream "^2.3.0" - to-buffer "^1.1.1" - xtend "^4.0.0" - -tar-stream@^3.0.0, tar-stream@^3.1.4: - version "3.1.6" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-3.1.6.tgz#6520607b55a06f4a2e2e04db360ba7d338cc5bab" - integrity sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg== - dependencies: - b4a "^1.6.4" - fast-fifo "^1.2.0" - streamx "^2.15.0" - -tar@^4.0.2: - version "4.4.19" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.19.tgz#2e4d7263df26f2b914dee10c825ab132123742f3" - 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" - -tar@^6.1.0, tar@^6.1.11: - version "6.2.0" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.0.tgz#b14ce49a79cb1cd23bc9b016302dea5474493f73" - integrity sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ== - dependencies: - chownr "^2.0.0" - fs-minipass "^2.0.0" - minipass "^5.0.0" - minizlib "^2.1.1" - mkdirp "^1.0.3" - yallist "^4.0.0" - -temp-dir@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-2.0.0.tgz#bde92b05bdfeb1516e804c9c00ad45177f31321e" - integrity sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg== - -tempy@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/tempy/-/tempy-3.0.0.tgz#a6c0a15f5534a820e92c3e1369f1c1e87ebd6b68" - integrity sha512-B2I9X7+o2wOaW4r/CWMkpOO9mdiTRCxXNgob6iGvPmfPWgH/KyUD6Uy5crtWBxIBe3YrNZKR2lSzv1JJKWD4vA== - dependencies: - is-stream "^3.0.0" - temp-dir "^2.0.0" - type-fest "^2.12.2" - unique-string "^3.0.0" - -terminal-link@3.0.0, terminal-link@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-3.0.0.tgz#91c82a66b52fc1684123297ce384429faf72ac5c" - integrity sha512-flFL3m4wuixmf6IfhFJd1YPiLiMuxEc8uHRM1buzIeZPm22Au2pDqBJQgdo7n1WfPU1ONFGv7YDwpFBmHGF6lg== - dependencies: - ansi-escapes "^5.0.0" - supports-hyperlinks "^2.2.0" - -test-value@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/test-value/-/test-value-2.1.0.tgz#11da6ff670f3471a73b625ca4f3fdcf7bb748291" - integrity sha512-+1epbAxtKeXttkGFMTX9H42oqzOTufR1ceCF+GYA5aOmvaPq9wd4PUS8329fn2RRLGNeUkgRLnVpycjx8DsO2w== - dependencies: - array-back "^1.0.3" - typical "^2.6.0" - -testrpc@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/testrpc/-/testrpc-0.0.1.tgz#83e2195b1f5873aec7be1af8cbe6dcf39edb7aed" - integrity sha512-afH1hO+SQ/VPlmaLUFj2636QMeDvPCeQMc/9RBMW0IfjNe9gFD9Ra3ShqYkB7py0do1ZcCna/9acHyzTJ+GcNA== - -text-hex@1.0.x: - version "1.0.0" - resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5" - integrity sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg== - -text-table@^0.2.0: - version "0.2.0" - 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.yarnpkg.com/then-request/-/then-request-6.0.2.tgz#ec18dd8b5ca43aaee5cb92f7e4c1630e950d4f0c" - integrity sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA== - 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" - -thenify-all@^1.0.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" - integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA== - dependencies: - thenify ">= 3.1.0 < 4" - -"thenify@>= 3.1.0 < 4": - version "3.3.1" - resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f" - integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== - dependencies: - any-promise "^1.0.0" - -thread-stream@^0.15.1: - version "0.15.2" - resolved "https://registry.yarnpkg.com/thread-stream/-/thread-stream-0.15.2.tgz#fb95ad87d2f1e28f07116eb23d85aba3bc0425f4" - integrity sha512-UkEhKIg2pD+fjkHQKyJO3yoIvAP3N6RlNFt2dUhcS1FGvCD1cQa1M/PGknCLFIyZdtJOWQjejp7bdNqmN7zwdA== - dependencies: - real-require "^0.1.0" - -thread-stream@^2.0.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/thread-stream/-/thread-stream-2.4.1.tgz#6d588b14f0546e59d3f306614f044bc01ce43351" - integrity sha512-d/Ex2iWd1whipbT681JmTINKw0ZwOUBZm7+Gjs64DHuX34mmw8vJL2bFAaNacaW72zYiTJxSHi5abUuOi5nsfg== - dependencies: - real-require "^0.2.0" - -thriftrw@^3.5.0: - version "3.11.4" - resolved "https://registry.yarnpkg.com/thriftrw/-/thriftrw-3.11.4.tgz#84c990ee89e926631c0b475909ada44ee9249870" - integrity sha512-UcuBd3eanB3T10nXWRRMwfwoaC6VMk7qe3/5YIWP2Jtw+EbHqJ0p1/K3x8ixiR5dozKSSfcg1W+0e33G1Di3XA== - dependencies: - bufrw "^1.2.1" - error "7.0.2" - long "^2.4.0" - -through2-filter@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/through2-filter/-/through2-filter-3.0.0.tgz#700e786df2367c2c88cd8aa5be4cf9c1e7831254" - integrity sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA== - dependencies: - through2 "~2.0.0" - xtend "~4.0.0" - -through2-map@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/through2-map/-/through2-map-3.0.0.tgz#a6c3026ce63b4898a997d540506b66ffd970f271" - integrity sha512-Ms68QPbSJKjRYY7fmqZHB0VGt+vD0/tjmDHUWgxltjifCof6hZWWeQAEi27Wjbs7jyNlIIyerQw/TVj7gHkd/Q== - dependencies: - through2 "~2.0.0" - xtend "^4.0.0" - -through2@^2.0.0, through2@^2.0.3, through2@~2.0.0: - version "2.0.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" - integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - -"through@>=2.2.7 <3", through@^2.3.6, through@^2.3.8: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== - -time-zone@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/time-zone/-/time-zone-1.0.0.tgz#99c5bf55958966af6d06d83bdf3800dc82faec5d" - integrity sha512-TIsDdtKo6+XrPtiTm1ssmMngN1sAhyKnTO2kunQWqNPWIVvCm15Wmw4SWInwTVgJ5u/Tr04+8Ei9TNcw4x4ONA== - -timed-out@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" - integrity sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA== - -timeout-abort-controller@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/timeout-abort-controller/-/timeout-abort-controller-2.0.0.tgz#d6a59209132e520413092dd4b4d71eaaf5887feb" - integrity sha512-2FAPXfzTPYEgw27bQGTHc0SzrbmnU2eso4qo172zMLZzaGqeu09PFa5B2FCUHM1tflgRqPgn5KQgp6+Vex4uNA== - dependencies: - abort-controller "^3.0.0" - native-abort-controller "^1.0.4" - retimer "^3.0.0" - -timers-browserify@^2.0.4: - version "2.0.12" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" - integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== - dependencies: - setimmediate "^1.0.4" - -tiny-lru@^11.0.1: - version "11.2.5" - resolved "https://registry.yarnpkg.com/tiny-lru/-/tiny-lru-11.2.5.tgz#b138b99022aa26c567fa51a8dbf9e3e2959b2b30" - integrity sha512-JpqM0K33lG6iQGKiigcwuURAKZlq6rHXfrgeL4/I8/REoyJTGU+tEMszvT/oTRVHG2OiylhGDjqPp1jWMlr3bw== - -tinybench@^2.3.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-2.5.1.tgz#3408f6552125e53a5a48adee31261686fd71587e" - integrity sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg== - -tinypool@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-0.3.1.tgz#a99c2e446aba9be05d3e1cb756d6aed7af4723b6" - integrity sha512-zLA1ZXlstbU2rlpA4CIeVaqvWq41MTWqLY3FfsAXgC8+f7Pk7zroaJQxDgxn1xNudKW6Kmj4808rPFShUlIRmQ== - -tinyspy@^1.0.2: - version "1.1.1" - resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-1.1.1.tgz#0cb91d5157892af38cb2d217f5c7e8507a5bf092" - integrity sha512-UVq5AXt/gQlti7oxoIg5oi/9r0WpF7DGEVwXgqWSMmyN16+e3tl5lIvTaOpJ3TAtu5xFzWccFRM4R5NaWHF+4g== - -title-case@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/title-case/-/title-case-3.0.3.tgz#bc689b46f02e411f1d1e1d081f7c3deca0489982" - integrity sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA== - dependencies: - tslib "^2.0.3" - -tmp-promise@3.0.3, tmp-promise@^3.0.2, tmp-promise@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-3.0.3.tgz#60a1a1cc98c988674fcbfd23b6e3367bdeac4ce7" - integrity sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ== - dependencies: - tmp "^0.2.0" - -tmp-promise@^2.0.2: - version "2.1.1" - resolved "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-2.1.1.tgz#eb97c038995af74efbfe8156f5e07fdd0c935539" - integrity sha512-Z048AOz/w9b6lCbJUpevIJpRpUztENl8zdv1bmAKVHimfqRFl92ROkmT9rp7TVBnrEw2gtMTol/2Cp2S2kJa4Q== - dependencies: - tmp "0.1.0" - -tmp@0.0.33, tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" - integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== - dependencies: - os-tmpdir "~1.0.2" - -tmp@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.1.0.tgz#ee434a4e22543082e294ba6201dcc6eafefa2877" - integrity sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw== - dependencies: - rimraf "^2.6.3" - -tmp@^0.2.0, tmp@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" - integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== - dependencies: - rimraf "^3.0.0" - -to-buffer@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80" - integrity sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg== - -to-fast-properties@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" - integrity sha512-lxrWP8ejsq+7E3nNjwYmUBMAgjMTZoTI+sdBOpvNyijeDLa29LUn9QaoXAHv4+Z578hbmHHJKZknzxVtvo77og== - -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" - integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== - -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - integrity sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg== - dependencies: - kind-of "^3.0.2" - -to-readable-stream@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-3.0.0.tgz#7c4aa6e3e2413c86c6276a57780dadfba226762f" - integrity sha512-vD2LytT6DxPynBa1xbMtswY9gGqj27wNbh2uvI5OhBe+mrGLurRWRQZyQn3812sqlQRtUJwaKVshG+PoGwbPDQ== - -to-readable-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" - integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - integrity sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg== - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - -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" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - -toidentifier@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" - integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== - -token-types@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/token-types/-/token-types-5.0.1.tgz#aa9d9e6b23c420a675e55413b180635b86a093b4" - integrity sha512-Y2fmSnZjQdDb9W4w4r1tswlMHylzWIeOKpx0aZH9BgGtACHhrk3OkT52AzwcuqTRBZtvvnTjDBh8eynMulu8Vg== - dependencies: - "@tokenizer/token" "^0.3.0" - ieee754 "^1.2.1" - -toml@3.0.0, toml@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/toml/-/toml-3.0.0.tgz#342160f1af1904ec9d204d03a5d61222d762c5ee" - integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w== - -tomlify-j0.4@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/tomlify-j0.4/-/tomlify-j0.4-3.0.0.tgz#99414d45268c3a3b8bf38be82145b7bba34b7473" - integrity sha512-2Ulkc8T7mXJ2l0W476YC/A209PR38Nw8PuaCNtk9uI3t1zzFdGQeWYGQvmj2PZkVvRC/Yoi4xQKMRnWc/N29tQ== - -tough-cookie@^4.1.2: - version "4.1.3" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.3.tgz#97b9adb0728b42280aa3d814b6b999b2ff0318bf" - integrity sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw== - dependencies: - psl "^1.1.33" - punycode "^2.1.1" - universalify "^0.2.0" - url-parse "^1.5.3" - -tough-cookie@~2.5.0: - version "2.5.0" - 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" - punycode "^2.1.1" - -tr46@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-3.0.0.tgz#555c4e297a950617e8eeddef633c87d4d9d6cbf9" - integrity sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA== - dependencies: - punycode "^2.1.1" - -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== - -trim-newlines@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" - integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== - -trim-repeated@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/trim-repeated/-/trim-repeated-2.0.0.tgz#5d60556d6d40d9461b7c7e06c3ac20b6b1d50090" - integrity sha512-QUHBFTJGdOwmp0tbOG505xAgOp/YliZP/6UgafFXYZ26WT1bvQmSMJUvkeVSASuJJHbqsFbynTvkd5W8RBTipg== - dependencies: - escape-string-regexp "^5.0.0" - -trim-right@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" - integrity sha512-WZGXGstmCWgeevgTL54hrCuw1dyMQIzWy7ZfqRJfSmJZBwklI15egmQytFP6bPidmw3M8d5yEowl1niq4vmqZw== - -triple-beam@^1.3.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.4.1.tgz#6fde70271dc6e5d73ca0c3b24e2d92afb7441984" - integrity sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg== - -tryer@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" - integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA== - -ts-essentials@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/ts-essentials/-/ts-essentials-1.0.4.tgz#ce3b5dade5f5d97cf69889c11bf7d2da8555b15a" - integrity sha512-q3N1xS4vZpRouhYHDPwO0bDW3EZ6SK9CrrDHxi/D6BPReSjpVgWIOpLS2o0gSBZm+7q/wyKp6RVM1AeeW7uyfQ== - -ts-essentials@^6.0.3: - version "6.0.7" - resolved "https://registry.yarnpkg.com/ts-essentials/-/ts-essentials-6.0.7.tgz#5f4880911b7581a873783740ce8b94da163d18a6" - integrity sha512-2E4HIIj4tQJlIHuATRHayv0EfMGK3ris/GRk1E3CFnsZzeNV+hUmelbaTZHLtXaZppM5oLhHRtO04gINC4Jusw== - -ts-generator@^0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/ts-generator/-/ts-generator-0.0.8.tgz#7bd48ca064db026d9520bcb682b69efc20971d6a" - integrity sha512-Gi+aZCELpVL7Mqb+GuMgM+n8JZ/arZZib1iD/R9Ok8JDjOCOCrqS9b1lr72ku7J45WeDCFZxyJoRsiQvhokCnw== - dependencies: - "@types/mkdirp" "^0.5.2" - "@types/prettier" "^1.13.2" - "@types/resolve" "^0.0.8" - chalk "^2.4.1" - glob "^7.1.2" - mkdirp "^0.5.1" - prettier "^1.14.2" - resolve "^1.8.1" - ts-essentials "^1.0.0" - -ts-generator@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/ts-generator/-/ts-generator-0.1.1.tgz#af46f2fb88a6db1f9785977e9590e7bcd79220ab" - integrity sha512-N+ahhZxTLYu1HNTQetwWcx3so8hcYbkKBHTr4b4/YgObFTIKkOSSsaa+nal12w8mfrJAyzJfETXawbNjSfP2gQ== - dependencies: - "@types/mkdirp" "^0.5.2" - "@types/prettier" "^2.1.1" - "@types/resolve" "^0.0.8" - chalk "^2.4.1" - glob "^7.1.2" - mkdirp "^0.5.1" - prettier "^2.1.2" - resolve "^1.8.1" - ts-essentials "^1.0.0" - -ts-interface-checker@^0.1.9: - version "0.1.13" - resolved "https://registry.yarnpkg.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699" - integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== - -ts-log@^2.2.3: - version "2.2.5" - resolved "https://registry.yarnpkg.com/ts-log/-/ts-log-2.2.5.tgz#aef3252f1143d11047e2cb6f7cfaac7408d96623" - integrity sha512-PGcnJoTBnVGy6yYNFxWVNkdcAuAMstvutN9MgDJIV6L0oG8fB+ZNNy1T+wJzah8RPGor1mZuPQkVfXNDpy9eHA== - -ts-node@^10.9.1: - version "10.9.1" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" - integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== - 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" - -tslib@1.14.1, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: - version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - -tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.5.0, tslib@^2.6.1, 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== - -tslib@~2.4.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e" - integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA== - -tslib@~2.5.0: - version "2.5.3" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.3.tgz#24944ba2d990940e6e982c4bea147aba80209913" - integrity sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w== - -tsort@0.0.1: - version "0.0.1" - 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.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" - integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== - dependencies: - tslib "^1.8.1" - -tty-browserify@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.1.tgz#3f05251ee17904dfd0677546670db9651682b811" - integrity sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw== - -tunnel-agent@^0.6.0: - version "0.6.0" - 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.0, tweetnacl-util@^0.15.1: - version "0.15.1" - 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.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== - -tweetnacl@^1.0.0, tweetnacl@^1.0.3: - version "1.0.3" - 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: - version "0.4.0" - 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.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== - dependencies: - prelude-ls "~1.1.2" - -type-detect@^4.0.0, type-detect@^4.0.8: - version "4.0.8" - 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.18.0: - version "0.18.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f" - integrity sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw== - -type-fest@^0.20.2: - version "0.20.2" - 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.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" - integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== - -type-fest@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" - integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== - -type-fest@^0.7.1: - version "0.7.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.7.1.tgz#8dda65feaf03ed78f0a3f9678f1869147f7c5c48" - integrity sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg== - -type-fest@^0.8.0, type-fest@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" - integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== - -type-fest@^1.0.1, type-fest@^1.0.2: - version "1.4.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1" - integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== - -type-fest@^2.0.0, type-fest@^2.11.2, type-fest@^2.12.2, type-fest@^2.13.0, type-fest@^2.5.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b" - integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== - -type-fest@^3.0.0: - version "3.13.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-3.13.1.tgz#bb744c1f0678bea7543a2d1ec24e83e68e8c8706" - integrity sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g== - -type-is@~1.6.18: - version "1.6.18" - 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" - mime-types "~2.1.24" - -type@^1.0.1: - version "1.2.0" - 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.yarnpkg.com/type/-/type-2.7.2.tgz#2376a15a3a28b1efa0f5350dcf72d24df6ef98d0" - integrity sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw== - -typechain@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/typechain/-/typechain-3.0.0.tgz#d5a47700831f238e43f7429b987b4bb54849b92e" - integrity sha512-ft4KVmiN3zH4JUFu2WJBrwfHeDf772Tt2d8bssDTo/YcckKW2D+OwFrHXRC6hJvO3mHjFQTihoMV6fJOi0Hngg== - dependencies: - command-line-args "^4.0.7" - debug "^4.1.1" - fs-extra "^7.0.0" - js-sha3 "^0.8.0" - lodash "^4.17.15" - ts-essentials "^6.0.3" - ts-generator "^0.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" - integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" - is-typed-array "^1.1.10" - -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" - 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" - -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" - 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" - -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" - integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== - dependencies: - call-bind "^1.0.2" - for-each "^0.3.3" - is-typed-array "^1.1.9" - -typedarray-to-buffer@^3.1.5, 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" - 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" - integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== - -typescript@^4.2.3, typescript@^4.9.3: - version "4.9.5" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" - integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== - -typescript@^5.0.0, typescript@^5.0.4: - version "5.3.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.3.2.tgz#00d1c7c1c46928c5845c1ee8d0cc2791031d4c43" - integrity sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ== - -typewise-core@^1.2, typewise-core@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/typewise-core/-/typewise-core-1.2.0.tgz#97eb91805c7f55d2f941748fa50d315d991ef195" - integrity sha512-2SCC/WLzj2SbUwzFOzqMCkz5amXLlxtJqDKTICqg30x+2DZxcfZN2MvQZmGfXWKNWaKK9pBPsvkcwv8bF/gxKg== - -typewise@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/typewise/-/typewise-1.0.3.tgz#1067936540af97937cc5dcf9922486e9fa284651" - integrity sha512-aXofE06xGhaQSPzt8hlTY+/YWQhm9P0jYUp1f2XtmW/3Bk0qzXcyFWAtPoo2uTGQj1ZwbDuSyuxicq+aDo8lCQ== - dependencies: - typewise-core "^1.2.0" - -typewiselite@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/typewiselite/-/typewiselite-1.0.0.tgz#c8882fa1bb1092c06005a97f34ef5c8508e3664e" - integrity sha512-J9alhjVHupW3Wfz6qFRGgQw0N3gr8hOkw6zm7FZ6UR1Cse/oD9/JVok7DNE9TT9IbciDHX2Ex9+ksE6cRmtymw== - -typical@^2.6.0, typical@^2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/typical/-/typical-2.6.1.tgz#5c080e5d661cbbe38259d2e70a3c7253e873881d" - integrity sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg== - -typical@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/typical/-/typical-6.0.1.tgz#89bd1a6aa5e5e96fa907fb6b7579223bff558a06" - integrity sha512-+g3NEp7fJLe9DPa1TArHm9QAA7YciZmWnfAqEaFrBihQ7epOv9i99rjtgb6Iz0wh3WuQDjsCTDfgRoGnmHN81A== - -ua-parser-js@^1.0.35: - version "1.0.37" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.37.tgz#b5dc7b163a5c1f0c510b08446aed4da92c46373f" - integrity sha512-bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ== - -uc.micro@^1.0.1, uc.micro@^1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" - integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== - -ufo@^1.3.0, ufo@^1.3.1, ufo@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.3.2.tgz#c7d719d0628a1c80c006d2240e0d169f6e3c0496" - integrity sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA== - -uid-safe@2.1.5: - version "2.1.5" - resolved "https://registry.yarnpkg.com/uid-safe/-/uid-safe-2.1.5.tgz#2b3d5c7240e8fc2e58f8aa269e5ee49c0857bd3a" - integrity sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA== - dependencies: - random-bytes "~1.0.0" - -uint8arrays@^3.0.0, uint8arrays@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-3.1.1.tgz#2d8762acce159ccd9936057572dade9459f65ae0" - integrity sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg== - dependencies: - multiformats "^9.4.2" - -ulid@2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/ulid/-/ulid-2.3.0.tgz#93063522771a9774121a84d126ecd3eb9804071f" - integrity sha512-keqHubrlpvT6G2wH0OEfSW4mquYRcbe/J8NMmveoQOjUqmo+hXtO+ORCpWhdbZ7k72UtY61BL7haGxW6enBnjw== - -ultron@~1.1.0: - version "1.1.1" - 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.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" - 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" - -unbzip2-stream@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz#b0da04c4371311df771cdc215e87f2130991ace7" - integrity sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg== - dependencies: - buffer "^5.2.1" - through "^2.3.8" - -unc-path-regex@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" - integrity sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg== - -uncrypto@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/uncrypto/-/uncrypto-0.1.3.tgz#e1288d609226f2d02d8d69ee861fa20d8348ef2b" - integrity sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q== - -underscore@1.12.1: - version "1.12.1" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.12.1.tgz#7bb8cc9b3d397e201cf8553336d262544ead829e" - integrity sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw== - -underscore@1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.9.1.tgz#06dce34a0e68a7babc29b365b8e74b8925203961" - integrity sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg== - -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.28.0" - resolved "https://registry.yarnpkg.com/undici/-/undici-5.28.0.tgz#09f6aa4a6f34de8996eec585fe4ceebaa9ef3f36" - integrity sha512-gM12DkXhlAc5+/TPe60iy9P6ETgVfqTuRJ6aQ4w8RYu0MqKuXhaq3/b86GfzDQnNA3NUO6aUNdvevrKH59D0Nw== - dependencies: - "@fastify/busboy" "^2.0.0" - -unenv@^1.7.4: - version "1.8.0" - resolved "https://registry.yarnpkg.com/unenv/-/unenv-1.8.0.tgz#0f860d5278405700bd95d47b23bc01f3a735d68c" - integrity sha512-uIGbdCWZfhRRmyKj1UioCepQ0jpq638j/Cf0xFTn4zD1nGJ2lSdzYHLzfdXN791oo/0juUiSWW1fBklXMTsuqg== - dependencies: - consola "^3.2.3" - defu "^6.1.3" - mime "^3.0.0" - node-fetch-native "^1.4.1" - pathe "^1.1.1" - -unimport@^1.0.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/unimport/-/unimport-1.3.0.tgz#167ab78e60ea0e36a9a764c7b608ee95d7b2411c" - integrity sha512-fOkrdxglsHd428yegH0wPH/6IfaSdDeMXtdRGn6en/ccyzc2aaoxiUTMrJyc6Bu+xoa18RJRPMfLUHEzjz8atw== - dependencies: - "@rollup/pluginutils" "^5.0.2" - escape-string-regexp "^5.0.0" - fast-glob "^3.2.12" - local-pkg "^0.4.3" - magic-string "^0.27.0" - mlly "^1.1.0" - pathe "^1.0.0" - pkg-types "^1.0.1" - scule "^1.0.0" - strip-literal "^1.0.0" - unplugin "^1.0.1" - -union-value@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" - integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^2.0.1" - -unique-string@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-3.0.0.tgz#84a1c377aff5fd7a8bc6b55d8244b2bd90d75b9a" - integrity sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ== - dependencies: - crypto-random-string "^4.0.0" - -universal-user-agent@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.1.tgz#15f20f55da3c930c57bddbf1734c6654d5fd35aa" - integrity sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ== - -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -universalify@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0" - integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== - -universalify@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" - integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== - -unix-dgram@2.x: - version "2.0.6" - resolved "https://registry.yarnpkg.com/unix-dgram/-/unix-dgram-2.0.6.tgz#6d567b0eb6d7a9504e561532b598a46e34c5968b" - integrity sha512-AURroAsb73BZ6CdAyMrTk/hYKNj3DuYYEuOaB8bYMOHGKupRNScw90Q5C71tWJc3uE7dIeXRyuwN0xLLq3vDTg== - dependencies: - bindings "^1.5.0" - nan "^2.16.0" - -unixify@1.0.0, unixify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unixify/-/unixify-1.0.0.tgz#3a641c8c2ffbce4da683a5c70f03a462940c2090" - integrity sha512-6bc58dPYhCMHHuwxldQxO3RRNZ4eCogZ/st++0+fcC1nr0jiGUtAdBJ2qzmLQWSxbtz42pWt4QQMiZ9HvZf5cg== - dependencies: - normalize-path "^2.1.1" - -unorm@^1.3.3: - version "1.6.0" - resolved "https://registry.yarnpkg.com/unorm/-/unorm-1.6.0.tgz#029b289661fba714f1a9af439eb51d9b16c205af" - integrity sha512-b2/KCUlYZUeA7JFUuRJZPUtr4gZvBh7tavtv4fvk4+KV9pfGiR6CQAQAWl49ZpR3ts2dk4FYkP7EIgDJoiOLDA== - -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== - -unplugin-auto-import@^0.11.5: - version "0.11.5" - resolved "https://registry.yarnpkg.com/unplugin-auto-import/-/unplugin-auto-import-0.11.5.tgz#84c27e5f230bc1fc9004c162a39b81fcf89da740" - integrity sha512-nvbL2AQwLRR8wbHpJ6L1EBVNmjN045RSedTa4NtsGRkSQFXkI1iKHs4dTqJwcKZsnFrZOAKtLPiN1/oQTObLZw== - dependencies: - "@antfu/utils" "^0.7.0" - "@rollup/pluginutils" "^5.0.2" - local-pkg "^0.4.2" - magic-string "^0.26.7" - unimport "^1.0.1" - unplugin "^1.0.0" - -unplugin-vue-components@^0.22.11: - version "0.22.12" - resolved "https://registry.yarnpkg.com/unplugin-vue-components/-/unplugin-vue-components-0.22.12.tgz#39013f77be72d32df9d6ca1599e592a484015612" - integrity sha512-FxyzsuBvMCYPIk+8cgscGBQ345tvwVu+qY5IhE++eorkyvA4Z1TiD/HCiim+Kbqozl10i4K+z+NCa2WO2jexRA== - dependencies: - "@antfu/utils" "^0.7.2" - "@rollup/pluginutils" "^5.0.2" - chokidar "^3.5.3" - debug "^4.3.4" - fast-glob "^3.2.12" - local-pkg "^0.4.2" - magic-string "^0.27.0" - minimatch "^5.1.1" - resolve "^1.22.1" - unplugin "^1.0.1" - -unplugin@^1.0.0, unplugin@^1.0.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/unplugin/-/unplugin-1.5.1.tgz#806688376fa3dcca4d2fa2c5d27cf6cd0370fbef" - integrity sha512-0QkvG13z6RD+1L1FoibQqnvTwVBXvS4XSPwAyinVgoOCl2jAgwzdUKmEj05o4Lt8xwQI85Hb6mSyYkcAGwZPew== - dependencies: - acorn "^8.11.2" - chokidar "^3.5.3" - webpack-sources "^3.2.3" - webpack-virtual-modules "^0.6.0" - -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ== - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - -unstorage@^1.9.0: - version "1.10.1" - resolved "https://registry.yarnpkg.com/unstorage/-/unstorage-1.10.1.tgz#bf8cc00a406e40a6293e893da9807057d95875b0" - integrity sha512-rWQvLRfZNBpF+x8D3/gda5nUCQL2PgXy2jNG4U7/Rc9BGEv9+CAJd0YyGCROUBKs9v49Hg8huw3aih5Bf5TAVw== - dependencies: - anymatch "^3.1.3" - chokidar "^3.5.3" - destr "^2.0.2" - h3 "^1.8.2" - ioredis "^5.3.2" - listhen "^1.5.5" - lru-cache "^10.0.2" - mri "^1.2.0" - node-fetch-native "^1.4.1" - ofetch "^1.3.3" - ufo "^1.3.1" - -untildify@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/untildify/-/untildify-3.0.3.tgz#1e7b42b140bcfd922b22e70ca1265bfe3634c7c9" - integrity sha512-iSk/J8efr8uPT/Z4eSUywnqyrQU7DSdMfdqK4iWEaUVVmcP5JcnpRqmVMwcwcnmI1ATFNgC5V90u09tBynNFKA== - -untun@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/untun/-/untun-0.1.2.tgz#fa42a62ae24c1c5c6f3209692a2b0e1f573f1353" - integrity sha512-wLAMWvxfqyTiBODA1lg3IXHQtjggYLeTK7RnSfqtOXixWJ3bAa2kK/HHmOOg19upteqO3muLvN6O/icbyQY33Q== - dependencies: - citty "^0.1.3" - consola "^3.2.3" - pathe "^1.1.1" - -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" - integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== - dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" - -update-notifier@6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-6.0.2.tgz#a6990253dfe6d5a02bd04fbb6a61543f55026b60" - integrity sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og== - dependencies: - boxen "^7.0.0" - chalk "^5.0.1" - configstore "^6.0.0" - has-yarn "^3.0.0" - import-lazy "^4.0.0" - is-ci "^3.0.1" - is-installed-globally "^0.4.0" - is-npm "^6.0.0" - is-yarn-global "^0.4.0" - latest-version "^7.0.0" - pupa "^3.1.0" - semver "^7.3.7" - semver-diff "^4.0.0" - xdg-basedir "^5.1.0" - -upper-case-first@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/upper-case-first/-/upper-case-first-2.0.2.tgz#992c3273f882abd19d1e02894cc147117f844324" - integrity sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg== - dependencies: - tslib "^2.0.3" - -upper-case@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-2.0.2.tgz#d89810823faab1df1549b7d97a76f8662bae6f7a" - integrity sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg== - dependencies: - tslib "^2.0.3" - -uqr@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/uqr/-/uqr-0.1.2.tgz#5c6cd5dcff9581f9bb35b982cb89e2c483a41d7d" - integrity sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA== - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - integrity sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg== - -url-parse-lax@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" - integrity sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ== - dependencies: - prepend-http "^2.0.0" - -url-parse@^1.5.3: - version "1.5.10" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" - integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== - dependencies: - querystringify "^2.1.1" - requires-port "^1.0.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" - integrity sha512-3AChu4NiXquPfeckE5R5cGdiHCMWJx1dwCWOmWIL4KHAziJNOFIYJlpGFeKDvwLPHovZRCxK3cYlwzqI9Vp+Gg== - -url@^0.11.0: - version "0.11.3" - 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" - -urlpattern-polyfill@8.0.2, urlpattern-polyfill@^8.0.0: - version "8.0.2" - resolved "https://registry.yarnpkg.com/urlpattern-polyfill/-/urlpattern-polyfill-8.0.2.tgz#99f096e35eff8bf4b5a2aa7d58a1523d6ebc7ce5" - integrity sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ== - -use-sync-external-store@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz#7dbefd6ef3fe4e767a0cf5d7287aacfb5846928a" - integrity sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA== - -use@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" - integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== - -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.yarnpkg.com/utf8/-/utf8-3.0.0.tgz#f052eed1364d696e769ef058b183df88c87f69d1" - integrity sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ== - -util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - -util.promisify@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.1.2.tgz#02b3dbadbb80071eee4c43aed58747afdfc516db" - integrity sha512-PBdZ03m1kBnQ5cjjO0ZvJMJS+QsbyIcFwi4hY4U76OQsCO9JrOYjbCFgIF76ccFg9xnJo7ZHPkqyj1GqmdS7MA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - for-each "^0.3.3" - has-proto "^1.0.1" - has-symbols "^1.0.3" - object.getownpropertydescriptors "^2.1.6" - safe-array-concat "^1.0.0" - -util@^0.12.4, util@^0.12.5: - version "0.12.5" - 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" - is-arguments "^1.0.4" - is-generator-function "^1.0.7" - is-typed-array "^1.1.3" - which-typed-array "^1.1.2" - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== - -uuid@3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" - integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== - -uuid@9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.0.tgz#592f550650024a38ceb0c562f2f6aa435761efb5" - integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg== - -uuid@^3.2.2, uuid@^3.3.2: - version "3.4.0" - 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.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.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" - integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== - -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" - 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" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - -validate-npm-package-name@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-4.0.0.tgz#fe8f1c50ac20afdb86f177da85b3600f0ac0d747" - integrity sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q== - dependencies: - builtins "^5.0.0" - -valtio@1.11.2: - version "1.11.2" - resolved "https://registry.yarnpkg.com/valtio/-/valtio-1.11.2.tgz#b8049c02dfe65620635d23ebae9121a741bb6530" - integrity sha512-1XfIxnUXzyswPAPXo1P3Pdx2mq/pIqZICkWN60Hby0d9Iqb+MEIpqgYVlbflvHdrp2YR/q3jyKWRPJJ100yxaw== - dependencies: - proxy-compare "2.5.1" - use-sync-external-store "1.2.0" - -value-or-promise@^1.0.11, value-or-promise@^1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/value-or-promise/-/value-or-promise-1.0.12.tgz#0e5abfeec70148c78460a849f6b003ea7986f15c" - integrity sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q== - -varint@^5.0.0, varint@~5.0.0: - version "5.0.2" - resolved "https://registry.yarnpkg.com/varint/-/varint-5.0.2.tgz#5b47f8a947eb668b848e034dcfa87d0ff8a7f7a4" - integrity sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow== - -varint@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/varint/-/varint-6.0.0.tgz#9881eb0ce8feaea6512439d19ddf84bf551661d0" - integrity sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg== - -vary@^1, vary@~1.1.2: - version "1.1.2" - 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.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -vite-node@0.26.3: - version "0.26.3" - resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-0.26.3.tgz#164fbaf449d5bd382b44b736653ba800397b5ebd" - integrity sha512-Te2bq0Bfvq6XiO718I+1EinMjpNYKws6SNHKOmVbILAQimKoZKDd+IZLlkaYcBXPpK3HFe2U80k8Zw+m3w/a2w== - dependencies: - debug "^4.3.4" - mlly "^1.0.0" - pathe "^0.2.0" - source-map "^0.6.1" - source-map-support "^0.5.21" - vite "^3.0.0 || ^4.0.0" - -vite-plugin-node-polyfills@0.15.0: - version "0.15.0" - resolved "https://registry.yarnpkg.com/vite-plugin-node-polyfills/-/vite-plugin-node-polyfills-0.15.0.tgz#ea425595f4258e04fddd06b4e422fc8d391e6a17" - integrity sha512-IF9aTSPV9zebrcC6ezJA3Ym4r4U1C3jKUAnG16Sq7+UPtisNEOcNOAu3p5wcgFFOuuUwAUjQlIeJHMcnSXXemQ== - dependencies: - "@rollup/plugin-inject" "^5.0.3" - buffer-polyfill "npm:buffer@^6.0.3" - node-stdlib-browser "^1.2.0" - process "^0.11.10" - -vite@4.5.0, "vite@^3.0.0 || ^4.0.0": - version "4.5.0" - resolved "https://registry.yarnpkg.com/vite/-/vite-4.5.0.tgz#ec406295b4167ac3bc23e26f9c8ff559287cff26" - integrity sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw== - dependencies: - esbuild "^0.18.10" - postcss "^8.4.27" - rollup "^3.27.1" - optionalDependencies: - fsevents "~2.3.2" - -vitest@^0.26.2: - version "0.26.3" - resolved "https://registry.yarnpkg.com/vitest/-/vitest-0.26.3.tgz#0e3abb7674e8af7b74519b40c04efe6e43c0b0a7" - integrity sha512-FmHxU9aUCxTi23keF3vxb/Qp0lYXaaJ+jRLGOUmMS3qVTOJvgGE+f1VArupA6pEhaG2Ans4X+zV9dqM5WISMbg== - dependencies: - "@types/chai" "^4.3.4" - "@types/chai-subset" "^1.3.3" - "@types/node" "*" - acorn "^8.8.1" - acorn-walk "^8.2.0" - chai "^4.3.7" - debug "^4.3.4" - local-pkg "^0.4.2" - source-map "^0.6.1" - strip-literal "^1.0.0" - tinybench "^2.3.1" - tinypool "^0.3.0" - tinyspy "^1.0.2" - vite "^3.0.0 || ^4.0.0" - vite-node "0.26.3" - -vm-browserify@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" - integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== - -vue-demi@*, vue-demi@>=0.14.5, vue-demi@>=0.14.6: - version "0.14.6" - resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.14.6.tgz#dc706582851dc1cdc17a0054f4fec2eb6df74c92" - integrity sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w== - -vue-demi@^0.13.11: - version "0.13.11" - resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.13.11.tgz#7d90369bdae8974d87b1973564ad390182410d99" - integrity sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A== - -vue-eslint-parser@^9.1.1, vue-eslint-parser@^9.3.1: - version "9.3.2" - resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-9.3.2.tgz#6f9638e55703f1c77875a19026347548d93fd499" - integrity sha512-q7tWyCVaV9f8iQyIA5Mkj/S6AoJ9KBN8IeUSf3XEmBrOtxOZnfTg5s4KClbZBCK3GtnT/+RyCLZyDHuZwTuBjg== - dependencies: - debug "^4.3.4" - eslint-scope "^7.1.1" - eslint-visitor-keys "^3.3.0" - espree "^9.3.1" - esquery "^1.4.0" - lodash "^4.17.21" - semver "^7.3.6" - -vue-final-modal@^4.3.0: - version "4.4.6" - resolved "https://registry.yarnpkg.com/vue-final-modal/-/vue-final-modal-4.4.6.tgz#d4783f9bdb0be6af7abf47a68298da46150ec115" - integrity sha512-YIYEQ4HhwPOBRTuV143QjgprAl2tY8598NdsfUX2H5Z212Lr5hoZnzEfct+Nclx+c4++NZOATXj2ddFJI4ahjw== - dependencies: - "@vueuse/core" "^10.5.0" - "@vueuse/integrations" "^10.5.0" - focus-trap "^7.5.4" - -vue-i18n-extract@^2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/vue-i18n-extract/-/vue-i18n-extract-2.0.7.tgz#95798037c2ae57f4ec5fd9d2267d2559bc94e5e8" - integrity sha512-i1NW5R58S720iQ1BEk+6ILo3hT6UA8mtYNNolSH4rt9345qvXdvA6GHy2+jHozdDAKHwlu9VvS/+vIMKs1UYQw== - dependencies: - cac "^6.7.12" - dot-object "^2.1.4" - glob "^8.0.1" - is-valid-glob "^1.0.0" - js-yaml "^4.1.0" - -vue-i18n@9: - version "9.7.1" - resolved "https://registry.yarnpkg.com/vue-i18n/-/vue-i18n-9.7.1.tgz#41393b066f6ff69d9be2ba31a59b043263c77289" - integrity sha512-A6DzWqJQMdzBj+392+g3zIgGV0FnFC7o/V+txs5yIALANEZzY6ZV8hM2wvZR3nTbQI7dntAmzBHMeoEteJO0kQ== - dependencies: - "@intlify/core-base" "9.7.1" - "@intlify/shared" "9.7.1" - "@vue/devtools-api" "^6.5.0" - -vue-meta@3.0.0-alpha.8: - version "3.0.0-alpha.8" - resolved "https://registry.yarnpkg.com/vue-meta/-/vue-meta-3.0.0-alpha.8.tgz#8b311b6b1726c1c66cd8ce83c3e234adeb22891b" - integrity sha512-jhlgRy/sGDpor8pkIhwWCGw5AMR7RtDM6xYqateAKBSy2/enelyrZFivOmo29PLs+zAS9Y57vYoZYB919Tnbug== - -vue-resize@^2.0.0-alpha.1: - version "2.0.0-alpha.1" - resolved "https://registry.yarnpkg.com/vue-resize/-/vue-resize-2.0.0-alpha.1.tgz#43eeb79e74febe932b9b20c5c57e0ebc14e2df3a" - integrity sha512-7+iqOueLU7uc9NrMfrzbG8hwMqchfVfSzpVlCMeJQe4pyibqyoifDNbKTZvwxZKDvGkB+PdFeKvnGZMoEb8esg== - -vue-router@4: - version "4.2.5" - resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-4.2.5.tgz#b9e3e08f1bd9ea363fdd173032620bc50cf0e98a" - integrity sha512-DIUpKcyg4+PTQKfFPX88UWhlagBEBEfJ5A8XDXRJLUnZOvcpMF8o/dnL90vpVkGaPbjvXazV/rC1qBKrZlFugw== - dependencies: - "@vue/devtools-api" "^6.5.0" - -vue-template-compiler@^2.7.14: - version "2.7.15" - resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.7.15.tgz#ec88ba8ceafe0f17a528b89c57e01e02da92b0de" - integrity sha512-yQxjxMptBL7UAog00O8sANud99C6wJF+7kgbcwqkvA38vCGF7HWE66w0ZFnS/kX5gSoJr/PQ4/oS3Ne2pW37Og== - dependencies: - de-indent "^1.0.2" - he "^1.2.0" - -vue-tsc@^1.0.13: - version "1.8.22" - resolved "https://registry.yarnpkg.com/vue-tsc/-/vue-tsc-1.8.22.tgz#421e73c38b50802a6716ca32ed87b5970c867323" - integrity sha512-j9P4kHtW6eEE08aS5McFZE/ivmipXy0JzrnTgbomfABMaVKx37kNBw//irL3+LlE3kOo63XpnRigyPC3w7+z+A== - dependencies: - "@volar/typescript" "~1.10.5" - "@vue/language-core" "1.8.22" - semver "^7.5.4" - -vue@^3.2.45: - version "3.3.8" - resolved "https://registry.yarnpkg.com/vue/-/vue-3.3.8.tgz#532ff071af24f6a69e5ecc53a66858a9ee874ffc" - integrity sha512-5VSX/3DabBikOXMsxzlW8JyfeLKlG9mzqnWgLQLty88vdZL7ZJgrdgBOmrArwxiLtmS+lNNpPcBYqrhE6TQW5w== - dependencies: - "@vue/compiler-dom" "3.3.8" - "@vue/compiler-sfc" "3.3.8" - "@vue/runtime-dom" "3.3.8" - "@vue/server-renderer" "3.3.8" - "@vue/shared" "3.3.8" - -w3c-xmlserializer@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz#aebdc84920d806222936e3cdce408e32488a3073" - integrity sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw== - dependencies: - xml-name-validator "^4.0.0" - -wait-port@1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/wait-port/-/wait-port-1.0.4.tgz#6f9474645ddbf7701ac100ab6762438edf6e5689" - integrity sha512-w8Ftna3h6XSFWWc2JC5gZEgp64nz8bnaTp5cvzbJSZ53j+omktWTDdwXxEF0jM8YveviLgFWvNGrSvRHnkyHyw== - dependencies: - chalk "^4.1.2" - commander "^9.3.0" - debug "^4.3.4" - -wasmbuilder@0.0.10: - version "0.0.10" - resolved "https://registry.yarnpkg.com/wasmbuilder/-/wasmbuilder-0.0.10.tgz#b8298b2095ef9979d32f3881d1feef1705ec868a" - integrity sha512-zQSvZ7d74d9OvN+mCN6ucNne4QS5/cBBYTHldX0Oe+u9gStY21orapvuX1ajisA7RVIpuFhYg+ZgdySsPfeh0A== - dependencies: - big-integer "^1.6.48" - -wasmbuilder@0.0.16: - version "0.0.16" - resolved "https://registry.yarnpkg.com/wasmbuilder/-/wasmbuilder-0.0.16.tgz#f34c1f2c047d2f6e1065cbfec5603988f16d8549" - integrity sha512-Qx3lEFqaVvp1cEYW7Bfi+ebRJrOiwz2Ieu7ZG2l7YyeSJIok/reEQCQCuicj/Y32ITIJuGIM9xZQppGx5LrQdA== - -wasmcurves@0.0.12: - version "0.0.12" - resolved "https://registry.yarnpkg.com/wasmcurves/-/wasmcurves-0.0.12.tgz#1496e2219ac07f9a420f527803ae13b1d7a89246" - integrity sha512-1Jl9mkatyHSNj80ILjf85SZUNuZQBCkTjJlhzqHnZQXUmIimCIWkugaVaYNjozLs1Gun4h/keZe1MBeBN0sRpg== - dependencies: - big-integer "^1.6.42" - blakejs "^1.1.0" - -wasmcurves@0.0.14: - version "0.0.14" - resolved "https://registry.yarnpkg.com/wasmcurves/-/wasmcurves-0.0.14.tgz#cbe0f19650d9554937154afdbed66b305bd2a348" - integrity sha512-G1iMkxlRaQSdqQ1JrwHcU+awLmwyH6kFKfT8g9obd8MWe+u5oSdFXrODB0zmSI5aGGvJPG+4cAmqCGYv9R+7qg== - dependencies: - big-integer "^1.6.42" - blakejs "^1.1.0" - -wasmcurves@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/wasmcurves/-/wasmcurves-0.2.0.tgz#ccfc5a7d3778b6e0768b82a9336c80054f9bc0cf" - integrity sha512-3e2rbxdujOwaod657gxgmdhZNn+i1qKdHO3Y/bK+8E7bV8ttV/fu5FO4/WLBACF375cK0QDLOP+65Na63qYuWA== - dependencies: - wasmbuilder "0.0.16" - -wasmcurves@0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/wasmcurves/-/wasmcurves-0.2.2.tgz#ca444f6a6f6e2a5cbe6629d98ff478a62b4ccb2b" - integrity sha512-JRY908NkmKjFl4ytnTu5ED6AwPD+8VJ9oc94kdq7h5bIwbj0L4TDJ69mG+2aLs2SoCmGfqIesMWTEJjtYsoQXQ== - dependencies: - wasmbuilder "0.0.16" - -wcwidth@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" - integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== - dependencies: - defaults "^1.0.3" - -web-streams-polyfill@^3.0.3, web-streams-polyfill@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz#71c2718c52b45fd49dbeee88634b3a60ceab42a6" - integrity sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q== - -web-worker@^1.0.0, web-worker@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/web-worker/-/web-worker-1.2.0.tgz#5d85a04a7fbc1e7db58f66595d7a3ac7c9c180da" - integrity sha512-PgF341avzqyx60neE9DD+XS26MMNMoUQRz9NOZwW32nPQrF6p77f1htcnjBSEV8BGMKZ16choqUG4hyI0Hx7mA== - -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" - swarm-js "^0.1.40" - -web3-bzz@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.2.11.tgz#41bc19a77444bd5365744596d778b811880f707f" - integrity sha512-XGpWUEElGypBjeFyUhTkiPXFbDVD6Nr/S5jznE3t8cWUA0FxRf1n3n/NuIZeb0H9RkN2Ctd/jNma/k8XGa3YKg== - dependencies: - "@types/node" "^12.12.6" - got "9.6.0" - swarm-js "^0.1.40" - underscore "1.9.1" - -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.3" - web3-utils "1.10.3" - -web3-core-helpers@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.2.11.tgz#84c681ed0b942c0203f3b324a245a127e8c67a99" - integrity sha512-PEPoAoZd5ME7UfbnCZBdzIerpe74GEvlwT4AjOmHeCVZoIFk7EqvOZDejJHt+feJA6kMVTdd0xzRNN295UhC1A== - dependencies: - underscore "1.9.1" - web3-eth-iban "1.2.11" - web3-utils "1.2.11" - -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.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" - resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.2.11.tgz#f880137d1507a0124912bf052534f168b8d8fbb6" - integrity sha512-ff0q76Cde94HAxLDZ6DbdmKniYCQVtvuaYh+rtOUMB6kssa5FX0q3vPmixi7NPooFnbKmmZCM6NvXg4IreTPIw== - 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.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-promievent@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.2.11.tgz#51fe97ca0ddec2f99bf8c3306a7a8e4b094ea3cf" - integrity sha512-il4McoDa/Ox9Agh4kyfQ8Ak/9ABYpnF8poBLL33R/EnxLsJOGQG2nZhkJa3I067hocrPSjEdlPt/0bHXsln4qA== - dependencies: - eventemitter3 "4.0.4" - -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.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" - resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.2.11.tgz#fe6eb603fbaee18530293a91f8cf26d8ae28c45a" - integrity sha512-oFhBtLfOiIbmfl6T6gYjjj9igOvtyxJ+fjS+byRxiwFJyJ5BQOz4/9/17gWR1Cq74paTlI7vDGxYfuvfE/mKvA== - 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.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.3" - -web3-core-subscriptions@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.2.11.tgz#beca908fbfcb050c16f45f3f0f4c205e8505accd" - integrity sha512-qEF/OVqkCvQ7MPs1JylIZCZkin0aKK9lDxpAtQ1F8niEDGFqn7DT8E/vzbIa0GsOjL2fZjDhWJsaW+BSoAW1gg== - dependencies: - eventemitter3 "4.0.4" - underscore "1.9.1" - web3-core-helpers "1.2.11" - -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.3" - web3-core-method "1.10.3" - web3-core-requestmanager "1.10.3" - web3-utils "1.10.3" - -web3-core@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.2.11.tgz#1043cacc1becb80638453cc5b2a14be9050288a7" - integrity sha512-CN7MEYOY5ryo5iVleIWRE3a3cZqVaLlIbIzDPsvQRUfzYnvzZQRZBm9Mq+ttDi2STOOzc1MKylspz/o3yq/LjQ== - 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.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.3" - -web3-eth-abi@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.2.11.tgz#a887494e5d447c2926d557a3834edd66e17af9b0" - integrity sha512-PkRYc0+MjuLSgg03QVWqWlQivJqRwKItKtEpRUaxUAeLE7i/uU39gmzm2keHGcQXo3POXAbOnMqkDvOep89Crg== - dependencies: - "@ethersproject/abi" "5.0.0-beta.153" - underscore "1.9.1" - web3-utils "1.2.11" - -web3-eth-abi@1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.7.0.tgz#4fac9c7d9e5a62b57f8884b37371f515c766f3f4" - integrity sha512-heqR0bWxgCJwjWIhq2sGyNj9bwun5+Xox/LdZKe+WMyTSy0cXDXEAgv3XKNkXC4JqdDt/ZlbTEx4TWak4TRMSg== - dependencies: - "@ethersproject/abi" "5.0.7" - web3-utils "1.7.0" - -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.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" - -web3-eth-accounts@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.2.11.tgz#a9e3044da442d31903a7ce035a86d8fa33f90520" - integrity sha512-6FwPqEpCfKIh3nSSGeo3uBm2iFSnFJDfwL3oS9pyegRBXNsGRVpgiW63yhNzL0796StsvjHWwQnQHsZNxWAkGw== - 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.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.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" - resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.2.11.tgz#917065902bc27ce89da9a1da26e62ef663663b90" - integrity sha512-MzYuI/Rq2o6gn7vCGcnQgco63isPNK5lMAan2E51AJLknjSLnOxwNY3gM8BcKoy4Z+v5Dv00a03Xuk78JowFow== - 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.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.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" - resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.2.11.tgz#26d4d7f16d6cbcfff918e39832b939edc3162532" - integrity sha512-dbW7dXP6HqT1EAPvnniZVnmw6TmQEKF6/1KgAxbo8iBBYrVTMDGFQUUnZ+C4VETGrwwaqtX4L9d/FrQhZ6SUiA== - 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.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.3" - -web3-eth-iban@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.2.11.tgz#f5f73298305bc7392e2f188bf38a7362b42144ef" - integrity sha512-ozuVlZ5jwFC2hJY4+fH9pIcuH1xP0HEFhtWsR69u9uDIANHLPQQtWYmdj7xQ3p2YT4bQLq/axKhZi7EZVetmxQ== - dependencies: - bn.js "^4.11.9" - web3-utils "1.2.11" - -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.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" - resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.2.11.tgz#a38b3942a1d87a62070ce0622a941553c3d5aa70" - integrity sha512-42IzUtKq9iHZ8K9VN0vAI50iSU9tOA1V7XU2BhF/tb7We2iKBVdkley2fg26TxlOcKNEHm7o6HRtiiFsVK4Ifw== - 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.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-eth@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.2.11.tgz#4c81fcb6285b8caf544058fba3ae802968fdc793" - integrity sha512-REvxW1wJ58AgHPcXPJOL49d1K/dPmuw4LjPLBPStOVkQjzDTVmJEIsiLwn2YeuNDd4pfakBwT8L3bz1G1/wVsQ== - 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.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-net@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.2.11.tgz#eda68ef25e5cdb64c96c39085cdb74669aabbe1b" - integrity sha512-sjrSDj0pTfZouR5BSTItCuZ5K/oZPVdVciPQ6981PPPIwJJkCMeVjD7I4zO3qDPCnBjBSbWvVnLdwqUBPtHxyg== - dependencies: - web3-core "1.2.11" - web3-core-method "1.2.11" - web3-utils "1.2.11" - -web3-provider-engine@14.2.1: - version "14.2.1" - resolved "https://registry.yarnpkg.com/web3-provider-engine/-/web3-provider-engine-14.2.1.tgz#ef351578797bf170e08d529cb5b02f8751329b95" - integrity sha512-iSv31h2qXkr9vrL6UZDm4leZMc32SjWJFGOp/D92JXfcEboCqraZyuExDkpxKw8ziTufXieNM7LSXNHzszYdJw== - 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.85.0" - semaphore "^1.0.3" - ws "^5.1.1" - xhr "^2.2.0" - xtend "^4.0.1" - -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.3" - -web3-providers-http@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.2.11.tgz#1cd03442c61670572d40e4dcdf1faff8bd91e7c6" - integrity sha512-psh4hYGb1+ijWywfwpB2cvvOIMISlR44F/rJtYkRmQ5jMvG4FOCPlQJPiHQZo+2cc3HbktvvSJzIhkWQJdmvrA== - dependencies: - web3-core-helpers "1.2.11" - xhr2-cookies "1.1.0" - -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.3" - -web3-providers-ipc@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.2.11.tgz#d16d6c9be1be6e0b4f4536c4acc16b0f4f27ef21" - integrity sha512-yhc7Y/k8hBV/KlELxynWjJDzmgDEDjIjBzXK+e0rHBsYEhdCNdIH5Psa456c+l0qTEU2YzycF8VAjYpWfPnBpQ== - dependencies: - oboe "2.1.4" - underscore "1.9.1" - web3-core-helpers "1.2.11" - -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.3" - websocket "^1.0.32" - -web3-providers-ws@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.2.11.tgz#a1dfd6d9778d840561d9ec13dd453046451a96bb" - integrity sha512-ZxnjIY1Er8Ty+cE4migzr43zA/+72AF1myzsLaU5eVgdsfV7Jqx7Dix1hbevNZDKFlSoEyq/3j/jYalh3So1Zg== - dependencies: - eventemitter3 "4.0.4" - underscore "1.9.1" - web3-core-helpers "1.2.11" - websocket "^1.0.31" - -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: - web3-core "1.10.3" - web3-core-method "1.10.3" - web3-core-subscriptions "1.10.3" - web3-net "1.10.3" - -web3-shh@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.2.11.tgz#f5d086f9621c9a47e98d438010385b5f059fd88f" - integrity sha512-B3OrO3oG1L+bv3E1sTwCx66injW1A8hhwpknDUbV+sw3fehFazA06z9SGXUefuFI1kVs4q2vRi0n4oCcI4dZDg== - 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.10.3, web3-utils@^1.0.0-beta.31, web3-utils@^1.3.0, web3-utils@^1.6.0: - version "1.10.3" - 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" - 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.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.2.11.tgz#af1942aead3fb166ae851a985bed8ef2c2d95a82" - integrity sha512-3Tq09izhD+ThqHEaWYX4VOT7dNPdZiO+c/1QMA0s5X2lDFKK/xHJb7cyTRRVzN2LvlHbR7baS1tmQhSua51TcQ== - 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-utils@1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.7.0.tgz#c59f0fd43b2449357296eb54541810b99b1c771c" - integrity sha512-O8Tl4Ky40Sp6pe89Olk2FsaUkgHyb5QAXuaKo38ms3CxZZ4d3rPGfjP9DNKGm5+IUgAZBNpF1VmlSmNCqfDI1w== - dependencies: - bn.js "^4.11.9" - 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.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3/-/web3-1.2.11.tgz#50f458b2e8b11aa37302071c170ed61cff332975" - integrity sha512-mjQ8HeU41G6hgOYm1pmeH0mRAeNKJGnJEUzDMoerkpw7QUQT4exVREgF1MYPvL/z6vAshOXei25LE/t/Bxl8yQ== - 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@^1.3.4, web3@^1.6.0: - 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" - -webcrypto-core@^1.7.7: - version "1.7.7" - resolved "https://registry.yarnpkg.com/webcrypto-core/-/webcrypto-core-1.7.7.tgz#06f24b3498463e570fed64d7cab149e5437b162c" - integrity sha512-7FjigXNsBfopEj+5DV2nhNpfic2vumtjjgPmeDKk45z+MJwXKKfhPB7118Pfzrmh4jqOMST6Ch37iPAHoImg5g== - dependencies: - "@peculiar/asn1-schema" "^2.3.6" - "@peculiar/json-schema" "^1.1.12" - asn1js "^3.0.1" - pvtsutils "^1.3.2" - tslib "^2.4.0" - -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== - -webidl-conversions@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" - integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== - -webpack-sources@^3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" - integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== - -webpack-virtual-modules@^0.6.0: - version "0.6.1" - resolved "https://registry.yarnpkg.com/webpack-virtual-modules/-/webpack-virtual-modules-0.6.1.tgz#ac6fdb9c5adb8caecd82ec241c9631b7a3681b6f" - integrity sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg== - -websocket@1.0.32: - version "1.0.32" - resolved "https://registry.yarnpkg.com/websocket/-/websocket-1.0.32.tgz#1f16ddab3a21a2d929dec1687ab21cfdc6d3dbb1" - integrity sha512-i4yhcllSP4wrpoPMU2N0TQ/q0O94LRG/eUQjEAamRltjQ1oT1PFFKOG4i877OlJgCG8rw6LrrowJp+TYCEWF7Q== - 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.31, websocket@^1.0.32: - version "1.0.34" - resolved "https://registry.yarnpkg.com/websocket/-/websocket-1.0.34.tgz#2bdc2602c08bf2c82253b730655c0ef7dcab3111" - 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" - -well-known-symbols@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/well-known-symbols/-/well-known-symbols-2.0.0.tgz#e9c7c07dbd132b7b84212c8174391ec1f9871ba5" - integrity sha512-ZMjC3ho+KXo0BfJb7JgtQ5IBuvnShdlACNkKkdsqBmYw3bPAaJfPeYUo6tLUaT5tG/Gkh7xkpBhKRQ9e7pyg9Q== - -whatwg-encoding@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz#e7635f597fd87020858626805a2729fa7698ac53" - integrity sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg== - dependencies: - iconv-lite "0.6.3" - -whatwg-fetch@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz#dde6a5df315f9d39991aa17621853d720b85566f" - integrity sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng== - -whatwg-mimetype@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz#5fa1a7623867ff1af6ca3dc72ad6b8a4208beba7" - integrity sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q== - -whatwg-url@^11.0.0: - version "11.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-11.0.0.tgz#0a849eebb5faf2119b901bb76fd795c2848d4018" - integrity sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ== - dependencies: - tr46 "^3.0.0" - webidl-conversions "^7.0.0" - -whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.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" - 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" - -which-module@^1.0.0: - version "1.0.0" - 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.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409" - integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== - -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.4" - for-each "^0.3.3" - gopd "^1.0.1" - has-tostringtag "^1.0.0" - -which@2.0.2, which@^2.0.0, which@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -which@^1.2.9: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - 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" - integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== - dependencies: - string-width "^1.0.2 || 2" - -wide-align@^1.1.2: - version "1.1.5" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" - integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== - dependencies: - string-width "^1.0.2 || 2 || 3 || 4" - -widest-line@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" - integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== - dependencies: - string-width "^4.0.0" - -widest-line@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-4.0.1.tgz#a0fc673aaba1ea6f0a0d35b3c2795c9a9cc2ebf2" - integrity sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig== - dependencies: - string-width "^5.0.1" - -window-size@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.2.0.tgz#b4315bb4214a3d7058ebeee892e13fa24d98b075" - integrity sha512-UD7d8HFA2+PZsbKyaOCEy8gMh1oDtHgJh1LfgjQ4zVXmYjAT/kvz3PueITKuqDiIXQe7yzpPnxX3lNc+AhQMyw== - -windows-release@^5.0.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/windows-release/-/windows-release-5.1.1.tgz#7ac7019f9baeaea6c00ec889b11824f46c12ee8d" - integrity sha512-NMD00arvqcq2nwqc5Q6KtrSRHK+fVD31erE5FEMahAw5PmVCgD7MUXodq3pdZSUkqA9Cda2iWx6s1XYwiJWRmw== - dependencies: - execa "^5.1.1" - -winston-transport@^4.5.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.6.0.tgz#f1c1a665ad1b366df72199e27892721832a19e1b" - integrity sha512-wbBA9PbPAHxKiygo7ub7BYRiKxms0tpfU2ljtWzb3SjRjv5yl6Ozuy/TkXf00HTAt+Uylo3gSkNwzc4ME0wiIg== - dependencies: - logform "^2.3.2" - readable-stream "^3.6.0" - triple-beam "^1.3.0" - -winston@2.x: - version "2.4.7" - resolved "https://registry.yarnpkg.com/winston/-/winston-2.4.7.tgz#5791fe08ea7e90db090f1cb31ef98f32531062f1" - integrity sha512-vLB4BqzCKDnnZH9PHGoS2ycawueX4HLqENXQitvFHczhgW2vFpSOn31LZtVr1KU8YTw7DS4tM+cqyovxo8taVg== - dependencies: - async "^2.6.4" - colors "1.0.x" - cycle "1.0.x" - eyes "0.1.x" - isstream "0.1.x" - stack-trace "0.0.x" - -winston@^3.10.0: - version "3.11.0" - resolved "https://registry.yarnpkg.com/winston/-/winston-3.11.0.tgz#2d50b0a695a2758bb1c95279f0a88e858163ed91" - integrity sha512-L3yR6/MzZAOl0DsysUXHVjOwv8mKZ71TrA/41EIduGpOOV5LQVodqN+QdQ6BS6PJ/RdIshZhq84P/fStEZkk7g== - dependencies: - "@colors/colors" "^1.6.0" - "@dabh/diagnostics" "^2.0.2" - async "^3.2.3" - is-stream "^2.0.0" - logform "^2.4.0" - one-time "^1.0.0" - readable-stream "^3.4.0" - safe-stable-stringify "^2.3.1" - stack-trace "0.0.x" - triple-beam "^1.3.0" - winston-transport "^4.5.0" - -word-wrap@~1.2.3: - version "1.2.5" - 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.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== - -worker-threads@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/worker-threads/-/worker-threads-1.0.0.tgz#2b49ea7c9692ba737d9148f2c9b2be65e14e3470" - integrity sha512-vK6Hhvph8oLxocEJIlc3YfGAZhm210uGzjZsXSu+JYLAQ/s/w4Tqgl60JrdH58hW8NSGP4m3bp8a92qPXgX05w== - -workerpool@6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.1.0.tgz#a8e038b4c94569596852de7a8ea4228eefdeb37b" - integrity sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg== - -workerpool@6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343" - 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" - integrity sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw== - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - -wrap-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-3.0.1.tgz#288a04d87eda5c286e060dfe8f135ce8d007f8ba" - integrity sha512-iXR3tDXpbnTpzjKSylUJRkLuOrEC7hwEB221cgn6wtF8wpmz28puFXAEfPT5zrjM3wahygB//VuWEr1vTkDcNQ== - dependencies: - string-width "^2.1.1" - strip-ansi "^4.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" - 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@^6.0.1, wrap-ansi@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^7.0.0: - version "7.0.0" - 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" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^8.0.1, wrap-ansi@^8.1.0: - version "8.1.0" - 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" - string-width "^5.0.1" - strip-ansi "^7.0.1" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - -write-file-atomic@5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-5.0.1.tgz#68df4717c55c6fa4281a7860b4c2ba0a6d2b11e7" - integrity sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw== - dependencies: - imurmurhash "^0.1.4" - signal-exit "^4.0.1" - -write-file-atomic@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" - integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== - dependencies: - imurmurhash "^0.1.4" - is-typedarray "^1.0.0" - signal-exit "^3.0.2" - typedarray-to-buffer "^3.1.5" - -write-file-atomic@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd" - integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== - dependencies: - imurmurhash "^0.1.4" - signal-exit "^3.0.7" - -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@8.13.0: - version "8.13.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" - integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA== - -ws@^3.0.0: - version "3.3.3" - 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.yarnpkg.com/ws/-/ws-5.2.3.tgz#05541053414921bc29c63bee14b8b0dd50b07b3d" - integrity sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA== - dependencies: - async-limiter "~1.0.0" - -ws@^7.4.5, ws@^7.4.6, ws@^7.5.1: - version "7.5.9" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" - integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== - -ws@^8.11.0, ws@^8.12.0: - version "8.14.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.14.2.tgz#6c249a806eb2db7a20d26d51e7709eab7b2e6c7f" - integrity sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g== - -xdg-basedir@^5.0.1, xdg-basedir@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-5.1.0.tgz#1efba19425e73be1bc6f2a6ceb52a3d2c884c0c9" - integrity sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ== - -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" - 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" - 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" - -xhr2-cookies@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz#7d77449d0999197f155cb73b23df72505ed89d48" - integrity sha512-hjXUA6q+jl/bd8ADHcVfFsSPIf+tyLIjuO9TwJC9WI6JP2zKcS7C+p56I9kCLLsaCiNT035iYvEUUzdEFj/8+g== - dependencies: - cookiejar "^2.1.1" - -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" - integrity sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA== - dependencies: - global "~4.4.0" - is-function "^1.0.1" - parse-headers "^2.0.0" - xtend "^4.0.0" - -xml-name-validator@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835" - integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw== - -xmlchars@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" - integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== - -xmlhttprequest@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" - integrity sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA== - -xorshift@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/xorshift/-/xorshift-1.2.0.tgz#30a4cdd8e9f8d09d959ed2a88c42a09c660e8148" - integrity sha512-iYgNnGyeeJ4t6U11NpA/QiKy+PXn5Aa3Azg5qkwIFz1tBLllQrjjsk9yzD7IAK0naNU4JxdeDgqW9ov4u/hc4g== - -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.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.yarnpkg.com/xtend/-/xtend-2.1.2.tgz#6efecc2a4dad8e6962c4901b337ce7ba87b5d28b" - 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" - integrity sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ== - -y18n@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" - 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" - 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" - 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" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yaml-ast-parser@^0.0.43: - version "0.0.43" - resolved "https://registry.yarnpkg.com/yaml-ast-parser/-/yaml-ast-parser-0.0.43.tgz#e8a23e6fb4c38076ab92995c5dca33f3d3d7c9bb" - integrity sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A== - -yaml-eslint-parser@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/yaml-eslint-parser/-/yaml-eslint-parser-0.3.2.tgz#c7f5f3904f1c06ad55dc7131a731b018426b4898" - integrity sha512-32kYO6kJUuZzqte82t4M/gB6/+11WAuHiEnK7FreMo20xsCKPeFH5tDBU7iWxR7zeJpNnMXfJyXwne48D0hGrg== - dependencies: - eslint-visitor-keys "^1.3.0" - lodash "^4.17.20" - yaml "^1.10.0" - -yaml@1.10.2, yaml@^1.10.0, yaml@^1.10.2, yaml@^1.7.2: - version "1.10.2" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" - integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== - -yaml@^2.1.3, yaml@^2.3.4: - version "2.3.4" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.4.tgz#53fc1d514be80aabf386dc6001eb29bf3b7523b2" - integrity sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA== - -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@^15.0.1: - version "15.0.3" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-15.0.3.tgz#316e263d5febe8b38eef61ac092b33dfcc9b1115" - integrity sha512-/MVEVjTXy/cGAjdtQf8dW3V9b97bPN7rNn8ETj6BmAQL7ibC7O1Q9SPJbGjgh3SlwoBNXMzj/ZGIj8mBgl12YA== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-parser@^16.1.0: - version "16.1.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-16.1.0.tgz#73747d53ae187e7b8dbe333f95714c76ea00ecf1" - integrity sha512-H/V41UNZQPkUMIT5h5hiwg4QKIY1RPvoBV4XcjUbRM8Bk2oKqqyZ0DIEbTFZB0XjbtSPG8SAa/0DxCQmiRgzKg== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-parser@^18.1.2: - version "18.1.3" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" - integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-parser@^2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-2.4.1.tgz#85568de3cf150ff49fa51825f03a8c880ddcc5c4" - integrity sha512-9pIKIJhnI5tonzG6OnCFlz/yln8xHYcGl+pn3xR0Vzff0vzN1PbNRaelgfgRUwZ3s4i3jvxT9WhmUGL4whnasA== - dependencies: - camelcase "^3.0.0" - lodash.assign "^4.0.6" - -yargs-parser@^20.2.2, yargs-parser@^20.2.3: - 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@^21.1.1: - version "21.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" - integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== - -yargs-promise@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/yargs-promise/-/yargs-promise-1.1.0.tgz#97ebb5198df734bb3b11745133ae5b501b16ab1f" - integrity sha512-nAw/GY9hhH7Y9uGW89sFLpiv9PKZUWIT5IyHdjkbrPpCDTRHn2T1b5SFhgEzut5ghki0HXTLk4HHYRaKlL26Iw== - -yargs-unparser@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" - integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== - dependencies: - camelcase "^6.0.0" - decamelize "^4.0.0" - flat "^5.0.2" - is-plain-obj "^2.1.0" - -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@^14.2.0: - version "14.2.3" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-14.2.3.tgz#1a1c3edced1afb2a2fea33604bc6d1d8d688a414" - integrity sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg== - dependencies: - cliui "^5.0.0" - decamelize "^1.2.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 "^15.0.1" - -yargs@^15.3.1: - version "15.4.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" - integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== - dependencies: - cliui "^6.0.0" - decamelize "^1.2.0" - find-up "^4.1.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 "^4.2.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^18.1.2" - -yargs@^17.0.0, yargs@^17.6.0, yargs@^17.7.2: - version "17.7.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" - 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.yarnpkg.com/yargs/-/yargs-4.8.1.tgz#c0c42924ca4aaa6b0e6da1739dfb216439f9ddc0" - integrity sha512-LqodLrnIDM3IFT+Hf/5sxBnEGECrfdC1uIbgZeJmESCSo4HoCAaKEus8MylXHAkdacGc0ye+Qa+dpkuom8uVYA== - 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" - -yauzl@^2.10.0: - version "2.10.0" - resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" - integrity sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g== - dependencies: - buffer-crc32 "~0.2.3" - fd-slicer "~1.1.0" - -yn@3.1.1: - version "3.1.1" - 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.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== - -yocto-queue@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251" - integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g== - -zip-stream@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-5.0.1.tgz#cf3293bba121cad98be2ec7f05991d81d9f18134" - integrity sha512-UfZ0oa0C8LI58wJ+moL46BDIMgCQbnsb+2PoiJYtonhBsMh2bq1eRBVkvjfVsqbEHd9/EgKPUuL9saSSsec8OA== - dependencies: - archiver-utils "^4.0.1" - compress-commons "^5.0.1" - readable-stream "^3.6.0" - -zkey-manager@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/zkey-manager/-/zkey-manager-0.1.2.tgz#0e0ec8da4c6c8fa8ba8f501386a55b42e048fdf4" - integrity sha512-Ig+QQrS8IZYkLgbdrbdCgji+1NeEatzWoIqH1G0OoF9+cNrf/qFOFr1hq2k52wVcUudCboqGKDpPbl3KRpnpVw== - dependencies: - argparse "2.0.1" - circomlib "^2.0.0" - js-yaml "4.0.0" - shelljs "^0.8.4" - snarkjs "0.4.7" - -zod@^3.22.4: - version "3.22.4" - resolved "https://registry.yarnpkg.com/zod/-/zod-3.22.4.tgz#f31c3a9386f61b1f228af56faa9255e845cf3fff" - integrity sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg== From d7ea0d1e7ec8bc48866baafdebf16d74268bf17e Mon Sep 17 00:00:00 2001 From: yuetloo Date: Mon, 27 Nov 2023 01:55:15 -0500 Subject: [PATCH 091/338] fix prettier error --- common/src/utils.ts | 4 +- contracts/cli/addContributors.ts | 20 +- contracts/cli/addRecipients.ts | 2 +- contracts/cli/claim.ts | 2 +- contracts/cli/contribute.ts | 20 +- contracts/cli/finalize.ts | 2 +- contracts/cli/newClrFund.ts | 7 +- contracts/cli/newDeployer.ts | 2 +- contracts/cli/newRound.ts | 2 +- contracts/cli/tally.ts | 2 +- contracts/cli/timeTravel.ts | 2 +- contracts/cli/vote.ts | 20 +- contracts/utils/maci.ts | 8 +- yarn.lock | 22938 +++++++++++++++++++++++++++++ 14 files changed, 22963 insertions(+), 68 deletions(-) create mode 100644 yarn.lock diff --git a/common/src/utils.ts b/common/src/utils.ts index 16b590983..02c610f54 100644 --- a/common/src/utils.ts +++ b/common/src/utils.ts @@ -99,7 +99,7 @@ export function getRecipientClaimData( const spentProof: MerkleProof = spentTree.genMerklePath(recipientIndex) const resultsCommitment = genTallyResultCommitment( - tally.results.tally.map(x => BigInt(x)), + tally.results.tally.map((x) => BigInt(x)), BigInt(tally.results.salt), recipientTreeDepth ) @@ -112,7 +112,7 @@ export function getRecipientClaimData( return [ recipientIndex, spent, - spentProof.pathElements.map(x => x.map(y => y.toString())), + spentProof.pathElements.map((x) => x.map((y) => y.toString())), spentSalt, resultsCommitment, spentVoiceCreditsCommitment, diff --git a/contracts/cli/addContributors.ts b/contracts/cli/addContributors.ts index 9d60b5c75..fe4678fdf 100644 --- a/contracts/cli/addContributors.ts +++ b/contracts/cli/addContributors.ts @@ -16,22 +16,8 @@ program .parse() async function main(args: any) { - const [ - signer, - , - , - , - , - , - , - , - , - , - , - , - contributor1, - contributor2, - ] = await ethers.getSigners() + const [signer, , , , , , , , , , , , contributor1, contributor2] = + await ethers.getSigners() console.log('Adding contributors by', signer.address) const clrfundContract = await ethers.getContractAt('ClrFund', args[0], signer) @@ -57,7 +43,7 @@ main(program.args) .then(() => { process.exit(0) }) - .catch(err => { + .catch((err) => { console.error(err) process.exit(-1) }) diff --git a/contracts/cli/addRecipients.ts b/contracts/cli/addRecipients.ts index f76d9702b..1afaf20ea 100644 --- a/contracts/cli/addRecipients.ts +++ b/contracts/cli/addRecipients.ts @@ -47,7 +47,7 @@ main(program.args) .then(() => { process.exit(0) }) - .catch(err => { + .catch((err) => { console.error(err) process.exit(-1) }) diff --git a/contracts/cli/claim.ts b/contracts/cli/claim.ts index ac2cceeee..4c11dd8c3 100644 --- a/contracts/cli/claim.ts +++ b/contracts/cli/claim.ts @@ -67,7 +67,7 @@ async function main(args: any) { main(program.opts()) .then(() => process.exit(0)) - .catch(error => { + .catch((error) => { console.error(error) process.exit(1) }) diff --git a/contracts/cli/contribute.ts b/contracts/cli/contribute.ts index 00f034c6f..836ad7b6b 100644 --- a/contracts/cli/contribute.ts +++ b/contracts/cli/contribute.ts @@ -21,22 +21,8 @@ program .parse() async function main(args: any) { - const [ - , - , - , - , - , - , - , - , - , - , - , - , - contributor1, - contributor2, - ] = await ethers.getSigners() + const [, , , , , , , , , , , , contributor1, contributor2] = + await ethers.getSigners() const stateFile = args[0] if (!isPathExist(stateFile)) { @@ -103,7 +89,7 @@ main(program.args) .then(() => { process.exit(0) }) - .catch(err => { + .catch((err) => { console.error(err) process.exit(-1) }) diff --git a/contracts/cli/finalize.ts b/contracts/cli/finalize.ts index 4e2600353..7030dcf55 100644 --- a/contracts/cli/finalize.ts +++ b/contracts/cli/finalize.ts @@ -72,7 +72,7 @@ async function main(args: any) { main(program.opts()) .then(() => process.exit(0)) - .catch(error => { + .catch((error) => { console.error(error) process.exit(1) }) diff --git a/contracts/cli/newClrFund.ts b/contracts/cli/newClrFund.ts index 8178e08ac..4d9d1ad81 100644 --- a/contracts/cli/newClrFund.ts +++ b/contracts/cli/newClrFund.ts @@ -139,9 +139,8 @@ async function main(args: any) { }) userRegistryAddress = userRegistryContract.address } - const setUserRegistryTx = await clrfundContract.setUserRegistry( - userRegistryAddress - ) + const setUserRegistryTx = + await clrfundContract.setUserRegistry(userRegistryAddress) await setUserRegistryTx.wait() console.log( `Set ${args.userRegistryType} user registry: ${userRegistryAddress}` @@ -177,7 +176,7 @@ main(program.opts()) .then(() => { process.exit(0) }) - .catch(err => { + .catch((err) => { console.error(err) process.exit(-1) }) diff --git a/contracts/cli/newDeployer.ts b/contracts/cli/newDeployer.ts index be3e2b090..c3d87148e 100644 --- a/contracts/cli/newDeployer.ts +++ b/contracts/cli/newDeployer.ts @@ -78,7 +78,7 @@ main(program.opts()) .then(() => { process.exit(0) }) - .catch(err => { + .catch((err) => { console.error(err) process.exit(-1) }) diff --git a/contracts/cli/newRound.ts b/contracts/cli/newRound.ts index 9545fa218..951dcb5ce 100644 --- a/contracts/cli/newRound.ts +++ b/contracts/cli/newRound.ts @@ -102,7 +102,7 @@ main(program.opts()) .then(() => { process.exit(0) }) - .catch(err => { + .catch((err) => { console.error(err) process.exit(-1) }) diff --git a/contracts/cli/tally.ts b/contracts/cli/tally.ts index 4c4d845df..4b6d3a04e 100644 --- a/contracts/cli/tally.ts +++ b/contracts/cli/tally.ts @@ -211,7 +211,7 @@ async function main(args: any) { main(program.opts()) .then(() => process.exit(0)) - .catch(error => { + .catch((error) => { console.error(error) process.exit(1) }) diff --git a/contracts/cli/timeTravel.ts b/contracts/cli/timeTravel.ts index 8f8309320..b8f310f11 100644 --- a/contracts/cli/timeTravel.ts +++ b/contracts/cli/timeTravel.ts @@ -23,7 +23,7 @@ main(program.args) .then(() => { process.exit(0) }) - .catch(err => { + .catch((err) => { console.error(err) process.exit(-1) }) diff --git a/contracts/cli/vote.ts b/contracts/cli/vote.ts index b01d61e0f..933f02ba2 100644 --- a/contracts/cli/vote.ts +++ b/contracts/cli/vote.ts @@ -34,22 +34,8 @@ async function main(args: any) { throw Error('Env. variable COORDINATOR_MACISK not set') } - const [ - , - , - , - , - , - , - , - , - , - , - , - , - contributor1, - contributor2, - ] = await ethers.getSigners() + const [, , , , , , , , , , , , contributor1, contributor2] = + await ethers.getSigners() const state = JSONFile.read(stateFile) const coordinatorKeyPair = new Keypair(PrivKey.unserialize(coordinatorMacisk)) @@ -115,7 +101,7 @@ main(program.args) .then(() => { process.exit(0) }) - .catch(err => { + .catch((err) => { console.error(err) process.exit(-1) }) diff --git a/contracts/utils/maci.ts b/contracts/utils/maci.ts index a28ea28ca..ac5be4276 100644 --- a/contracts/utils/maci.ts +++ b/contracts/utils/maci.ts @@ -65,7 +65,7 @@ export function getRecipientTallyResult( recipientIndex, result, proof: resultProof.pathElements.map((x: bigint[]) => - x.map(y => y.toString()) + x.map((y) => y.toString()) ), } } @@ -92,9 +92,9 @@ export function getRecipientTallyResultsBatch( } return [ - tallyData.map(item => item.recipientIndex), - tallyData.map(item => item.result), - tallyData.map(item => item.proof), + tallyData.map((item) => item.recipientIndex), + tallyData.map((item) => item.result), + tallyData.map((item) => item.proof), ] } diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 000000000..c05880e57 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,22938 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@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" + integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== + +"@alloc/quick-lru@^5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz#7bf68b20c0a350f936915fcae06f58e32007ce30" + integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw== + +"@ampproject/remapping@^2.2.0": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" + integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== + dependencies: + "@jridgewell/gen-mapping" "^0.3.0" + "@jridgewell/trace-mapping" "^0.3.9" + +"@antfu/utils@^0.7.0", "@antfu/utils@^0.7.2": + version "0.7.6" + resolved "https://registry.yarnpkg.com/@antfu/utils/-/utils-0.7.6.tgz#30a046419b9e1ecd276e53d41ab68fb6c558c04d" + integrity sha512-pvFiLP2BeOKA/ZOS6jxx4XhKzdVLHDhGlFEaZ2flWWYf2xOqVniqpk38I04DFRyz+L0ASggl7SkItTc+ZLju4w== + +"@ardatan/relay-compiler@12.0.0": + version "12.0.0" + resolved "https://registry.yarnpkg.com/@ardatan/relay-compiler/-/relay-compiler-12.0.0.tgz#2e4cca43088e807adc63450e8cab037020e91106" + integrity sha512-9anThAaj1dQr6IGmzBMcfzOQKTa5artjuPmw8NYK/fiGEMjADbSguBY2FMDykt+QhilR3wc9VA/3yVju7JHg7Q== + dependencies: + "@babel/core" "^7.14.0" + "@babel/generator" "^7.14.0" + "@babel/parser" "^7.14.0" + "@babel/runtime" "^7.0.0" + "@babel/traverse" "^7.14.0" + "@babel/types" "^7.0.0" + babel-preset-fbjs "^3.4.0" + chalk "^4.0.0" + fb-watchman "^2.0.0" + fbjs "^3.0.0" + glob "^7.1.1" + immutable "~3.7.6" + invariant "^2.2.4" + nullthrows "^1.1.1" + relay-runtime "12.0.0" + signedsource "^1.0.0" + yargs "^15.3.1" + +"@ardatan/sync-fetch@^0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@ardatan/sync-fetch/-/sync-fetch-0.0.1.tgz#3385d3feedceb60a896518a1db857ec1e945348f" + integrity sha512-xhlTqH0m31mnsG0tIP4ETgfSB6gXDaYYsUWTrlUV93fFQPI9dd8hE0Ot6MHLCtqgB32hwJAC3YZMWlXZw7AleA== + dependencies: + node-fetch "^2.6.1" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.22.13", "@babel/code-frame@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.4.tgz#03ae5af150be94392cb5c7ccd97db5a19a5da6aa" + integrity sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA== + dependencies: + "@babel/highlight" "^7.23.4" + chalk "^2.4.2" + +"@babel/compat-data@^7.20.5", "@babel/compat-data@^7.22.9": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.3.tgz#3febd552541e62b5e883a25eb3effd7c7379db11" + integrity sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ== + +"@babel/core@^7.14.0": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.3.tgz#5ec09c8803b91f51cc887dedc2654a35852849c9" + integrity sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.22.13" + "@babel/generator" "^7.23.3" + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helpers" "^7.23.2" + "@babel/parser" "^7.23.3" + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.3" + "@babel/types" "^7.23.3" + 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.14.0", "@babel/generator@^7.18.13", "@babel/generator@^7.23.3", "@babel/generator@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.4.tgz#4a41377d8566ec18f807f42962a7f3551de83d1c" + integrity sha512-esuS49Cga3HcThFNebGhlgsrVLkvhqvYDTzgjfFFlHJcIfLe5jFmRRfCQ1KuBfc4Jrtn3ndLgKWAKjBE+IraYQ== + dependencies: + "@babel/types" "^7.23.4" + "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" + jsesc "^2.5.1" + +"@babel/helper-annotate-as-pure@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" + integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.22.15": + 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== + dependencies: + "@babel/compat-data" "^7.22.9" + "@babel/helper-validator-option" "^7.22.15" + browserslist "^4.21.9" + lru-cache "^5.1.1" + semver "^6.3.1" + +"@babel/helper-create-class-features-plugin@^7.18.6": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz#97a61b385e57fe458496fad19f8e63b63c867de4" + integrity sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-function-name" "^7.22.5" + "@babel/helper-member-expression-to-functions" "^7.22.15" + "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.9" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + semver "^6.3.1" + +"@babel/helper-environment-visitor@^7.22.20", "@babel/helper-environment-visitor@^7.22.5": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" + integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== + +"@babel/helper-function-name@^7.22.5", "@babel/helper-function-name@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" + 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.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" + integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-member-expression-to-functions@^7.22.15": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz#9263e88cc5e41d39ec18c9a3e0eced59a3e7d366" + integrity sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA== + dependencies: + "@babel/types" "^7.23.0" + +"@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" + 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.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1" + 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-optimise-call-expression@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e" + integrity sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.8.0": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" + integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== + +"@babel/helper-replace-supers@^7.22.20", "@babel/helper-replace-supers@^7.22.9": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz#e37d367123ca98fe455a9887734ed2e16eb7a793" + integrity sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-member-expression-to-functions" "^7.22.15" + "@babel/helper-optimise-call-expression" "^7.22.5" + +"@babel/helper-simple-access@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" + integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-skip-transparent-expression-wrappers@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz#007f15240b5751c537c40e77abb4e89eeaaa8847" + integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-split-export-declaration@^7.22.6": + version "7.22.6" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" + integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-string-parser@^7.22.5", "@babel/helper-string-parser@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz#9478c707febcbbe1ddb38a3d91a2e054ae622d83" + integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ== + +"@babel/helper-validator-identifier@^7.22.19", "@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" + 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/helpers@^7.23.2": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.4.tgz#7d2cfb969aa43222032193accd7329851facf3c1" + integrity sha512-HfcMizYz10cr3h29VqyfGL6ZWIjTwWfvYBMsBVGwpcbhNGe3wQ1ZXZRPzZoAHhd9OqHadHqjQ89iVKINXnbzuw== + dependencies: + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.4" + "@babel/types" "^7.23.4" + +"@babel/highlight@^7.23.4": + version "7.23.4" + 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.14.0", "@babel/parser@^7.16.8", "@babel/parser@^7.21.8", "@babel/parser@^7.22.15", "@babel/parser@^7.22.5", "@babel/parser@^7.23.3", "@babel/parser@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.4.tgz#409fbe690c333bb70187e2de4021e1e47a026661" + integrity sha512-vf3Xna6UEprW+7t6EtOmFpHNAuxw3xqPZghy+brsnusscJRW5BMUzzHZc5ICjULee81WeUV2jjakG09MDglJXQ== + +"@babel/plugin-proposal-class-properties@^7.0.0": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" + integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-proposal-object-rest-spread@^7.0.0": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz#aa662940ef425779c75534a5c41e9d936edc390a" + integrity sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg== + dependencies: + "@babel/compat-data" "^7.20.5" + "@babel/helper-compilation-targets" "^7.20.7" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.20.7" + +"@babel/plugin-syntax-class-properties@^7.0.0": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-flow@^7.0.0", "@babel/plugin-syntax-flow@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.23.3.tgz#084564e0f3cc21ea6c70c44cff984a1c0509729a" + integrity sha512-YZiAIpkJAwQXBJLIQbRFayR5c+gJ35Vcz3bg954k7cd73zqjvhacJuL9RbrzPz8qPmZdgqP6EUKwy0PCNhaaPA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-syntax-import-assertions@^7.20.0": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz#9c05a7f592982aff1a2768260ad84bcd3f0c77fc" + integrity sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz#8f2e4f8a9b5f9aa16067e142c1ac9cd9f810f473" + integrity sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-transform-arrow-functions@^7.0.0": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz#94c6dcfd731af90f27a79509f9ab7fb2120fc38b" + integrity sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-block-scoped-functions@^7.0.0": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz#fe1177d715fb569663095e04f3598525d98e8c77" + integrity sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-block-scoping@^7.0.0": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz#b2d38589531c6c80fbe25e6b58e763622d2d3cf5" + integrity sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-classes@^7.0.0": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.3.tgz#73380c632c095b03e8503c24fd38f95ad41ffacb" + integrity sha512-FGEQmugvAEu2QtgtU0uTASXevfLMFfBeVCIIdcQhn/uBQsMTjBajdnAtanQlOcuihWh10PZ7+HWvc7NtBwP74w== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.20" + "@babel/helper-split-export-declaration" "^7.22.6" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.0.0": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz#652e69561fcc9d2b50ba4f7ac7f60dcf65e86474" + integrity sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/template" "^7.22.15" + +"@babel/plugin-transform-destructuring@^7.0.0": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz#8c9ee68228b12ae3dff986e56ed1ba4f3c446311" + integrity sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-flow-strip-types@^7.0.0": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.23.3.tgz#cfa7ca159cc3306fab526fc67091556b51af26ff" + integrity sha512-26/pQTf9nQSNVJCrLB1IkHUKyPxR+lMrH2QDPG89+Znu9rAMbtrybdbWeE9bb7gzjmE5iXHEY+e0HUwM6Co93Q== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-flow" "^7.23.3" + +"@babel/plugin-transform-for-of@^7.0.0": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.3.tgz#afe115ff0fbce735e02868d41489093c63e15559" + integrity sha512-X8jSm8X1CMwxmK878qsUGJRmbysKNbdpTv/O1/v0LuY/ZkZrng5WYiekYSdg9m09OTmDDUWeEDsTE+17WYbAZw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-function-name@^7.0.0": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz#8f424fcd862bf84cb9a1a6b42bc2f47ed630f8dc" + integrity sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw== + dependencies: + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-literals@^7.0.0": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz#8214665f00506ead73de157eba233e7381f3beb4" + integrity sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-member-expression-literals@^7.0.0": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz#e37b3f0502289f477ac0e776b05a833d853cabcc" + integrity sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-modules-commonjs@^7.0.0": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz#661ae831b9577e52be57dd8356b734f9700b53b4" + integrity sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA== + dependencies: + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-simple-access" "^7.22.5" + +"@babel/plugin-transform-object-super@^7.0.0": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz#81fdb636dcb306dd2e4e8fd80db5b2362ed2ebcd" + integrity sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.20" + +"@babel/plugin-transform-parameters@^7.0.0", "@babel/plugin-transform-parameters@^7.20.7": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz#83ef5d1baf4b1072fa6e54b2b0999a7b2527e2af" + integrity sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-property-literals@^7.0.0": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz#54518f14ac4755d22b92162e4a852d308a560875" + integrity sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-react-display-name@^7.0.0": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.23.3.tgz#70529f034dd1e561045ad3c8152a267f0d7b6200" + integrity sha512-GnvhtVfA2OAtzdX58FJxU19rhoGeQzyVndw3GgtdECQvQFXPEZIOVULHVZGAYmOgmqjXpVpfocAbSjh99V/Fqw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-react-jsx@^7.0.0": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.23.4.tgz#393f99185110cea87184ea47bcb4a7b0c2e39312" + integrity sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-module-imports" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-jsx" "^7.23.3" + "@babel/types" "^7.23.4" + +"@babel/plugin-transform-shorthand-properties@^7.0.0": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz#97d82a39b0e0c24f8a981568a8ed851745f59210" + integrity sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-spread@^7.0.0": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz#41d17aacb12bde55168403c6f2d6bdca563d362c" + integrity sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + +"@babel/plugin-transform-template-literals@^7.0.0": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz#5f0f028eb14e50b5d0f76be57f90045757539d07" + integrity sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/runtime@^7.0.0": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.4.tgz#36fa1d2b36db873d25ec631dcc4923fdc1cf2e2e" + integrity sha512-2Yv65nlWnWlSpe3fXEyX5i7fx5kIKo4Qbcj+hMO0odwaneFjfXw5fdum+4yL20O0QiaHpia0cYQ9xpNMqrBwHg== + dependencies: + regenerator-runtime "^0.14.0" + +"@babel/template@^7.18.10", "@babel/template@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" + integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== + dependencies: + "@babel/code-frame" "^7.22.13" + "@babel/parser" "^7.22.15" + "@babel/types" "^7.22.15" + +"@babel/traverse@^7.14.0", "@babel/traverse@^7.16.8", "@babel/traverse@^7.23.3", "@babel/traverse@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.4.tgz#c2790f7edf106d059a0098770fe70801417f3f85" + integrity sha512-IYM8wSUwunWTB6tFC2dkKZhxbIjHoWemdK+3f8/wq8aKhbUscxD5MX72ubd90fxvFknaLPeGw5ycU84V1obHJg== + dependencies: + "@babel/code-frame" "^7.23.4" + "@babel/generator" "^7.23.4" + "@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.4" + "@babel/types" "^7.23.4" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/types@7.22.19": + version "7.22.19" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.19.tgz#7425343253556916e440e662bb221a93ddb75684" + integrity sha512-P7LAw/LbojPzkgp5oznjE6tQEIWbp4PkkfrZDINTro9zgBRtI324/EYsiSI7lhPbpIQ+DCeR2NNmMWANGGfZsg== + dependencies: + "@babel/helper-string-parser" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.19" + to-fast-properties "^2.0.0" + +"@babel/types@7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.3.tgz#d5ea892c07f2ec371ac704420f4dcdb07b5f9598" + integrity sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw== + dependencies: + "@babel/helper-string-parser" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.20" + to-fast-properties "^2.0.0" + +"@babel/types@^7.0.0", "@babel/types@^7.16.8", "@babel/types@^7.18.13", "@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.3", "@babel/types@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.4.tgz#7206a1810fc512a7f7f7d4dace4cb4c1c9dbfb8e" + integrity sha512-7uIFwVYpoplT5jp/kVv6EF93VaJ8H+Yn5IczYiaAi98ajzjfoZfslet/e0sLh+wVBjb2qqIut1b0S26VSafsSQ== + dependencies: + "@babel/helper-string-parser" "^7.23.4" + "@babel/helper-validator-identifier" "^7.22.20" + to-fast-properties "^2.0.0" + +"@bugsnag/browser@^7.20.2", "@bugsnag/browser@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@bugsnag/browser/-/browser-7.21.0.tgz#ee623ffa57c0fe2e2e4644a24bfc2008f18f83ef" + integrity sha512-mJ6r6SXpts+hdSnDNmTR35lZ+95BthqXpgBrDwquDCoY++zQ4OuzrkA/HZYD/rfpdSpgb7lO+AAlD7qrd9IylA== + dependencies: + "@bugsnag/core" "^7.19.0" + +"@bugsnag/core@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@bugsnag/core/-/core-7.19.0.tgz#7663a4addb1322e8315a4012dc9db2aad3fea53b" + integrity sha512-2KGwdaLD9PhR7Wk7xPi3jGuGsKTatc/28U4TOZIDU3CgC2QhGjubwiXSECel5gwxhZ3jACKcMKSV2ovHhv1NrA== + dependencies: + "@bugsnag/cuid" "^3.0.0" + "@bugsnag/safe-json-stringify" "^6.0.0" + error-stack-parser "^2.0.3" + iserror "0.0.2" + stack-generator "^2.0.3" + +"@bugsnag/cuid@^3.0.0": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@bugsnag/cuid/-/cuid-3.0.2.tgz#544f8e6e7e3768c8cb618ca5c5fb1eea6aacbb7e" + integrity sha512-cIwzC93r3PQ/INeuwtZwkZIG2K8WWN0rRLZQhu+mr48Ay+i6sEki4GYfTsflse7hZ1BeDWrNb/Q9vgY3B31xHQ== + +"@bugsnag/js@7.20.2": + version "7.20.2" + resolved "https://registry.yarnpkg.com/@bugsnag/js/-/js-7.20.2.tgz#218ec77d1df8b70d9353d4f2f2ccd3e51a331786" + integrity sha512-Q08k0h0h6NFwFGkFmib39Uln2WpvJdqT1EGF1JlyYiGW03Y+VopVb9r37pZrRrN9IY08mxaIEO8la5xeaWAs6A== + dependencies: + "@bugsnag/browser" "^7.20.2" + "@bugsnag/node" "^7.19.0" + +"@bugsnag/js@^7.0.0", "@bugsnag/js@^7.20.0": + version "7.22.2" + resolved "https://registry.yarnpkg.com/@bugsnag/js/-/js-7.22.2.tgz#4cd91c77e9e4657b8a952fad34eee40382753c81" + integrity sha512-HgKzjkwzMQKyokIFnyRMChONxM9AoR24Sk76tWcqIdFagE0bhnTgSn3qYT2bRVNODtWyQHiW6qjOOpgOM3Mjlw== + dependencies: + "@bugsnag/browser" "^7.21.0" + "@bugsnag/node" "^7.19.0" + +"@bugsnag/node@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@bugsnag/node/-/node-7.19.0.tgz#6a8e5d0f5e73a1d0bad19537def1a7ff65e19787" + integrity sha512-c4snyxx5d/fsMogmgehFBGc//daH6+4XCplia4zrEQYltjaQ+l8ud0dPx623DgJl/2j1+2zlRc7y7IHSd7Gm5w== + dependencies: + "@bugsnag/core" "^7.19.0" + byline "^5.0.0" + error-stack-parser "^2.0.2" + iserror "^0.0.2" + pump "^3.0.0" + stack-generator "^2.0.3" + +"@bugsnag/safe-json-stringify@^6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@bugsnag/safe-json-stringify/-/safe-json-stringify-6.0.0.tgz#22abdcd83e008c369902976730c34c150148a758" + integrity sha512-htzFO1Zc57S8kgdRK9mLcPVTW1BY2ijfH7Dk2CeZmspTWKdKqSo1iwmqrq2WtRjFlo8aRZYgLX0wFrDXF/9DLA== + +"@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" + 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" + 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" + 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" + integrity sha512-/NL3Lh8K+0q7A3LsiFq09YXS9fPE+ead2rr7vM2QK8PLzrNsw3uqrif9bpRX5UxgeRjM+vYi+boCM3+GM4ovXg== + dependencies: + "@chainsafe/as-sha256" "^0.3.1" + "@chainsafe/persistent-merkle-tree" "^0.5.0" + +"@chainsafe/ssz@^0.9.2": + version "0.9.4" + 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" + "@chainsafe/persistent-merkle-tree" "^0.4.2" + case "^1.6.3" + +"@clrfund/maci-circuits@^1.1.10": + version "1.1.10" + resolved "https://registry.yarnpkg.com/@clrfund/maci-circuits/-/maci-circuits-1.1.10.tgz#e9e5c5e45b1398e34a9fb991d7f77880eac84784" + integrity sha512-iG5yDgXw7f8a2Ra1jHldC/AE+alawalMHBoH6c5vZvZfu89zg6idD1HzxipSiVT5WXwxxNWxrqLkOED6fG+URg== + dependencies: + circomlib "https://github.com/weijiekoh/circomlib#ac85e82c1914d47789e2032fb11ceb2cfdd38a2b" + shelljs "^0.8.3" + snarkjs "^0.5.0" + tmp "^0.2.1" + +"@clrfund/maci-cli@^1.1.10": + version "1.1.10" + resolved "https://registry.yarnpkg.com/@clrfund/maci-cli/-/maci-cli-1.1.10.tgz#861cd938669fd9492a512ddf6b0e25cd6f4f4f14" + integrity sha512-XaHGGRe5az3KCiLgNWGh+oqOR7UEFkGX9Puqiwz/yoLCLD37HIbOz+8TC8qVE9/D0Y0BlAOYoUbX0mm2WIbeUQ== + dependencies: + "@clrfund/maci-circuits" "^1.1.10" + "@clrfund/maci-contracts" "^1.1.7" + "@clrfund/maci-core" "^1.1.7" + "@clrfund/maci-crypto" "^1.1.7" + "@clrfund/maci-domainobjs" "^1.1.7" + "@nomiclabs/hardhat-ethers" "^2.0.2" + argparse "^1.0.10" + circom_runtime "^0.1.22" + circomlib "^2.0.5" + ethers "^5.4.7" + ffiasm "0.1.3" + hardhat "^2.12.6" + js-yaml "4.0.0" + maci-common "^1.1.2" + prompt-async "^0.9.9" + shelljs "^0.8.4" + snarkjs "^0.5.0" + source-map-support "^0.5.19" + typescript "^4.2.3" + web3 "^1.3.4" + xmlhttprequest "1.8.0" + zkey-manager "^0.1.1" + +"@clrfund/maci-contracts@^1.1.7", "@clrfund/maci-contracts@^1.1.9": + version "1.1.9" + resolved "https://registry.yarnpkg.com/@clrfund/maci-contracts/-/maci-contracts-1.1.9.tgz#baaa07c586d7851bfdefe6124fe048f0140c53f8" + integrity sha512-X6JQApedLX+LHsLz2bl1FdtMht8jP4pAhhGUSTJyW8mpwksKYINQt/EsJuaD2RPoyC2arp/VhpvSh5FHtZ2X2w== + dependencies: + "@clrfund/maci-core" "^1.1.7" + "@clrfund/maci-crypto" "^1.1.7" + "@clrfund/maci-domainobjs" "^1.1.7" + "@nomicfoundation/hardhat-chai-matchers" "^1.0.0" + "@nomiclabs/hardhat-ethers" "^2.0.0" + "@openzeppelin/contracts" "^4.8.0" + circomlib "^2.0.5" + circomlibjs "^0.1.7" + ethers "^5.4.7" + hardhat "^2.12.6" + hardhat-artifactor "^0.2.0" + hardhat-contract-sizer "^2.10.0" + module-alias "^2.2.2" + typescript "^4.2.3" + +"@clrfund/maci-core@^1.1.7": + version "1.1.7" + resolved "https://registry.yarnpkg.com/@clrfund/maci-core/-/maci-core-1.1.7.tgz#0de2bc16077ed29511b4a1c086692f4a22499923" + integrity sha512-+xGTyNMbvd2qz/qk15D9YATw8Ig6eMiRWgbz0xXGUSyrHaQGvEfmzuK4c6gS2h5rDSXj+q7i0XzhLbP+t13Z/A== + dependencies: + "@clrfund/maci-crypto" "^1.1.7" + "@clrfund/maci-domainobjs" "^1.1.7" + module-alias "^2.2.2" + +"@clrfund/maci-crypto@^1.1.7": + version "1.1.7" + resolved "https://registry.yarnpkg.com/@clrfund/maci-crypto/-/maci-crypto-1.1.7.tgz#6841f532fdc002d311d5576b5d5342a24f092bfe" + integrity sha512-crx8QtIrtYj3Oq6G7HkRWDi/zWCdBy2gYbp080Myf1ol9MP3rCtO5uc013JuuFReX04pbDDWxOJ6AQuQ99OR0g== + dependencies: + blake-hash "^1.1.0" + circomlib "https://github.com/weijiekoh/circomlib.git#24ed08eee0bb613b8c0135d66c1013bd9f78d50a" + ethers "^5.4.7" + ffjavascript "^0.2.62" + optimisedmt "^0.0.7" + +"@clrfund/maci-domainobjs@^1.1.7": + version "1.1.7" + resolved "https://registry.yarnpkg.com/@clrfund/maci-domainobjs/-/maci-domainobjs-1.1.7.tgz#874d1f87f399bf94c180f341dfc2414b4172cd87" + integrity sha512-nR24qELBjSdDshSCIBs3IyuRoBNPApv44C8NYqapNTDTJndECYqdTz6Rm/eSGr4acJIAOnMb8XB1cm1WpVFCoA== + dependencies: + base64url "^3.0.1" + +"@colors/colors@1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" + integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== + +"@colors/colors@1.6.0", "@colors/colors@^1.6.0": + version "1.6.0" + resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.6.0.tgz#ec6cd237440700bc23ca23087f513c75508958b0" + integrity sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA== + +"@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" + integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== + dependencies: + "@jridgewell/trace-mapping" "0.3.9" + +"@dabh/diagnostics@^2.0.2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@dabh/diagnostics/-/diagnostics-2.0.3.tgz#7f7e97ee9a725dffc7808d93668cc984e1dc477a" + integrity sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA== + dependencies: + colorspace "1.1.x" + enabled "2.0.x" + kuler "^2.0.0" + +"@dependents/detective-less@^4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@dependents/detective-less/-/detective-less-4.1.0.tgz#4a979ee7a6a79eb33602862d6a1263e30f98002e" + integrity sha512-KrkT6qO5NxqNfy68sBl6CTSoJ4SNDIS5iQArkibhlbGU4LaDukZ3q2HIkh8aUKDio6o4itU4xDR7t82Y2eP1Bg== + dependencies: + gonzales-pe "^4.3.0" + node-source-walk "^6.0.1" + +"@ensdomains/ens@^0.4.4": + version "0.4.5" + resolved "https://registry.yarnpkg.com/@ensdomains/ens/-/ens-0.4.5.tgz#e0aebc005afdc066447c6e22feb4eda89a5edbfc" + integrity sha512-JSvpj1iNMFjK6K+uVl4unqMoa9rf5jopb8cya5UGBWz23Nw8hSNT7efgUx4BTlAPAgpNlEioUfeTyQ6J9ZvTVw== + 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" + +"@ensdomains/resolver@^0.2.4": + version "0.2.4" + resolved "https://registry.yarnpkg.com/@ensdomains/resolver/-/resolver-0.2.4.tgz#c10fe28bf5efbf49bff4666d909aed0265efbc89" + integrity sha512-bvaTH34PMCbv6anRa9I/0zjLJgY4EuznbEMgbV77JBCQ9KNC46rzi0avuxpOfu+xDjPEtSFGqVEOr5GlUSGudA== + +"@esbuild/android-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz#984b4f9c8d0377443cc2dfcef266d02244593622" + integrity sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ== + +"@esbuild/android-arm64@0.19.4": + version "0.19.4" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.4.tgz#74752a09301b8c6b9a415fbda9fb71406a62a7b7" + integrity sha512-mRsi2vJsk4Bx/AFsNBqOH2fqedxn5L/moT58xgg51DjX1la64Z3Npicut2VbhvDFO26qjWtPMsVxCd80YTFVeg== + +"@esbuild/android-arm64@0.19.6": + version "0.19.6" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.6.tgz#13d98a34bbbde4237867cc232307a20ded139b6f" + integrity sha512-KQ/hbe9SJvIJ4sR+2PcZ41IBV+LPJyYp6V1K1P1xcMRup9iYsBoQn4MzE3mhMLOld27Au2eDcLlIREeKGUXpHQ== + +"@esbuild/android-arm@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.18.20.tgz#fedb265bc3a589c84cc11f810804f234947c3682" + integrity sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw== + +"@esbuild/android-arm@0.19.4": + version "0.19.4" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.4.tgz#c27363e1e280e577d9b5c8fa7c7a3be2a8d79bf5" + integrity sha512-uBIbiYMeSsy2U0XQoOGVVcpIktjLMEKa7ryz2RLr7L/vTnANNEsPVAh4xOv7ondGz6ac1zVb0F8Jx20rQikffQ== + +"@esbuild/android-arm@0.19.6": + version "0.19.6" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.6.tgz#68898d949672c56f10451f540fd92301dc713fb3" + integrity sha512-muPzBqXJKCbMYoNbb1JpZh/ynl0xS6/+pLjrofcR3Nad82SbsCogYzUE6Aq9QT3cLP0jR/IVK/NHC9b90mSHtg== + +"@esbuild/android-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.18.20.tgz#35cf419c4cfc8babe8893d296cd990e9e9f756f2" + integrity sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg== + +"@esbuild/android-x64@0.19.4": + version "0.19.4" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.4.tgz#6c9ee03d1488973d928618100048b75b147e0426" + integrity sha512-4iPufZ1TMOD3oBlGFqHXBpa3KFT46aLl6Vy7gwed0ZSYgHaZ/mihbYb4t7Z9etjkC9Al3ZYIoOaHrU60gcMy7g== + +"@esbuild/android-x64@0.19.6": + version "0.19.6" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.6.tgz#51a0ab83680dedc6dd1ae26133def26b178ed3a1" + integrity sha512-VVJVZQ7p5BBOKoNxd0Ly3xUM78Y4DyOoFKdkdAe2m11jbh0LEU4bPles4e/72EMl4tapko8o915UalN/5zhspg== + +"@esbuild/darwin-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz#08172cbeccf95fbc383399a7f39cfbddaeb0d7c1" + integrity sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA== + +"@esbuild/darwin-arm64@0.19.4": + version "0.19.4" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.4.tgz#64e2ee945e5932cd49812caa80e8896e937e2f8b" + integrity sha512-Lviw8EzxsVQKpbS+rSt6/6zjn9ashUZ7Tbuvc2YENgRl0yZTktGlachZ9KMJUsVjZEGFVu336kl5lBgDN6PmpA== + +"@esbuild/darwin-arm64@0.19.6": + version "0.19.6" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.6.tgz#2883f14197111febb118c0463c080930a30883e5" + integrity sha512-91LoRp/uZAKx6ESNspL3I46ypwzdqyDLXZH7x2QYCLgtnaU08+AXEbabY2yExIz03/am0DivsTtbdxzGejfXpA== + +"@esbuild/darwin-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz#d70d5790d8bf475556b67d0f8b7c5bdff053d85d" + integrity sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ== + +"@esbuild/darwin-x64@0.19.4": + version "0.19.4" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.4.tgz#d8e26e1b965df284692e4d1263ba69a49b39ac7a" + integrity sha512-YHbSFlLgDwglFn0lAO3Zsdrife9jcQXQhgRp77YiTDja23FrC2uwnhXMNkAucthsf+Psr7sTwYEryxz6FPAVqw== + +"@esbuild/darwin-x64@0.19.6": + version "0.19.6" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.6.tgz#400bf20f9a35a7d68a17f5898c0f9ecb099f062b" + integrity sha512-QCGHw770ubjBU1J3ZkFJh671MFajGTYMZumPs9E/rqU52md6lIil97BR0CbPq6U+vTh3xnTNDHKRdR8ggHnmxQ== + +"@esbuild/freebsd-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz#98755cd12707f93f210e2494d6a4b51b96977f54" + integrity sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw== + +"@esbuild/freebsd-arm64@0.19.4": + version "0.19.4" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.4.tgz#29751a41b242e0a456d89713b228f1da4f45582f" + integrity sha512-vz59ijyrTG22Hshaj620e5yhs2dU1WJy723ofc+KUgxVCM6zxQESmWdMuVmUzxtGqtj5heHyB44PjV/HKsEmuQ== + +"@esbuild/freebsd-arm64@0.19.6": + version "0.19.6" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.6.tgz#8af07bd848afa2470b8a2339b203ce29a721152b" + integrity sha512-J53d0jGsDcLzWk9d9SPmlyF+wzVxjXpOH7jVW5ae7PvrDst4kiAz6sX+E8btz0GB6oH12zC+aHRD945jdjF2Vg== + +"@esbuild/freebsd-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz#c1eb2bff03915f87c29cece4c1a7fa1f423b066e" + integrity sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ== + +"@esbuild/freebsd-x64@0.19.4": + version "0.19.4" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.4.tgz#873edc0f73e83a82432460ea59bf568c1e90b268" + integrity sha512-3sRbQ6W5kAiVQRBWREGJNd1YE7OgzS0AmOGjDmX/qZZecq8NFlQsQH0IfXjjmD0XtUYqr64e0EKNFjMUlPL3Cw== + +"@esbuild/freebsd-x64@0.19.6": + version "0.19.6" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.6.tgz#ae0230860e27df204a616671e028ff8fdffa009a" + integrity sha512-hn9qvkjHSIB5Z9JgCCjED6YYVGCNpqB7dEGavBdG6EjBD8S/UcNUIlGcB35NCkMETkdYwfZSvD9VoDJX6VeUVA== + +"@esbuild/linux-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz#bad4238bd8f4fc25b5a021280c770ab5fc3a02a0" + integrity sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA== + +"@esbuild/linux-arm64@0.19.4": + version "0.19.4" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.4.tgz#659f2fa988d448dbf5010b5cc583be757cc1b914" + integrity sha512-ZWmWORaPbsPwmyu7eIEATFlaqm0QGt+joRE9sKcnVUG3oBbr/KYdNE2TnkzdQwX6EDRdg/x8Q4EZQTXoClUqqA== + +"@esbuild/linux-arm64@0.19.6": + version "0.19.6" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.6.tgz#3042bc423a978deab44a72244b863f743fd9fda1" + integrity sha512-HQCOrk9XlH3KngASLaBfHpcoYEGUt829A9MyxaI8RMkfRA8SakG6YQEITAuwmtzFdEu5GU4eyhKcpv27dFaOBg== + +"@esbuild/linux-arm@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz#3e617c61f33508a27150ee417543c8ab5acc73b0" + integrity sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg== + +"@esbuild/linux-arm@0.19.4": + version "0.19.4" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.4.tgz#d5b13a7ec1f1c655ce05c8d319b3950797baee55" + integrity sha512-z/4ArqOo9EImzTi4b6Vq+pthLnepFzJ92BnofU1jgNlcVb+UqynVFdoXMCFreTK7FdhqAzH0vmdwW5373Hm9pg== + +"@esbuild/linux-arm@0.19.6": + version "0.19.6" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.6.tgz#50a537de609315979509120b0181882978294db1" + integrity sha512-G8IR5zFgpXad/Zp7gr7ZyTKyqZuThU6z1JjmRyN1vSF8j0bOlGzUwFSMTbctLAdd7QHpeyu0cRiuKrqK1ZTwvQ== + +"@esbuild/linux-ia32@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz#699391cccba9aee6019b7f9892eb99219f1570a7" + integrity sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA== + +"@esbuild/linux-ia32@0.19.4": + version "0.19.4" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.4.tgz#878cd8bf24c9847c77acdb5dd1b2ef6e4fa27a82" + integrity sha512-EGc4vYM7i1GRUIMqRZNCTzJh25MHePYsnQfKDexD8uPTCm9mK56NIL04LUfX2aaJ+C9vyEp2fJ7jbqFEYgO9lQ== + +"@esbuild/linux-ia32@0.19.6": + version "0.19.6" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.6.tgz#f99c48b597facf9cbf8e1a2522ce379b2ad7b0c4" + integrity sha512-22eOR08zL/OXkmEhxOfshfOGo8P69k8oKHkwkDrUlcB12S/sw/+COM4PhAPT0cAYW/gpqY2uXp3TpjQVJitz7w== + +"@esbuild/linux-loong64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz#e6fccb7aac178dd2ffb9860465ac89d7f23b977d" + integrity sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg== + +"@esbuild/linux-loong64@0.19.4": + version "0.19.4" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.4.tgz#df890499f6e566b7de3aa2361be6df2b8d5fa015" + integrity sha512-WVhIKO26kmm8lPmNrUikxSpXcgd6HDog0cx12BUfA2PkmURHSgx9G6vA19lrlQOMw+UjMZ+l3PpbtzffCxFDRg== + +"@esbuild/linux-loong64@0.19.6": + version "0.19.6" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.6.tgz#9fe79be31ce305564aa62da190f38e199d6d26b7" + integrity sha512-82RvaYAh/SUJyjWA8jDpyZCHQjmEggL//sC7F3VKYcBMumQjUL3C5WDl/tJpEiKtt7XrWmgjaLkrk205zfvwTA== + +"@esbuild/linux-mips64el@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz#eeff3a937de9c2310de30622a957ad1bd9183231" + integrity sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ== + +"@esbuild/linux-mips64el@0.19.4": + version "0.19.4" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.4.tgz#76eae4e88d2ce9f4f1b457e93892e802851b6807" + integrity sha512-keYY+Hlj5w86hNp5JJPuZNbvW4jql7c1eXdBUHIJGTeN/+0QFutU3GrS+c27L+NTmzi73yhtojHk+lr2+502Mw== + +"@esbuild/linux-mips64el@0.19.6": + version "0.19.6" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.6.tgz#5a922dad90fc8a83fd0631c136b46128153ffb6f" + integrity sha512-8tvnwyYJpR618vboIv2l8tK2SuK/RqUIGMfMENkeDGo3hsEIrpGldMGYFcWxWeEILe5Fi72zoXLmhZ7PR23oQA== + +"@esbuild/linux-ppc64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz#2f7156bde20b01527993e6881435ad79ba9599fb" + integrity sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA== + +"@esbuild/linux-ppc64@0.19.4": + version "0.19.4" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.4.tgz#c49032f4abbcfa3f747b543a106931fe3dce41ff" + integrity sha512-tQ92n0WMXyEsCH4m32S21fND8VxNiVazUbU4IUGVXQpWiaAxOBvtOtbEt3cXIV3GEBydYsY8pyeRMJx9kn3rvw== + +"@esbuild/linux-ppc64@0.19.6": + version "0.19.6" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.6.tgz#a7fccf924824999b301546843adb4f51051965e8" + integrity sha512-Qt+D7xiPajxVNk5tQiEJwhmarNnLPdjXAoA5uWMpbfStZB0+YU6a3CtbWYSy+sgAsnyx4IGZjWsTzBzrvg/fMA== + +"@esbuild/linux-riscv64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz#6628389f210123d8b4743045af8caa7d4ddfc7a6" + integrity sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A== + +"@esbuild/linux-riscv64@0.19.4": + version "0.19.4" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.4.tgz#0f815a090772138503ee0465a747e16865bf94b1" + integrity sha512-tRRBey6fG9tqGH6V75xH3lFPpj9E8BH+N+zjSUCnFOX93kEzqS0WdyJHkta/mmJHn7MBaa++9P4ARiU4ykjhig== + +"@esbuild/linux-riscv64@0.19.6": + version "0.19.6" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.6.tgz#41d2db11550662d6c03902d9d8d26b0ed5bb8d55" + integrity sha512-lxRdk0iJ9CWYDH1Wpnnnc640ajF4RmQ+w6oHFZmAIYu577meE9Ka/DCtpOrwr9McMY11ocbp4jirgGgCi7Ls/g== + +"@esbuild/linux-s390x@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz#255e81fb289b101026131858ab99fba63dcf0071" + integrity sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ== + +"@esbuild/linux-s390x@0.19.4": + version "0.19.4" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.4.tgz#8d2cca20cd4e7c311fde8701d9f1042664f8b92b" + integrity sha512-152aLpQqKZYhThiJ+uAM4PcuLCAOxDsCekIbnGzPKVBRUDlgaaAfaUl5NYkB1hgY6WN4sPkejxKlANgVcGl9Qg== + +"@esbuild/linux-s390x@0.19.6": + version "0.19.6" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.6.tgz#d7a843a2620e73c5c9d65c482e2fbddc7e0f7753" + integrity sha512-MopyYV39vnfuykHanRWHGRcRC3AwU7b0QY4TI8ISLfAGfK+tMkXyFuyT1epw/lM0pflQlS53JoD22yN83DHZgA== + +"@esbuild/linux-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz#c7690b3417af318a9b6f96df3031a8865176d338" + integrity sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w== + +"@esbuild/linux-x64@0.19.4": + version "0.19.4" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.4.tgz#f618bec2655de49bff91c588777e37b5e3169d4a" + integrity sha512-Mi4aNA3rz1BNFtB7aGadMD0MavmzuuXNTaYL6/uiYIs08U7YMPETpgNn5oue3ICr+inKwItOwSsJDYkrE9ekVg== + +"@esbuild/linux-x64@0.19.6": + version "0.19.6" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.6.tgz#d3f20f0c2bdaa1b9ed1c0df7db034771e7aa5234" + integrity sha512-UWcieaBzsN8WYbzFF5Jq7QULETPcQvlX7KL4xWGIB54OknXJjBO37sPqk7N82WU13JGWvmDzFBi1weVBajPovg== + +"@esbuild/netbsd-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz#30e8cd8a3dded63975e2df2438ca109601ebe0d1" + integrity sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A== + +"@esbuild/netbsd-x64@0.19.4": + version "0.19.4" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.4.tgz#7889744ca4d60f1538d62382b95e90a49687cef2" + integrity sha512-9+Wxx1i5N/CYo505CTT7T+ix4lVzEdz0uCoYGxM5JDVlP2YdDC1Bdz+Khv6IbqmisT0Si928eAxbmGkcbiuM/A== + +"@esbuild/netbsd-x64@0.19.6": + version "0.19.6" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.6.tgz#6108d7270599ee37cd57bb14e4516a83541885d5" + integrity sha512-EpWiLX0fzvZn1wxtLxZrEW+oQED9Pwpnh+w4Ffv8ZLuMhUoqR9q9rL4+qHW8F4Mg5oQEKxAoT0G+8JYNqCiR6g== + +"@esbuild/openbsd-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz#7812af31b205055874c8082ea9cf9ab0da6217ae" + integrity sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg== + +"@esbuild/openbsd-x64@0.19.4": + version "0.19.4" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.4.tgz#c3e436eb9271a423d2e8436fcb120e3fd90e2b01" + integrity sha512-MFsHleM5/rWRW9EivFssop+OulYVUoVcqkyOkjiynKBCGBj9Lihl7kh9IzrreDyXa4sNkquei5/DTP4uCk25xw== + +"@esbuild/openbsd-x64@0.19.6": + version "0.19.6" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.6.tgz#b1b5aaa2c9028e90a2bef6774a9c67451f53f164" + integrity sha512-fFqTVEktM1PGs2sLKH4M5mhAVEzGpeZJuasAMRnvDZNCV0Cjvm1Hu35moL2vC0DOrAQjNTvj4zWrol/lwQ8Deg== + +"@esbuild/sunos-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz#d5c275c3b4e73c9b0ecd38d1ca62c020f887ab9d" + integrity sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ== + +"@esbuild/sunos-x64@0.19.4": + version "0.19.4" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.4.tgz#f63f5841ba8c8c1a1c840d073afc99b53e8ce740" + integrity sha512-6Xq8SpK46yLvrGxjp6HftkDwPP49puU4OF0hEL4dTxqCbfx09LyrbUj/D7tmIRMj5D5FCUPksBbxyQhp8tmHzw== + +"@esbuild/sunos-x64@0.19.6": + version "0.19.6" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.6.tgz#b51b648cea77c62b1934a4fdcfee7aaa9de174cb" + integrity sha512-M+XIAnBpaNvaVAhbe3uBXtgWyWynSdlww/JNZws0FlMPSBy+EpatPXNIlKAdtbFVII9OpX91ZfMb17TU3JKTBA== + +"@esbuild/win32-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz#73bc7f5a9f8a77805f357fab97f290d0e4820ac9" + integrity sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg== + +"@esbuild/win32-arm64@0.19.4": + version "0.19.4" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.4.tgz#80be69cec92da4da7781cf7a8351b95cc5a236b0" + integrity sha512-PkIl7Jq4mP6ke7QKwyg4fD4Xvn8PXisagV/+HntWoDEdmerB2LTukRZg728Yd1Fj+LuEX75t/hKXE2Ppk8Hh1w== + +"@esbuild/win32-arm64@0.19.6": + version "0.19.6" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.6.tgz#34e5665f239047c302c8d153406c87db22afd58a" + integrity sha512-2DchFXn7vp/B6Tc2eKdTsLzE0ygqKkNUhUBCNtMx2Llk4POIVMUq5rUYjdcedFlGLeRe1uLCpVvCmE+G8XYybA== + +"@esbuild/win32-ia32@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz#ec93cbf0ef1085cc12e71e0d661d20569ff42102" + integrity sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g== + +"@esbuild/win32-ia32@0.19.4": + version "0.19.4" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.4.tgz#15dc0ed83d2794872b05d8edc4a358fecf97eb54" + integrity sha512-ga676Hnvw7/ycdKB53qPusvsKdwrWzEyJ+AtItHGoARszIqvjffTwaaW3b2L6l90i7MO9i+dlAW415INuRhSGg== + +"@esbuild/win32-ia32@0.19.6": + version "0.19.6" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.6.tgz#f7aaebe325e67f44c0a738e80a98221504677b4a" + integrity sha512-PBo/HPDQllyWdjwAVX+Gl2hH0dfBydL97BAH/grHKC8fubqp02aL4S63otZ25q3sBdINtOBbz1qTZQfXbP4VBg== + +"@esbuild/win32-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz#786c5f41f043b07afb1af37683d7c33668858f6d" + integrity sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ== + +"@esbuild/win32-x64@0.19.4": + version "0.19.4" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.4.tgz#d46a6e220a717f31f39ae80f49477cc3220be0f0" + integrity sha512-HP0GDNla1T3ZL8Ko/SHAS2GgtjOg+VmWnnYLhuTksr++EnduYB0f3Y2LzHsUwb2iQ13JGoY6G3R8h6Du/WG6uA== + +"@esbuild/win32-x64@0.19.6": + version "0.19.6" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.6.tgz#7134e5dea1f5943b013e96fc34f9638a5f3d7e3e" + integrity sha512-OE7yIdbDif2kKfrGa+V0vx/B3FJv2L4KnIiLlvtibPyO9UkgO3rzYE0HhpREo2vmJ1Ixq1zwm9/0er+3VOSZJA== + +"@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" + integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== + dependencies: + eslint-visitor-keys "^3.3.0" + +"@eslint-community/regexpp@^4.4.0", "@eslint-community/regexpp@^4.6.1": + 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", "@eslint/eslintrc@^2.1.3": + version "2.1.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.3.tgz#797470a75fe0fbd5a53350ee715e85e87baff22d" + integrity sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA== + 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" + +"@eslint/js@8.48.0": + version "8.48.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.48.0.tgz#642633964e217905436033a2bd08bf322849b7fb" + integrity sha512-ZSjtmelB7IJfWD2Fvb7+Z+ChTIKWq6kjda95fLcQKNS5aheVHn4IkfgRQE3sIIzTcSLwLcLZUD9UBt+V7+h+Pw== + +"@eslint/js@8.54.0": + version "8.54.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.54.0.tgz#4fab9a2ff7860082c304f750e94acd644cf984cf" + integrity sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ== + +"@ethereum-waffle/chai@^3.4.4": + version "3.4.4" + resolved "https://registry.yarnpkg.com/@ethereum-waffle/chai/-/chai-3.4.4.tgz#16c4cc877df31b035d6d92486dfdf983df9138ff" + integrity sha512-/K8czydBtXXkcM9X6q29EqEkc5dN3oYenyH2a9hF7rGAApAJUpH8QBtojxOY/xQ2up5W332jqgxwp0yPiYug1g== + dependencies: + "@ethereum-waffle/provider" "^3.4.4" + ethers "^5.5.2" + +"@ethereum-waffle/compiler@^3.4.4": + version "3.4.4" + resolved "https://registry.yarnpkg.com/@ethereum-waffle/compiler/-/compiler-3.4.4.tgz#d568ee0f6029e68b5c645506079fbf67d0dfcf19" + integrity sha512-RUK3axJ8IkD5xpWjWoJgyHclOeEzDLQFga6gKpeGxiS/zBu+HB0W2FvsrrLalTFIaPw/CGYACRBSIxqiCqwqTQ== + dependencies: + "@resolver-engine/imports" "^0.3.3" + "@resolver-engine/imports-fs" "^0.3.3" + "@typechain/ethers-v5" "^2.0.0" + "@types/mkdirp" "^0.5.2" + "@types/node-fetch" "^2.5.5" + ethers "^5.0.1" + mkdirp "^0.5.1" + node-fetch "^2.6.1" + solc "^0.6.3" + ts-generator "^0.1.1" + typechain "^3.0.0" + +"@ethereum-waffle/ens@^3.4.4": + version "3.4.4" + resolved "https://registry.yarnpkg.com/@ethereum-waffle/ens/-/ens-3.4.4.tgz#db97ea2c9decbb70b9205d53de2ccbd6f3182ba1" + integrity sha512-0m4NdwWxliy3heBYva1Wr4WbJKLnwXizmy5FfSSr5PMbjI7SIGCdCB59U7/ZzY773/hY3bLnzLwvG5mggVjJWg== + dependencies: + "@ensdomains/ens" "^0.4.4" + "@ensdomains/resolver" "^0.2.4" + ethers "^5.5.2" + +"@ethereum-waffle/mock-contract@^3.4.4": + version "3.4.4" + resolved "https://registry.yarnpkg.com/@ethereum-waffle/mock-contract/-/mock-contract-3.4.4.tgz#fc6ffa18813546f4950a69f5892d4dd54b2c685a" + integrity sha512-Mp0iB2YNWYGUV+VMl5tjPsaXKbKo8MDH9wSJ702l9EBjdxFf/vBvnMBAC1Fub1lLtmD0JHtp1pq+mWzg/xlLnA== + dependencies: + "@ethersproject/abi" "^5.5.0" + ethers "^5.5.2" + +"@ethereum-waffle/provider@^3.4.4": + version "3.4.4" + resolved "https://registry.yarnpkg.com/@ethereum-waffle/provider/-/provider-3.4.4.tgz#398fc1f7eb91cc2df7d011272eacba8af0c7fffb" + integrity sha512-GK8oKJAM8+PKy2nK08yDgl4A80mFuI8zBkE0C9GqTRYQqvuxIyXoLmJ5NZU9lIwyWVv5/KsoA11BgAv2jXE82g== + dependencies: + "@ethereum-waffle/ens" "^3.4.4" + ethers "^5.5.2" + ganache-core "^2.13.2" + patch-package "^6.2.2" + postinstall-postinstall "^2.1.0" + +"@ethereumjs/common@2.6.5", "@ethereumjs/common@^2.6.4": + 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/rlp@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@ethereumjs/rlp/-/rlp-4.0.1.tgz#626fabfd9081baab3d0a3074b0c7ecaf674aaa41" + integrity sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw== + +"@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.yarnpkg.com/@ethereumjs/util/-/util-8.1.0.tgz#299df97fb6b034e0577ce9f94c7d9d1004409ed4" + integrity sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA== + dependencies: + "@ethereumjs/rlp" "^4.0.1" + ethereum-cryptography "^2.0.0" + micro-ftch "^0.3.1" + +"@ethersproject/abi@5.0.0-beta.153": + version "5.0.0-beta.153" + resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.0.0-beta.153.tgz#43a37172b33794e4562999f6e2d555b7599a8eee" + integrity sha512-aXweZ1Z7vMNzJdLpR1CZUAIgnwjrZeUSvN9syCwlBaEBUFJmFY+HHnfuTI5vIhVs/mRkfJVrbEyl51JZQqyjAg== + 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/abi@5.0.7": + version "5.0.7" + resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.0.7.tgz#79e52452bd3ca2956d0e1c964207a58ad1a0ee7b" + integrity sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw== + dependencies: + "@ethersproject/address" "^5.0.4" + "@ethersproject/bignumber" "^5.0.7" + "@ethersproject/bytes" "^5.0.4" + "@ethersproject/constants" "^5.0.4" + "@ethersproject/hash" "^5.0.4" + "@ethersproject/keccak256" "^5.0.3" + "@ethersproject/logger" "^5.0.5" + "@ethersproject/properties" "^5.0.3" + "@ethersproject/strings" "^5.0.4" + +"@ethersproject/abi@5.7.0", "@ethersproject/abi@^5.1.2", "@ethersproject/abi@^5.5.0", "@ethersproject/abi@^5.6.3", "@ethersproject/abi@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.7.0.tgz#b3f3e045bbbeed1af3947335c247ad625a44e449" + integrity sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA== + 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" + +"@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" + integrity sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw== + 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" + +"@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" + integrity sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ== + 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" + +"@ethersproject/address@5.7.0", "@ethersproject/address@>=5.0.0-beta.128", "@ethersproject/address@^5.0.2", "@ethersproject/address@^5.0.4", "@ethersproject/address@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.7.0.tgz#19b56c4d74a3b0a46bfdbb6cfcc0a153fc697f37" + integrity sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA== + 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" + +"@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" + integrity sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ== + dependencies: + "@ethersproject/bytes" "^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" + integrity sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + +"@ethersproject/bignumber@5.7.0", "@ethersproject/bignumber@>=5.0.0-beta.130", "@ethersproject/bignumber@^5.0.7", "@ethersproject/bignumber@^5.7.0": + version "5.7.0" + 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.0.0-beta.129", "@ethersproject/bytes@^5.0.4", "@ethersproject/bytes@^5.7.0": + version "5.7.0" + 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.0.0-beta.128", "@ethersproject/constants@^5.0.4", "@ethersproject/constants@^5.7.0": + version "5.7.0" + 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": + version "5.7.0" + 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" + "@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" + +"@ethersproject/hash@5.7.0", "@ethersproject/hash@>=5.0.0-beta.128", "@ethersproject/hash@^5.0.4", "@ethersproject/hash@^5.7.0": + version "5.7.0" + 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" + "@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" + +"@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" + integrity sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg== + 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/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" + integrity sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g== + 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/keccak256@5.7.0", "@ethersproject/keccak256@>=5.0.0-beta.127", "@ethersproject/keccak256@^5.0.3", "@ethersproject/keccak256@^5.7.0": + version "5.7.0" + 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.0.0-beta.129", "@ethersproject/logger@^5.0.5", "@ethersproject/logger@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.7.0.tgz#6ce9ae168e74fecf287be17062b590852c311892" + integrity sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig== + +"@ethersproject/networks@5.7.1", "@ethersproject/networks@^5.7.0": + version "5.7.1" + 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": + version "5.7.0" + 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.0.0-beta.131", "@ethersproject/properties@^5.0.3", "@ethersproject/properties@^5.7.0": + version "5.7.0" + 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.7.2", "@ethersproject/providers@^5.7.1", "@ethersproject/providers@^5.7.2": + version "5.7.2" + 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" + "@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/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" + integrity sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^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" + 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": + version "5.7.0" + 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": + version "5.7.0" + 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" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + bn.js "^5.2.1" + elliptic "6.5.4" + hash.js "1.1.7" + +"@ethersproject/solidity@5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.7.0.tgz#5e9c911d8a2acce2a5ebb48a5e2e0af20b631cb8" + integrity sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA== + 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/strings@5.7.0", "@ethersproject/strings@>=5.0.0-beta.130", "@ethersproject/strings@^5.0.4", "@ethersproject/strings@^5.7.0": + version "5.7.0" + 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.7.0", "@ethersproject/transactions@^5.0.0-beta.135", "@ethersproject/transactions@^5.6.2", "@ethersproject/transactions@^5.7.0": + version "5.7.0" + 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" + "@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/units@5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.7.0.tgz#637b563d7e14f42deeee39245275d477aae1d8b1" + integrity sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/wallet@5.7.0": + version "5.7.0" + 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" + "@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/web@5.7.1", "@ethersproject/web@^5.7.0": + version "5.7.1" + resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.7.1.tgz#de1f285b373149bee5928f4eb7bcb87ee5fbb4ae" + integrity sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w== + 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/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" + integrity sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA== + 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" + +"@fastify/accept-negotiator@^1.0.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@fastify/accept-negotiator/-/accept-negotiator-1.1.0.tgz#c1c66b3b771c09742a54dd5bc87c582f6b0630ff" + integrity sha512-OIHZrb2ImZ7XG85HXOONLcJWGosv7sIvM2ifAPQVhg9Lv7qdmMBNVaai4QTdyuaqbKM5eO6sLSQOYI7wEQeCJQ== + +"@fastify/ajv-compiler@^3.5.0": + version "3.5.0" + resolved "https://registry.yarnpkg.com/@fastify/ajv-compiler/-/ajv-compiler-3.5.0.tgz#459bff00fefbf86c96ec30e62e933d2379e46670" + integrity sha512-ebbEtlI7dxXF5ziNdr05mOY8NnDiPB1XvAlLHctRt/Rc+C3LCOVW5imUVX+mhvUhnNzmPBHewUkOFgGlCxgdAA== + dependencies: + ajv "^8.11.0" + ajv-formats "^2.1.1" + fast-uri "^2.0.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== + +"@fastify/deepmerge@^1.0.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@fastify/deepmerge/-/deepmerge-1.3.0.tgz#8116858108f0c7d9fd460d05a7d637a13fe3239a" + integrity sha512-J8TOSBq3SoZbDhM9+R/u77hP93gz/rajSA+K2kGyijPpORPWUXHUpTaleoj+92As0S9uPRP7Oi8IqMf0u+ro6A== + +"@fastify/error@^3.0.0": + version "3.4.1" + resolved "https://registry.yarnpkg.com/@fastify/error/-/error-3.4.1.tgz#b14bb4cac3dd4ec614becbc643d1511331a6425c" + integrity sha512-wWSvph+29GR783IhmvdwWnN4bUxTD01Vm5Xad4i7i1VuAOItLvbPAb69sb0IQ2N57yprvhNIwAP5B6xfKTmjmQ== + +"@fastify/fast-json-stringify-compiler@^4.3.0": + version "4.3.0" + resolved "https://registry.yarnpkg.com/@fastify/fast-json-stringify-compiler/-/fast-json-stringify-compiler-4.3.0.tgz#5df89fa4d1592cbb8780f78998355feb471646d5" + integrity sha512-aZAXGYo6m22Fk1zZzEUKBvut/CIIQe/BapEORnxiD5Qr0kPHqqI69NtEMCme74h+at72sPhbkb4ZrLd1W3KRLA== + dependencies: + fast-json-stringify "^5.7.0" + +"@fastify/send@^2.0.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@fastify/send/-/send-2.1.0.tgz#1aa269ccb4b0940a2dadd1f844443b15d8224ea0" + integrity sha512-yNYiY6sDkexoJR0D8IDy3aRP3+L4wdqCpvx5WP+VtEU58sn7USmKynBzDQex5X42Zzvw2gNzzYgP90UfWShLFA== + dependencies: + "@lukeed/ms" "^2.0.1" + escape-html "~1.0.3" + fast-decode-uri-component "^1.0.1" + http-errors "2.0.0" + mime "^3.0.0" + +"@fastify/static@6.10.2": + version "6.10.2" + resolved "https://registry.yarnpkg.com/@fastify/static/-/static-6.10.2.tgz#dfaaccfa191a4ba85ea8e3926853c9e6d979e67f" + integrity sha512-UoaMvIHSBLCZBYOVZwFRYqX2ufUhd7FFMYGDeSf0Z+D8jhYtwljjmuQGuanUP8kS4y/ZEV1a8mfLha3zNwsnnQ== + dependencies: + "@fastify/accept-negotiator" "^1.0.0" + "@fastify/send" "^2.0.0" + content-disposition "^0.5.3" + fastify-plugin "^4.0.0" + glob "^8.0.1" + p-limit "^3.1.0" + readable-stream "^4.0.0" + +"@float-capital/float-subgraph-uncrashable@^0.0.0-alpha.4": + version "0.0.0-internal-testing.5" + resolved "https://registry.yarnpkg.com/@float-capital/float-subgraph-uncrashable/-/float-subgraph-uncrashable-0.0.0-internal-testing.5.tgz#060f98440f6e410812766c5b040952d2d02e2b73" + integrity sha512-yZ0H5e3EpAYKokX/AbtplzlvSxEJY7ZfpvQyDzyODkks0hakAAlDG6fQu1SlDJMWorY7bbq1j7fCiFeTWci6TA== + dependencies: + "@rescript/std" "9.0.0" + graphql "^16.6.0" + graphql-import-node "^0.0.5" + js-yaml "^4.1.0" + +"@floating-ui/core@^1.1.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.5.0.tgz#5c05c60d5ae2d05101c3021c1a2a350ddc027f8c" + integrity sha512-kK1h4m36DQ0UHGj5Ah4db7R0rHemTqqO0QLvUqi1/mUUp3LuAWbWxdxSIf/XsnH9VS6rRVPLJCncjRzUvyCLXg== + dependencies: + "@floating-ui/utils" "^0.1.3" + +"@floating-ui/dom@~1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.1.1.tgz#66aa747e15894910869bf9144fc54fc7d6e9f975" + integrity sha512-TpIO93+DIujg3g7SykEAGZMDtbJRrmnYRCNYSjJlvIbGhBjRSNTLVbNeDQBrzy9qDgUbiWdc7KA0uZHZ2tJmiw== + dependencies: + "@floating-ui/core" "^1.1.0" + +"@floating-ui/utils@^0.1.3": + version "0.1.6" + resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.1.6.tgz#22958c042e10b67463997bd6ea7115fe28cbcaf9" + integrity sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A== + +"@graphprotocol/graph-cli@^0.46.1": + version "0.46.1" + resolved "https://registry.yarnpkg.com/@graphprotocol/graph-cli/-/graph-cli-0.46.1.tgz#9e63bcc1bc085abab804862ecb25e689ac2077fd" + integrity sha512-594BiH2m9gThP1xdvxguVzvVlOb1KzJyVdh2F4dV78NPfMRFY2fe1nakmadKcewc72VVLXNgfdBu/J4IPfo0eg== + dependencies: + "@float-capital/float-subgraph-uncrashable" "^0.0.0-alpha.4" + "@oclif/core" "2.8.0" + "@whatwg-node/fetch" "^0.8.4" + assemblyscript "0.19.23" + binary-install-raw "0.0.13" + chalk "3.0.0" + chokidar "3.5.3" + debug "4.3.4" + docker-compose "0.23.19" + dockerode "2.5.8" + fs-extra "9.1.0" + glob "9.3.4" + gluegun "https://github.com/edgeandnode/gluegun#v4.3.1-pin-colors-dep" + graphql "15.5.0" + immutable "4.2.1" + ipfs-http-client "55.0.0" + jayson "4.0.0" + js-yaml "3.14.1" + prettier "1.19.1" + request "2.88.2" + semver "7.3.8" + sync-request "6.1.0" + tmp-promise "3.0.3" + web3-eth-abi "1.7.0" + which "2.0.2" + yaml "1.10.2" + +"@graphprotocol/graph-ts@^0.29.3": + version "0.29.3" + resolved "https://registry.yarnpkg.com/@graphprotocol/graph-ts/-/graph-ts-0.29.3.tgz#f0a664790e966f5fb9bce317a8861e84ec1f3394" + integrity sha512-FXBLGlunOSwjiUXYEz1J9J/I2D/myldyib/9v0R+gn/NJaYqUkXD39UmIuRxqj9cBzB/FYojHzoHidIG5nYZDw== + dependencies: + assemblyscript "0.19.10" + +"@graphql-codegen/cli@^3.3.0": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@graphql-codegen/cli/-/cli-3.3.1.tgz#103e7a2263126fdde168a1ce623fc2bdc05352f0" + integrity sha512-4Es8Y9zFeT0Zx2qRL7L3qXDbbqvXK6aID+8v8lP6gaYD+uWx3Jd4Hsq5vxwVBR+6flm0BW/C85Qm0cvmT7O6LA== + dependencies: + "@babel/generator" "^7.18.13" + "@babel/template" "^7.18.10" + "@babel/types" "^7.18.13" + "@graphql-codegen/core" "^3.1.0" + "@graphql-codegen/plugin-helpers" "^4.2.0" + "@graphql-tools/apollo-engine-loader" "^7.3.6" + "@graphql-tools/code-file-loader" "^7.3.17" + "@graphql-tools/git-loader" "^7.2.13" + "@graphql-tools/github-loader" "^7.3.20" + "@graphql-tools/graphql-file-loader" "^7.5.0" + "@graphql-tools/json-file-loader" "^7.4.1" + "@graphql-tools/load" "^7.8.0" + "@graphql-tools/prisma-loader" "^7.2.49" + "@graphql-tools/url-loader" "^7.13.2" + "@graphql-tools/utils" "^9.0.0" + "@parcel/watcher" "^2.1.0" + "@whatwg-node/fetch" "^0.8.0" + chalk "^4.1.0" + cosmiconfig "^7.0.0" + debounce "^1.2.0" + detect-indent "^6.0.0" + graphql-config "^4.5.0" + inquirer "^8.0.0" + is-glob "^4.0.1" + jiti "^1.17.1" + json-to-pretty-yaml "^1.2.2" + listr2 "^4.0.5" + log-symbols "^4.0.0" + micromatch "^4.0.5" + shell-quote "^1.7.3" + string-env-interpolation "^1.0.1" + ts-log "^2.2.3" + tslib "^2.4.0" + yaml "^1.10.0" + yargs "^17.0.0" + +"@graphql-codegen/core@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@graphql-codegen/core/-/core-3.1.0.tgz#ad859d52d509a4eb2ebe5aabba6543a628fb181b" + integrity sha512-DH1/yaR7oJE6/B+c6ZF2Tbdh7LixF1K8L+8BoSubjNyQ8pNwR4a70mvc1sv6H7qgp6y1bPQ9tKE+aazRRshysw== + dependencies: + "@graphql-codegen/plugin-helpers" "^4.1.0" + "@graphql-tools/schema" "^9.0.0" + "@graphql-tools/utils" "^9.1.1" + tslib "~2.5.0" + +"@graphql-codegen/plugin-helpers@^2.7.2": + version "2.7.2" + resolved "https://registry.yarnpkg.com/@graphql-codegen/plugin-helpers/-/plugin-helpers-2.7.2.tgz#6544f739d725441c826a8af6a49519f588ff9bed" + integrity sha512-kln2AZ12uii6U59OQXdjLk5nOlh1pHis1R98cDZGFnfaiAbX9V3fxcZ1MMJkB7qFUymTALzyjZoXXdyVmPMfRg== + dependencies: + "@graphql-tools/utils" "^8.8.0" + change-case-all "1.0.14" + common-tags "1.8.2" + import-from "4.0.0" + lodash "~4.17.0" + tslib "~2.4.0" + +"@graphql-codegen/plugin-helpers@^3.0.0": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@graphql-codegen/plugin-helpers/-/plugin-helpers-3.1.2.tgz#69a2e91178f478ea6849846ade0a59a844d34389" + integrity sha512-emOQiHyIliVOIjKVKdsI5MXj312zmRDwmHpyUTZMjfpvxq/UVAHUJIVdVf+lnjjrI+LXBTgMlTWTgHQfmICxjg== + dependencies: + "@graphql-tools/utils" "^9.0.0" + change-case-all "1.0.15" + common-tags "1.8.2" + import-from "4.0.0" + lodash "~4.17.0" + tslib "~2.4.0" + +"@graphql-codegen/plugin-helpers@^4.1.0", "@graphql-codegen/plugin-helpers@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@graphql-codegen/plugin-helpers/-/plugin-helpers-4.2.0.tgz#8324914d0f99162a223cfa01796cdd6be972d2ae" + integrity sha512-THFTCfg+46PXlXobYJ/OoCX6pzjI+9woQqCjdyKtgoI0tn3Xq2HUUCiidndxUpEYVrXb5pRiRXb7b/ZbMQqD0A== + dependencies: + "@graphql-tools/utils" "^9.0.0" + change-case-all "1.0.15" + common-tags "1.8.2" + import-from "4.0.0" + lodash "~4.17.0" + tslib "~2.5.0" + +"@graphql-codegen/schema-ast@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@graphql-codegen/schema-ast/-/schema-ast-3.0.1.tgz#37b458bb57b95715a9eb4259341c856dae2a461d" + integrity sha512-rTKTi4XiW4QFZnrEqetpiYEWVsOFNoiR/v3rY9mFSttXFbIwNXPme32EspTiGWmEEdHY8UuTDtZN3vEcs/31zw== + dependencies: + "@graphql-codegen/plugin-helpers" "^4.1.0" + "@graphql-tools/utils" "^9.0.0" + tslib "~2.5.0" + +"@graphql-codegen/typescript-graphql-request@^4.5.9": + version "4.5.9" + resolved "https://registry.yarnpkg.com/@graphql-codegen/typescript-graphql-request/-/typescript-graphql-request-4.5.9.tgz#d8a9488b7419cabf2ca98ae3936e82b9d244f2e9" + integrity sha512-Vtv5qymUXcR4UFdHOlJHzK5TN+CZUwMwFDGb3n4Gjcr4yln1BWbUb7DXgD0GHzpXwDIj5G2XmJnFtr0jihBfrg== + dependencies: + "@graphql-codegen/plugin-helpers" "^3.0.0" + "@graphql-codegen/visitor-plugin-common" "2.13.1" + auto-bind "~4.0.0" + tslib "~2.4.0" + +"@graphql-codegen/typescript-operations@^3.0.3": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@graphql-codegen/typescript-operations/-/typescript-operations-3.0.4.tgz#60163c07f0ef73655779ece450d02c1172c44027" + integrity sha512-6yE2OL2+WJ1vd5MwFEGXpaxsFGzjAGUytPVHDML3Bi3TwP1F3lnQlIko4untwvHW0JhZEGQ7Ck30H9HjcxpdKA== + dependencies: + "@graphql-codegen/plugin-helpers" "^4.2.0" + "@graphql-codegen/typescript" "^3.0.4" + "@graphql-codegen/visitor-plugin-common" "3.1.1" + auto-bind "~4.0.0" + tslib "~2.5.0" + +"@graphql-codegen/typescript@^3.0.3", "@graphql-codegen/typescript@^3.0.4": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@graphql-codegen/typescript/-/typescript-3.0.4.tgz#e12dc106a2722ebc7d18556980ccf47fa9d0805f" + integrity sha512-x4O47447DZrWNtE/l5CU9QzzW4m1RbmCEdijlA3s2flG/y1Ckqdemob4CWfilSm5/tZ3w1junVDY616RDTSvZw== + dependencies: + "@graphql-codegen/plugin-helpers" "^4.2.0" + "@graphql-codegen/schema-ast" "^3.0.1" + "@graphql-codegen/visitor-plugin-common" "3.1.1" + auto-bind "~4.0.0" + tslib "~2.5.0" + +"@graphql-codegen/visitor-plugin-common@2.13.1": + version "2.13.1" + resolved "https://registry.yarnpkg.com/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-2.13.1.tgz#2228660f6692bcdb96b1f6d91a0661624266b76b" + integrity sha512-mD9ufZhDGhyrSaWQGrU1Q1c5f01TeWtSWy/cDwXYjJcHIj1Y/DG2x0tOflEfCvh5WcnmHNIw4lzDsg1W7iFJEg== + dependencies: + "@graphql-codegen/plugin-helpers" "^2.7.2" + "@graphql-tools/optimize" "^1.3.0" + "@graphql-tools/relay-operation-optimizer" "^6.5.0" + "@graphql-tools/utils" "^8.8.0" + auto-bind "~4.0.0" + change-case-all "1.0.14" + dependency-graph "^0.11.0" + graphql-tag "^2.11.0" + parse-filepath "^1.0.2" + tslib "~2.4.0" + +"@graphql-codegen/visitor-plugin-common@3.1.1": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-3.1.1.tgz#50c2aa3c537a805ce68d2f115d0a9811b151428c" + integrity sha512-uAfp+zu/009R3HUAuTK2AamR1bxIltM6rrYYI6EXSmkM3rFtFsLTuJhjUDj98HcUCszJZrADppz8KKLGRUVlNg== + dependencies: + "@graphql-codegen/plugin-helpers" "^4.2.0" + "@graphql-tools/optimize" "^1.3.0" + "@graphql-tools/relay-operation-optimizer" "^6.5.0" + "@graphql-tools/utils" "^9.0.0" + auto-bind "~4.0.0" + change-case-all "1.0.15" + dependency-graph "^0.11.0" + graphql-tag "^2.11.0" + parse-filepath "^1.0.2" + tslib "~2.5.0" + +"@graphql-tools/apollo-engine-loader@^7.3.6": + version "7.3.26" + resolved "https://registry.yarnpkg.com/@graphql-tools/apollo-engine-loader/-/apollo-engine-loader-7.3.26.tgz#91e54460d5579933e42a2010b8688c3459c245d8" + integrity sha512-h1vfhdJFjnCYn9b5EY1Z91JTF0KB3hHVJNQIsiUV2mpQXZdeOXQoaWeYEKaiI5R6kwBw5PP9B0fv3jfUIG8LyQ== + dependencies: + "@ardatan/sync-fetch" "^0.0.1" + "@graphql-tools/utils" "^9.2.1" + "@whatwg-node/fetch" "^0.8.0" + tslib "^2.4.0" + +"@graphql-tools/batch-execute@^8.5.22": + version "8.5.22" + resolved "https://registry.yarnpkg.com/@graphql-tools/batch-execute/-/batch-execute-8.5.22.tgz#a742aa9d138fe794e786d8fb6429665dc7df5455" + integrity sha512-hcV1JaY6NJQFQEwCKrYhpfLK8frSXDbtNMoTur98u10Cmecy1zrqNKSqhEyGetpgHxaJRqszGzKeI3RuroDN6A== + dependencies: + "@graphql-tools/utils" "^9.2.1" + dataloader "^2.2.2" + tslib "^2.4.0" + value-or-promise "^1.0.12" + +"@graphql-tools/code-file-loader@^7.3.17": + version "7.3.23" + resolved "https://registry.yarnpkg.com/@graphql-tools/code-file-loader/-/code-file-loader-7.3.23.tgz#33793f9a1f8e74981f8ae6ec4ab7061f9713db15" + integrity sha512-8Wt1rTtyTEs0p47uzsPJ1vAtfAx0jmxPifiNdmo9EOCuUPyQGEbMaik/YkqZ7QUFIEYEQu+Vgfo8tElwOPtx5Q== + dependencies: + "@graphql-tools/graphql-tag-pluck" "7.5.2" + "@graphql-tools/utils" "^9.2.1" + globby "^11.0.3" + tslib "^2.4.0" + unixify "^1.0.0" + +"@graphql-tools/delegate@^9.0.31": + version "9.0.35" + resolved "https://registry.yarnpkg.com/@graphql-tools/delegate/-/delegate-9.0.35.tgz#94683f4bcec63520b4a6c8b2abf2e2e9324ea4f1" + integrity sha512-jwPu8NJbzRRMqi4Vp/5QX1vIUeUPpWmlQpOkXQD2r1X45YsVceyUUBnktCrlJlDB4jPRVy7JQGwmYo3KFiOBMA== + dependencies: + "@graphql-tools/batch-execute" "^8.5.22" + "@graphql-tools/executor" "^0.0.20" + "@graphql-tools/schema" "^9.0.19" + "@graphql-tools/utils" "^9.2.1" + dataloader "^2.2.2" + tslib "^2.5.0" + value-or-promise "^1.0.12" + +"@graphql-tools/executor-graphql-ws@^0.0.14": + version "0.0.14" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor-graphql-ws/-/executor-graphql-ws-0.0.14.tgz#e0f53fc4cfc8a06cc461b2bc1edb4bb9a8e837ed" + integrity sha512-P2nlkAsPZKLIXImFhj0YTtny5NQVGSsKnhi7PzXiaHSXc6KkzqbWZHKvikD4PObanqg+7IO58rKFpGXP7eeO+w== + dependencies: + "@graphql-tools/utils" "^9.2.1" + "@repeaterjs/repeater" "3.0.4" + "@types/ws" "^8.0.0" + graphql-ws "5.12.1" + isomorphic-ws "5.0.0" + tslib "^2.4.0" + ws "8.13.0" + +"@graphql-tools/executor-http@^0.1.7", "@graphql-tools/executor-http@^0.1.9": + version "0.1.10" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor-http/-/executor-http-0.1.10.tgz#faf48e18e62a925796c9653c2f50cf2095bc8e6f" + integrity sha512-hnAfbKv0/lb9s31LhWzawQ5hghBfHS+gYWtqxME6Rl0Aufq9GltiiLBcl7OVVOnkLF0KhwgbYP1mB5VKmgTGpg== + dependencies: + "@graphql-tools/utils" "^9.2.1" + "@repeaterjs/repeater" "^3.0.4" + "@whatwg-node/fetch" "^0.8.1" + dset "^3.1.2" + extract-files "^11.0.0" + meros "^1.2.1" + tslib "^2.4.0" + value-or-promise "^1.0.12" + +"@graphql-tools/executor-legacy-ws@^0.0.11": + version "0.0.11" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor-legacy-ws/-/executor-legacy-ws-0.0.11.tgz#a1e12be8279e92a363a23d4105461a34cd9e389e" + integrity sha512-4ai+NnxlNfvIQ4c70hWFvOZlSUN8lt7yc+ZsrwtNFbFPH/EroIzFMapAxM9zwyv9bH38AdO3TQxZ5zNxgBdvUw== + dependencies: + "@graphql-tools/utils" "^9.2.1" + "@types/ws" "^8.0.0" + isomorphic-ws "5.0.0" + tslib "^2.4.0" + ws "8.13.0" + +"@graphql-tools/executor@^0.0.20": + version "0.0.20" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor/-/executor-0.0.20.tgz#d51d159696e839522dd49d936636af251670e425" + integrity sha512-GdvNc4vszmfeGvUqlcaH1FjBoguvMYzxAfT6tDd4/LgwymepHhinqLNA5otqwVLW+JETcDaK7xGENzFomuE6TA== + dependencies: + "@graphql-tools/utils" "^9.2.1" + "@graphql-typed-document-node/core" "3.2.0" + "@repeaterjs/repeater" "^3.0.4" + tslib "^2.4.0" + value-or-promise "^1.0.12" + +"@graphql-tools/git-loader@^7.2.13": + version "7.3.0" + resolved "https://registry.yarnpkg.com/@graphql-tools/git-loader/-/git-loader-7.3.0.tgz#ca10c17d4f58c4592432d9d2ac1c2b393aebad16" + integrity sha512-gcGAK+u16eHkwsMYqqghZbmDquh8QaO24Scsxq+cVR+vx1ekRlsEiXvu+yXVDbZdcJ6PBIbeLcQbEu+xhDLmvQ== + dependencies: + "@graphql-tools/graphql-tag-pluck" "7.5.2" + "@graphql-tools/utils" "^9.2.1" + is-glob "4.0.3" + micromatch "^4.0.4" + tslib "^2.4.0" + unixify "^1.0.0" + +"@graphql-tools/github-loader@^7.3.20": + version "7.3.28" + resolved "https://registry.yarnpkg.com/@graphql-tools/github-loader/-/github-loader-7.3.28.tgz#a7166b136e8442bd8b3ab943ad3b66c84bcabfcf" + integrity sha512-OK92Lf9pmxPQvjUNv05b3tnVhw0JRfPqOf15jZjyQ8BfdEUrJoP32b4dRQQem/wyRL24KY4wOfArJNqzpsbwCA== + dependencies: + "@ardatan/sync-fetch" "^0.0.1" + "@graphql-tools/executor-http" "^0.1.9" + "@graphql-tools/graphql-tag-pluck" "^7.4.6" + "@graphql-tools/utils" "^9.2.1" + "@whatwg-node/fetch" "^0.8.0" + tslib "^2.4.0" + value-or-promise "^1.0.12" + +"@graphql-tools/graphql-file-loader@^7.3.7", "@graphql-tools/graphql-file-loader@^7.5.0": + version "7.5.17" + resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-file-loader/-/graphql-file-loader-7.5.17.tgz#7c281617ea3ab4db4d42a2bdb49850f2b937f0f9" + integrity sha512-hVwwxPf41zOYgm4gdaZILCYnKB9Zap7Ys9OhY1hbwuAuC4MMNY9GpUjoTU3CQc3zUiPoYStyRtUGkHSJZ3HxBw== + dependencies: + "@graphql-tools/import" "6.7.18" + "@graphql-tools/utils" "^9.2.1" + globby "^11.0.3" + tslib "^2.4.0" + unixify "^1.0.0" + +"@graphql-tools/graphql-tag-pluck@7.5.2", "@graphql-tools/graphql-tag-pluck@^7.4.6": + version "7.5.2" + resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-7.5.2.tgz#502f1e066e19d832ebdeba5f571d7636dc27572d" + integrity sha512-RW+H8FqOOLQw0BPXaahYepVSRjuOHw+7IL8Opaa5G5uYGOBxoXR7DceyQ7BcpMgktAOOmpDNQ2WtcboChOJSRA== + dependencies: + "@babel/parser" "^7.16.8" + "@babel/plugin-syntax-import-assertions" "^7.20.0" + "@babel/traverse" "^7.16.8" + "@babel/types" "^7.16.8" + "@graphql-tools/utils" "^9.2.1" + tslib "^2.4.0" + +"@graphql-tools/import@6.7.18": + version "6.7.18" + resolved "https://registry.yarnpkg.com/@graphql-tools/import/-/import-6.7.18.tgz#ad092d8a4546bb6ffc3e871e499eec7ac368680b" + integrity sha512-XQDdyZTp+FYmT7as3xRWH/x8dx0QZA2WZqfMF5EWb36a0PiH7WwlRQYIdyYXj8YCLpiWkeBXgBRHmMnwEYR8iQ== + dependencies: + "@graphql-tools/utils" "^9.2.1" + resolve-from "5.0.0" + tslib "^2.4.0" + +"@graphql-tools/json-file-loader@^7.3.7", "@graphql-tools/json-file-loader@^7.4.1": + version "7.4.18" + resolved "https://registry.yarnpkg.com/@graphql-tools/json-file-loader/-/json-file-loader-7.4.18.tgz#d78ae40979bde51cfc59717757354afc9e35fba2" + integrity sha512-AJ1b6Y1wiVgkwsxT5dELXhIVUPs/u3VZ8/0/oOtpcoyO/vAeM5rOvvWegzicOOnQw8G45fgBRMkkRfeuwVt6+w== + dependencies: + "@graphql-tools/utils" "^9.2.1" + globby "^11.0.3" + tslib "^2.4.0" + unixify "^1.0.0" + +"@graphql-tools/load@^7.5.5", "@graphql-tools/load@^7.8.0": + version "7.8.14" + resolved "https://registry.yarnpkg.com/@graphql-tools/load/-/load-7.8.14.tgz#f2356f9a5f658a42e33934ae036e4b2cadf2d1e9" + integrity sha512-ASQvP+snHMYm+FhIaLxxFgVdRaM0vrN9wW2BKInQpktwWTXVyk+yP5nQUCEGmn0RTdlPKrffBaigxepkEAJPrg== + dependencies: + "@graphql-tools/schema" "^9.0.18" + "@graphql-tools/utils" "^9.2.1" + p-limit "3.1.0" + tslib "^2.4.0" + +"@graphql-tools/merge@^8.2.6", "@graphql-tools/merge@^8.4.1": + version "8.4.2" + resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-8.4.2.tgz#95778bbe26b635e8d2f60ce9856b388f11fe8288" + integrity sha512-XbrHAaj8yDuINph+sAfuq3QCZ/tKblrTLOpirK0+CAgNlZUCHs0Fa+xtMUURgwCVThLle1AF7svJCxFizygLsw== + dependencies: + "@graphql-tools/utils" "^9.2.1" + tslib "^2.4.0" + +"@graphql-tools/optimize@^1.3.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@graphql-tools/optimize/-/optimize-1.4.0.tgz#20d6a9efa185ef8fc4af4fd409963e0907c6e112" + integrity sha512-dJs/2XvZp+wgHH8T5J2TqptT9/6uVzIYvA6uFACha+ufvdMBedkfR4b4GbT8jAKLRARiqRTxy3dctnwkTM2tdw== + dependencies: + tslib "^2.4.0" + +"@graphql-tools/prisma-loader@^7.2.49": + version "7.2.72" + resolved "https://registry.yarnpkg.com/@graphql-tools/prisma-loader/-/prisma-loader-7.2.72.tgz#6304fc23600458396f3ede713d8e2371df7850e3" + integrity sha512-0a7uV7Fky6yDqd0tI9+XMuvgIo6GAqiVzzzFV4OSLry4AwiQlI3igYseBV7ZVOGhedOTqj/URxjpiv07hRcwag== + dependencies: + "@graphql-tools/url-loader" "^7.17.18" + "@graphql-tools/utils" "^9.2.1" + "@types/js-yaml" "^4.0.0" + "@types/json-stable-stringify" "^1.0.32" + "@whatwg-node/fetch" "^0.8.2" + chalk "^4.1.0" + debug "^4.3.1" + dotenv "^16.0.0" + graphql-request "^6.0.0" + http-proxy-agent "^6.0.0" + https-proxy-agent "^6.0.0" + jose "^4.11.4" + js-yaml "^4.0.0" + json-stable-stringify "^1.0.1" + lodash "^4.17.20" + scuid "^1.1.0" + tslib "^2.4.0" + yaml-ast-parser "^0.0.43" + +"@graphql-tools/relay-operation-optimizer@^6.5.0": + version "6.5.18" + resolved "https://registry.yarnpkg.com/@graphql-tools/relay-operation-optimizer/-/relay-operation-optimizer-6.5.18.tgz#a1b74a8e0a5d0c795b8a4d19629b654cf66aa5ab" + integrity sha512-mc5VPyTeV+LwiM+DNvoDQfPqwQYhPV/cl5jOBjTgSniyaq8/86aODfMkrE2OduhQ5E00hqrkuL2Fdrgk0w1QJg== + dependencies: + "@ardatan/relay-compiler" "12.0.0" + "@graphql-tools/utils" "^9.2.1" + tslib "^2.4.0" + +"@graphql-tools/schema@^9.0.0", "@graphql-tools/schema@^9.0.18", "@graphql-tools/schema@^9.0.19": + version "9.0.19" + resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-9.0.19.tgz#c4ad373b5e1b8a0cf365163435b7d236ebdd06e7" + integrity sha512-oBRPoNBtCkk0zbUsyP4GaIzCt8C0aCI4ycIRUL67KK5pOHljKLBBtGT+Jr6hkzA74C8Gco8bpZPe7aWFjiaK2w== + dependencies: + "@graphql-tools/merge" "^8.4.1" + "@graphql-tools/utils" "^9.2.1" + tslib "^2.4.0" + value-or-promise "^1.0.12" + +"@graphql-tools/url-loader@^7.13.2", "@graphql-tools/url-loader@^7.17.18", "@graphql-tools/url-loader@^7.9.7": + version "7.17.18" + resolved "https://registry.yarnpkg.com/@graphql-tools/url-loader/-/url-loader-7.17.18.tgz#3e253594d23483e4c0dd3a4c3dd2ad5cd0141192" + integrity sha512-ear0CiyTj04jCVAxi7TvgbnGDIN2HgqzXzwsfcqiVg9cvjT40NcMlZ2P1lZDgqMkZ9oyLTV8Bw6j+SyG6A+xPw== + dependencies: + "@ardatan/sync-fetch" "^0.0.1" + "@graphql-tools/delegate" "^9.0.31" + "@graphql-tools/executor-graphql-ws" "^0.0.14" + "@graphql-tools/executor-http" "^0.1.7" + "@graphql-tools/executor-legacy-ws" "^0.0.11" + "@graphql-tools/utils" "^9.2.1" + "@graphql-tools/wrap" "^9.4.2" + "@types/ws" "^8.0.0" + "@whatwg-node/fetch" "^0.8.0" + isomorphic-ws "^5.0.0" + tslib "^2.4.0" + value-or-promise "^1.0.11" + ws "^8.12.0" + +"@graphql-tools/utils@^8.8.0": + version "8.13.1" + resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-8.13.1.tgz#b247607e400365c2cd87ff54654d4ad25a7ac491" + integrity sha512-qIh9yYpdUFmctVqovwMdheVNJqFh+DQNWIhX87FJStfXYnmweBUDATok9fWPleKeFwxnW8IapKmY8m8toJEkAw== + dependencies: + tslib "^2.4.0" + +"@graphql-tools/utils@^9.0.0", "@graphql-tools/utils@^9.1.1", "@graphql-tools/utils@^9.2.1": + version "9.2.1" + resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-9.2.1.tgz#1b3df0ef166cfa3eae706e3518b17d5922721c57" + integrity sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A== + dependencies: + "@graphql-typed-document-node/core" "^3.1.1" + tslib "^2.4.0" + +"@graphql-tools/wrap@^9.4.2": + version "9.4.2" + resolved "https://registry.yarnpkg.com/@graphql-tools/wrap/-/wrap-9.4.2.tgz#30835587c4c73be1780908a7cb077d8013aa2703" + integrity sha512-DFcd9r51lmcEKn0JW43CWkkI2D6T9XI1juW/Yo86i04v43O9w2/k4/nx2XTJv4Yv+iXwUw7Ok81PGltwGJSDSA== + dependencies: + "@graphql-tools/delegate" "^9.0.31" + "@graphql-tools/schema" "^9.0.18" + "@graphql-tools/utils" "^9.2.1" + tslib "^2.4.0" + value-or-promise "^1.0.12" + +"@graphql-typed-document-node/core@3.2.0", "@graphql-typed-document-node/core@^3.1.1", "@graphql-typed-document-node/core@^3.2.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.2.0.tgz#5f3d96ec6b2354ad6d8a28bf216a1d97b5426861" + integrity sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ== + +"@grpc/grpc-js@^1.7.1", "@grpc/grpc-js@^1.7.3": + version "1.9.11" + resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.9.11.tgz#7b21195c910a49c0bb5d0df21d28a30c4e174851" + integrity sha512-QDhMfbTROOXUhLHMroow8f3EHiCKUOh6UwxMP5S3EuXMnWMNSVIhatGZRwkpg9OUTYdZPsDUVH3cOAkWhGFUJw== + dependencies: + "@grpc/proto-loader" "^0.7.8" + "@types/node" ">=12.12.47" + +"@grpc/proto-loader@^0.7.8": + version "0.7.10" + resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.7.10.tgz#6bf26742b1b54d0a473067743da5d3189d06d720" + integrity sha512-CAqDfoaQ8ykFd9zqBDn4k6iWT9loLAlc2ETmDFS9JCD70gDcnA4L3AFEo2iV7KyAtAAHFW9ftq1Fz+Vsgq80RQ== + dependencies: + lodash.camelcase "^4.3.0" + long "^5.0.0" + protobufjs "^7.2.4" + yargs "^17.7.2" + +"@honeycombio/opentelemetry-node@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@honeycombio/opentelemetry-node/-/opentelemetry-node-0.5.0.tgz#67f3eb12b923199bf83d3a32758e9091012a9e2b" + integrity sha512-bAg//j0Lh0SFC0LhUrrgpO4FVScOBDt+my4YXeIo9lHi1aXXn6meaB/ycecjVfjyQLaGYWKPKu2C66rTgKIzMQ== + dependencies: + "@grpc/grpc-js" "^1.7.3" + "@opentelemetry/api" "^1.4.1" + "@opentelemetry/core" "^1.13.0" + "@opentelemetry/exporter-metrics-otlp-grpc" "^0.41.0" + "@opentelemetry/exporter-metrics-otlp-proto" "^0.39.1" + "@opentelemetry/exporter-trace-otlp-grpc" "^0.41.0" + "@opentelemetry/exporter-trace-otlp-proto" "^0.41.0" + "@opentelemetry/resources" "^1.13.0" + "@opentelemetry/sdk-metrics" "^1.13.0" + "@opentelemetry/sdk-node" "^0.39.1" + "@opentelemetry/sdk-trace-base" "^1.13.0" + axios "^1.1.3" + +"@humanwhocodes/config-array@^0.11.10", "@humanwhocodes/config-array@^0.11.13": + version "0.11.13" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.13.tgz#075dc9684f40a531d9b26b0822153c1e832ee297" + integrity sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ== + dependencies: + "@humanwhocodes/object-schema" "^2.0.1" + debug "^4.1.1" + minimatch "^3.0.5" + +"@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" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== + +"@humanwhocodes/momoa@^2.0.2": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@humanwhocodes/momoa/-/momoa-2.0.4.tgz#8b9e7a629651d15009c3587d07a222deeb829385" + integrity sha512-RE815I4arJFtt+FVeU1Tgp9/Xvecacji8w/V6XtXsWWH/wz/eNkNbhb+ny/+PlVZjV0rxQpRSQKNKE3lcktHEA== + +"@humanwhocodes/object-schema@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz#e5211452df060fa8522b55c7b3c0c4d1981cb044" + integrity sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw== + +"@iden3/bigarray@0.0.2": + version "0.0.2" + resolved "https://registry.yarnpkg.com/@iden3/bigarray/-/bigarray-0.0.2.tgz#6fc4ba5be18daf8a26ee393f2fb62b80d98c05e9" + integrity sha512-Xzdyxqm1bOFF6pdIsiHLLl3HkSLjbhqJHVyqaTxXt3RqXBEnmsUmEW47H7VOi/ak7TdkRpNkxjyK5Zbkm+y52g== + +"@iden3/binfileutils@0.0.11": + version "0.0.11" + resolved "https://registry.yarnpkg.com/@iden3/binfileutils/-/binfileutils-0.0.11.tgz#9ffbbcc1279f2b2182bb6dcff4eee8a5b2167911" + integrity sha512-LylnJoZ0CTdgErnKY8OxohvW4K+p6UHD3sxt+3P9AmMyBQjYR4IpoqoYZZ+9aMj89cmCQ21UvdhndAx04er3NA== + dependencies: + fastfile "0.0.20" + ffjavascript "^0.2.48" + +"@iden3/binfileutils@0.0.8": + version "0.0.8" + resolved "https://registry.yarnpkg.com/@iden3/binfileutils/-/binfileutils-0.0.8.tgz#d1d349bdbaa9f0a99644232c7d75ea0db98ea1c7" + integrity sha512-/GqTsujUssGuQY+sd/XaLrA+OiCwzm+6yH28C57QQDWCHET2Logry9fGxU10n6XKdhCQBjZ7T/YMQkLwwkpRTQ== + dependencies: + fastfile "0.0.19" + ffjavascript "^0.2.30" + +"@import-maps/resolve@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@import-maps/resolve/-/resolve-1.0.1.tgz#1e9fcadcf23aa0822256a329aabca241879d37c9" + integrity sha512-tWZNBIS1CoekcwlMuyG2mr0a1Wo5lb5lEHwwWvZo+5GLgr3e9LLDTtmgtCWEwBpXMkxn9D+2W9j2FY6eZQq0tA== + +"@intlify/bundle-utils@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@intlify/bundle-utils/-/bundle-utils-4.0.0.tgz#29c1d602c7e4e33b516581496a7c6740ed7e2585" + integrity sha512-klXrYT9VXyKEXsD6UY3pShg0O5MPC07n0TZ5RrSs5ry6T1eZVolIFGJi9c3qcDrh1qjJxgikRnPBmD7qGDqbjw== + dependencies: + "@intlify/message-compiler" next + "@intlify/shared" next + jsonc-eslint-parser "^1.0.1" + source-map "0.6.1" + yaml-eslint-parser "^0.3.2" + +"@intlify/core-base@9.7.1": + version "9.7.1" + resolved "https://registry.yarnpkg.com/@intlify/core-base/-/core-base-9.7.1.tgz#d31315a8e9cf027678b65a4155287143ab91b8fd" + integrity sha512-jPJTeECEhqQ7g//8g3Fb79j5SzSSRqlFCWD6pcX94uMLXU+L1m07gVZnnvzoJBnaMyJHiiwxOqZVfvu6rQfLvw== + dependencies: + "@intlify/message-compiler" "9.7.1" + "@intlify/shared" "9.7.1" + +"@intlify/message-compiler@9.7.1": + version "9.7.1" + resolved "https://registry.yarnpkg.com/@intlify/message-compiler/-/message-compiler-9.7.1.tgz#2cd5f26c6b9f19afffd62e69d192cc4e9e51ba9a" + integrity sha512-HfIr2Hn/K7b0Zv4kGqkxAxwtipyxAwhI9a3krN5cuhH/G9gkaik7of1PdzjR3Mix43t2onBiKYQyaU7mo7e0aA== + dependencies: + "@intlify/shared" "9.7.1" + source-map-js "^1.0.2" + +"@intlify/message-compiler@next": + version "9.4.1" + resolved "https://registry.yarnpkg.com/@intlify/message-compiler/-/message-compiler-9.4.1.tgz#aa00629a455e23cece3464293834a02994b4fb04" + integrity sha512-aN2N+dUx320108QhH51Ycd2LEpZ+NKbzyQ2kjjhqMcxhHdxtOnkgdx+MDBhOy/CObwBmhC3Nygzc6hNlfKvPNw== + dependencies: + "@intlify/shared" "9.4.1" + source-map-js "^1.0.2" + +"@intlify/shared@9.4.1", "@intlify/shared@next": + version "9.4.1" + resolved "https://registry.yarnpkg.com/@intlify/shared/-/shared-9.4.1.tgz#bd0d221aaac476b6778a10ddcd0472f812c64e27" + integrity sha512-A51elBmZWf1FS80inf/32diO9DeXoqg9GR9aUDHFcfHoNDuT46Q+fpPOdj8jiJnSHSBh8E1E+6qWRhAZXdK3Ng== + +"@intlify/shared@9.7.1": + version "9.7.1" + resolved "https://registry.yarnpkg.com/@intlify/shared/-/shared-9.7.1.tgz#a4902421aacda2d716981eb9528aef0163c7bb0a" + integrity sha512-CBKnHzlUYGrk5QII9q4nElAQKO5cX1rRx8VmSWXltyOZjbkGHXYQTHULn6KwRi+CypuBCfmPkyPBHMzosypIeg== + +"@intlify/unplugin-vue-i18n@^0.8.1": + version "0.8.2" + resolved "https://registry.yarnpkg.com/@intlify/unplugin-vue-i18n/-/unplugin-vue-i18n-0.8.2.tgz#4196cb5bee4243bb3a33af76ce9663f3e106809a" + integrity sha512-cRnzPqSEZQOmTD+p4pwc3RTS9HxreLqfID0keoqZDZweCy/CGRMLLTNd15S4TUf1vSBhPF03DItEFDr1F+8MDA== + dependencies: + "@intlify/bundle-utils" "^4.0.0" + "@intlify/shared" next + "@rollup/pluginutils" "^4.2.0" + "@vue/compiler-sfc" "^3.2.45" + debug "^4.3.1" + fast-glob "^3.2.5" + js-yaml "^4.1.0" + json5 "^2.2.0" + pathe "^1.0.0" + picocolors "^1.0.0" + source-map "0.6.1" + unplugin "^1.0.0" + +"@ioredis/commands@^1.1.1": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@ioredis/commands/-/commands-1.2.0.tgz#6d61b3097470af1fdbbe622795b8921d42018e11" + integrity sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg== + +"@ipld/dag-cbor@^7.0.0": + version "7.0.3" + resolved "https://registry.yarnpkg.com/@ipld/dag-cbor/-/dag-cbor-7.0.3.tgz#aa31b28afb11a807c3d627828a344e5521ac4a1e" + integrity sha512-1VVh2huHsuohdXC1bGJNE8WR72slZ9XE2T3wbBBq31dm7ZBatmKLLxrB+XAqafxfRFjv08RZmj/W/ZqaM13AuA== + dependencies: + cborg "^1.6.0" + multiformats "^9.5.4" + +"@ipld/dag-json@^8.0.1": + version "8.0.11" + resolved "https://registry.yarnpkg.com/@ipld/dag-json/-/dag-json-8.0.11.tgz#8d30cc2dfacb0aef04d327465d3df91e79e8b6ce" + integrity sha512-Pea7JXeYHTWXRTIhBqBlhw7G53PJ7yta3G/sizGEZyzdeEwhZRr0od5IQ0r2ZxOt1Do+2czddjeEPp+YTxDwCA== + dependencies: + cborg "^1.5.4" + multiformats "^9.5.4" + +"@ipld/dag-pb@^2.1.3": + version "2.1.18" + resolved "https://registry.yarnpkg.com/@ipld/dag-pb/-/dag-pb-2.1.18.tgz#12d63e21580e87c75fd1a2c62e375a78e355c16f" + integrity sha512-ZBnf2fuX9y3KccADURG5vb9FaOeMjFkCrNysB0PtftME/4iCTjxfaLoNq/IAh5fTqUOMXvryN6Jyka4ZGuMLIg== + dependencies: + multiformats "^9.5.4" + +"@jest/types@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.5.1.tgz#3c79ec4a8ba61c170bf937bcf9e98a9df175ec80" + integrity sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^16.0.0" + chalk "^4.0.0" + +"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" + 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" + integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== + +"@jridgewell/set-array@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" + integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== + +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.13", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.4.15": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + +"@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" + integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": + version "0.3.20" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz#72e45707cf240fa6b081d0366f8265b0cd10197f" + integrity sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + +"@kleros/gtcr-encoder@1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@kleros/gtcr-encoder/-/gtcr-encoder-1.4.0.tgz#8c2dc9497e271ab7a84da124c43ba449bc6e39bc" + integrity sha512-HSLly6CY1f9hBtC9TQV8LcyZ78e9YBhrWlB7VTFyZGr1fvh6ky4/E/xnPt/OLaVNosSZeg5XpTQksOm0LLRFrQ== + dependencies: + bn.js "^5.1.2" + ethers "^5.0.3" + rlp "^2.2.5" + +"@kleros/gtcr-encoder@^1.4.0": + version "1.6.1" + resolved "https://registry.yarnpkg.com/@kleros/gtcr-encoder/-/gtcr-encoder-1.6.1.tgz#665a652cd004ec0e9e2bfda9d2dec9fda3df236a" + integrity sha512-MlkswcT1B6xIgDEOAs0cdfd6UWUBMmFpQxeEKonIXpdG2Rjg1ZmQU82rr4MiWHflycA7nzYPqlQk+q/OGQRQbQ== + dependencies: + bn.js "^5.1.2" + ethers "^5.0.3" + rlp "^2.2.5" + +"@lit-labs/ssr-dom-shim@^1.0.0", "@lit-labs/ssr-dom-shim@^1.1.0": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.1.2.tgz#d693d972974a354034454ec1317eb6afd0b00312" + integrity sha512-jnOD+/+dSrfTWYfSXBXlo5l5f0q1UuJo3tkbMDCYA2lKUYq79jaxqtGEvnRoh049nt1vdo1+45RinipU6FGY2g== + +"@lit/reactive-element@^1.3.0", "@lit/reactive-element@^1.6.0": + version "1.6.3" + resolved "https://registry.yarnpkg.com/@lit/reactive-element/-/reactive-element-1.6.3.tgz#25b4eece2592132845d303e091bad9b04cdcfe03" + integrity sha512-QuTgnG52Poic7uM1AN5yJ09QMe0O28e10XzSvWDz02TJiiKee4stsiownEIadWm8nYzyDAyT+gKzUoZmiWQtsQ== + dependencies: + "@lit-labs/ssr-dom-shim" "^1.0.0" + +"@ljharb/resumer@~0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@ljharb/resumer/-/resumer-0.0.1.tgz#8a940a9192dd31f6a1df17564bbd26dc6ad3e68d" + 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.yarnpkg.com/@ljharb/through/-/through-2.3.11.tgz#783600ff12c06f21a76cc26e33abd0b1595092f9" + integrity sha512-ccfcIDlogiXNq5KcbAwbaO7lMh3Tm1i3khMPYpxlK8hH/W53zN81KM9coerRLOnTGu3nfXIniAmQbRI9OxbC0w== + dependencies: + call-bind "^1.0.2" + +"@lukeed/ms@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@lukeed/ms/-/ms-2.0.1.tgz#3c2bbc258affd9cc0e0cc7828477383c73afa6ee" + integrity sha512-Xs/4RZltsAL7pkvaNStUQt7netTkyxrS0K+RILcVr3TRMS/ToOg4I6uNfhB9SlGsnWBym4U+EaXq0f0cEMNkHA== + +"@mapbox/node-pre-gyp@^1.0.5": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz#417db42b7f5323d79e93b34a6d7a2a12c0df43fa" + integrity sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ== + dependencies: + detect-libc "^2.0.0" + https-proxy-agent "^5.0.0" + make-dir "^3.1.0" + node-fetch "^2.6.7" + nopt "^5.0.0" + npmlog "^5.0.1" + rimraf "^3.0.2" + semver "^7.3.5" + tar "^6.1.11" + +"@metamask/eth-sig-util@^4.0.0": + version "4.0.1" + 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" + ethereumjs-util "^6.2.1" + ethjs-util "^0.1.6" + tweetnacl "^1.0.3" + tweetnacl-util "^0.15.1" + +"@motionone/animation@^10.15.1", "@motionone/animation@^10.16.3": + version "10.16.3" + resolved "https://registry.yarnpkg.com/@motionone/animation/-/animation-10.16.3.tgz#f5b71e27fd8b88b61f983adb0ed6c8e3e89281f9" + integrity sha512-QUGWpLbMFLhyqKlngjZhjtxM8IqiJQjLK0DF+XOF6od9nhSvlaeEpOY/UMCRVcZn/9Tr2rZO22EkuCIjYdI74g== + dependencies: + "@motionone/easing" "^10.16.3" + "@motionone/types" "^10.16.3" + "@motionone/utils" "^10.16.3" + tslib "^2.3.1" + +"@motionone/dom@^10.16.2", "@motionone/dom@^10.16.4": + version "10.16.4" + resolved "https://registry.yarnpkg.com/@motionone/dom/-/dom-10.16.4.tgz#9385716928cc2d5b3208a7dcaf504b69b47fd1ae" + integrity sha512-HPHlVo/030qpRj9R8fgY50KTN4Ko30moWRTA3L3imrsRBmob93cTYmodln49HYFbQm01lFF7X523OkKY0DX6UA== + dependencies: + "@motionone/animation" "^10.16.3" + "@motionone/generators" "^10.16.4" + "@motionone/types" "^10.16.3" + "@motionone/utils" "^10.16.3" + hey-listen "^1.0.8" + tslib "^2.3.1" + +"@motionone/easing@^10.16.3": + version "10.16.3" + resolved "https://registry.yarnpkg.com/@motionone/easing/-/easing-10.16.3.tgz#a62abe0ba2841861f167f286782e287eab8d7466" + integrity sha512-HWTMZbTmZojzwEuKT/xCdvoMPXjYSyQvuVM6jmM0yoGU6BWzsmYMeB4bn38UFf618fJCNtP9XeC/zxtKWfbr0w== + dependencies: + "@motionone/utils" "^10.16.3" + tslib "^2.3.1" + +"@motionone/generators@^10.16.4": + version "10.16.4" + resolved "https://registry.yarnpkg.com/@motionone/generators/-/generators-10.16.4.tgz#4a38708244bce733bfcebd4a26d19f4bbabd36af" + integrity sha512-geFZ3w0Rm0ZXXpctWsSf3REGywmLLujEjxPYpBR0j+ymYwof0xbV6S5kGqqsDKgyWKVWpUInqQYvQfL6fRbXeg== + dependencies: + "@motionone/types" "^10.16.3" + "@motionone/utils" "^10.16.3" + tslib "^2.3.1" + +"@motionone/svelte@^10.16.2": + version "10.16.4" + resolved "https://registry.yarnpkg.com/@motionone/svelte/-/svelte-10.16.4.tgz#5daf117cf5b2576fc6dd487c5e0500938a742470" + integrity sha512-zRVqk20lD1xqe+yEDZhMYgftsuHc25+9JSo+r0a0OWUJFocjSV9D/+UGhX4xgJsuwB9acPzXLr20w40VnY2PQA== + dependencies: + "@motionone/dom" "^10.16.4" + tslib "^2.3.1" + +"@motionone/types@^10.15.1", "@motionone/types@^10.16.3": + version "10.16.3" + resolved "https://registry.yarnpkg.com/@motionone/types/-/types-10.16.3.tgz#9284ea8a52f6b32c51c54b617214f20e43ac6c59" + integrity sha512-W4jkEGFifDq73DlaZs3HUfamV2t1wM35zN/zX7Q79LfZ2sc6C0R1baUHZmqc/K5F3vSw3PavgQ6HyHLd/MXcWg== + +"@motionone/utils@^10.15.1", "@motionone/utils@^10.16.3": + version "10.16.3" + resolved "https://registry.yarnpkg.com/@motionone/utils/-/utils-10.16.3.tgz#ddf07ab6cf3000d89e3bcbdc9a8c3e1fd64f8520" + integrity sha512-WNWDksJIxQkaI9p9Z9z0+K27xdqISGNFy1SsWVGaiedTHq0iaT6iZujby8fT/ZnZxj1EOaxJtSfUPCFNU5CRoA== + dependencies: + "@motionone/types" "^10.16.3" + hey-listen "^1.0.8" + tslib "^2.3.1" + +"@motionone/vue@^10.16.2": + version "10.16.4" + resolved "https://registry.yarnpkg.com/@motionone/vue/-/vue-10.16.4.tgz#07d09e3aa5115ca0bcc0076cb9e5322775277c09" + integrity sha512-z10PF9JV6SbjFq+/rYabM+8CVlMokgl8RFGvieSGNTmrkQanfHn+15XBrhG3BgUfvmTeSeyShfOHpG0i9zEdcg== + dependencies: + "@motionone/dom" "^10.16.4" + tslib "^2.3.1" + +"@netlify/binary-info@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@netlify/binary-info/-/binary-info-1.0.0.tgz#cd0d86fb783fb03e52067f0cd284865e57be86c8" + integrity sha512-4wMPu9iN3/HL97QblBsBay3E1etIciR84izI3U+4iALY+JHCrI+a2jO0qbAZ/nxKoegypYEaiiqWXylm+/zfrw== + +"@netlify/build-info@7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@netlify/build-info/-/build-info-7.10.1.tgz#c30c96282581dd99cdb9ee6e155e48846f997ce7" + integrity sha512-bBEDehGo47ERzAHvOb0AZ/P5zNeDOzqpQFEGqc2djoLjBOcgDkRhyMxy7VZMBiaJ//ujxyTVIBXxrqVKWCpmrQ== + dependencies: + "@bugsnag/js" "^7.20.0" + dot-prop "^7.2.0" + find-up "^6.3.0" + minimatch "^9.0.0" + read-pkg "^7.1.0" + semver "^7.3.8" + toml "^3.0.0" + yaml "^2.1.3" + yargs "^17.6.0" + +"@netlify/build@29.23.4": + version "29.23.4" + resolved "https://registry.yarnpkg.com/@netlify/build/-/build-29.23.4.tgz#c2db3a4bbed462c46e48d21d4649b32c90cb0076" + integrity sha512-3EGLnobIyB5B/HkHdLfbFFgzm0Qd2kN1xa3MdAoXksO2Wmysip6KFMD3/9fzoDNJEjw58IVCf8yT55cNgX/Prg== + dependencies: + "@bugsnag/js" "^7.0.0" + "@honeycombio/opentelemetry-node" "^0.5.0" + "@netlify/cache-utils" "^5.1.5" + "@netlify/config" "^20.9.0" + "@netlify/edge-bundler" "9.3.0" + "@netlify/framework-info" "^9.8.10" + "@netlify/functions-utils" "^5.2.37" + "@netlify/git-utils" "^5.1.1" + "@netlify/plugins-list" "^6.71.0" + "@netlify/run-utils" "^5.1.1" + "@netlify/zip-it-and-ship-it" "9.25.4" + "@opentelemetry/api" "^1.4.1" + "@sindresorhus/slugify" "^2.0.0" + ansi-escapes "^6.0.0" + chalk "^5.0.0" + clean-stack "^4.0.0" + execa "^6.0.0" + fdir "^6.0.1" + figures "^5.0.0" + filter-obj "^5.0.0" + got "^12.0.0" + hot-shots "10.0.0" + indent-string "^5.0.0" + is-plain-obj "^4.0.0" + js-yaml "^4.0.0" + keep-func-props "^4.0.0" + locate-path "^7.0.0" + log-process-errors "^8.0.0" + map-obj "^5.0.0" + memoize-one "^6.0.0" + os-name "^5.0.0" + p-event "^5.0.0" + p-every "^2.0.0" + p-filter "^3.0.0" + p-locate "^6.0.0" + p-reduce "^3.0.0" + path-exists "^5.0.0" + path-type "^5.0.0" + pkg-dir "^7.0.0" + pretty-ms "^8.0.0" + ps-list "^8.0.0" + read-pkg-up "^9.0.0" + readdirp "^3.4.0" + resolve "^2.0.0-next.1" + rfdc "^1.3.0" + safe-json-stringify "^1.2.0" + semver "^7.3.8" + string-width "^5.0.0" + strip-ansi "^7.0.0" + supports-color "^9.0.0" + terminal-link "^3.0.0" + ts-node "^10.9.1" + typescript "^5.0.0" + uuid "^9.0.0" + yargs "^17.6.0" + +"@netlify/cache-utils@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@netlify/cache-utils/-/cache-utils-5.1.5.tgz#848c59003e576fa0b2f9c6ca270eff27af938b25" + integrity sha512-lMNdFmy2Yu3oVquSPooRDLxJ8QOsIX6X6vzA2pKz/9V2LQFJiqBukggXM+Rnqzk1regPpdJ0jK3dPGvOKaRQgg== + dependencies: + cpy "^9.0.0" + get-stream "^6.0.0" + globby "^13.0.0" + junk "^4.0.0" + locate-path "^7.0.0" + move-file "^3.0.0" + path-exists "^5.0.0" + readdirp "^3.4.0" + +"@netlify/config@20.9.0": + version "20.9.0" + resolved "https://registry.yarnpkg.com/@netlify/config/-/config-20.9.0.tgz#b6664414da1f12ed56f7a4137f7887658bb644dd" + integrity sha512-+bKrRDhoUiZbAbdILPtlF5tmR1Ttt6plHQawQVByw9fHaQZ0Kxh6hA896sVFgkR1wGqu2v/5OFhH2t9eJO0nuw== + dependencies: + chalk "^5.0.0" + cron-parser "^4.1.0" + deepmerge "^4.2.2" + dot-prop "^7.0.0" + execa "^6.0.0" + fast-safe-stringify "^2.0.7" + figures "^5.0.0" + filter-obj "^5.0.0" + find-up "^6.0.0" + indent-string "^5.0.0" + is-plain-obj "^4.0.0" + js-yaml "^4.0.0" + map-obj "^5.0.0" + netlify "^13.1.10" + netlify-headers-parser "^7.1.2" + netlify-redirect-parser "^14.2.0" + node-fetch "^3.3.1" + omit.js "^2.0.2" + p-locate "^6.0.0" + path-type "^5.0.0" + toml "^3.0.0" + tomlify-j0.4 "^3.0.0" + validate-npm-package-name "^4.0.0" + yargs "^17.6.0" + +"@netlify/config@^20.9.0": + version "20.10.0" + resolved "https://registry.yarnpkg.com/@netlify/config/-/config-20.10.0.tgz#df51f277c7eaa984105f4e90c3ea676b935c5df3" + integrity sha512-7CNoL5IPSRBzDVzxuQgltZ71D/vZ/oYR29sfN8EXjAFOZPSLtnZgborcPa9V9BXLN4N5h0hFp2A26lnnCttEFg== + dependencies: + chalk "^5.0.0" + cron-parser "^4.1.0" + deepmerge "^4.2.2" + dot-prop "^7.0.0" + execa "^6.0.0" + fast-safe-stringify "^2.0.7" + figures "^5.0.0" + filter-obj "^5.0.0" + find-up "^6.0.0" + indent-string "^5.0.0" + is-plain-obj "^4.0.0" + js-yaml "^4.0.0" + map-obj "^5.0.0" + netlify "^13.1.11" + netlify-headers-parser "^7.1.2" + netlify-redirect-parser "^14.2.0" + node-fetch "^3.3.1" + omit.js "^2.0.2" + p-locate "^6.0.0" + path-type "^5.0.0" + toml "^3.0.0" + tomlify-j0.4 "^3.0.0" + validate-npm-package-name "^4.0.0" + yargs "^17.6.0" + +"@netlify/edge-bundler@9.3.0": + version "9.3.0" + resolved "https://registry.yarnpkg.com/@netlify/edge-bundler/-/edge-bundler-9.3.0.tgz#e3d8847480d69f255177ba373755752a5815ef26" + integrity sha512-qKY4DKxBKn8TFbil5d7i71ztuOdRBfSXzYW9vN3t7WP0R4MKcgUg6nqo4a9llso/TNGlPv9tDrKq+w4jhpfGhA== + dependencies: + "@import-maps/resolve" "^1.0.1" + "@vercel/nft" "^0.24.3" + ajv "^8.11.2" + ajv-errors "^3.0.0" + better-ajv-errors "^1.2.0" + common-path-prefix "^3.0.0" + env-paths "^3.0.0" + esbuild "0.19.4" + execa "^6.0.0" + find-up "^6.3.0" + get-package-name "^2.2.0" + get-port "^6.1.2" + is-path-inside "^4.0.0" + jsonc-parser "^3.2.0" + node-fetch "^3.1.1" + node-stream-zip "^1.15.0" + p-retry "^5.1.1" + p-wait-for "^4.1.0" + path-key "^4.0.0" + regexp-tree "^0.1.24" + semver "^7.3.8" + tmp-promise "^3.0.3" + urlpattern-polyfill "8.0.2" + uuid "^9.0.0" + +"@netlify/edge-bundler@9.4.1": + version "9.4.1" + resolved "https://registry.yarnpkg.com/@netlify/edge-bundler/-/edge-bundler-9.4.1.tgz#edf7126d3f1bf6b7c962f4622ca264197c54c571" + integrity sha512-vcmKLIQL57NEcYBZtBptWWdK5JmWZc3r1ba+kEg939aXPEI5nT5D5qT5PyMiIQwWuFtR0t+DH3koOm8UOfsuwg== + dependencies: + "@import-maps/resolve" "^1.0.1" + "@vercel/nft" "^0.24.3" + ajv "^8.11.2" + ajv-errors "^3.0.0" + better-ajv-errors "^1.2.0" + common-path-prefix "^3.0.0" + env-paths "^3.0.0" + esbuild "0.19.4" + execa "^6.0.0" + find-up "^6.3.0" + get-package-name "^2.2.0" + get-port "^6.1.2" + is-path-inside "^4.0.0" + jsonc-parser "^3.2.0" + node-fetch "^3.1.1" + node-stream-zip "^1.15.0" + p-retry "^5.1.1" + p-wait-for "^4.1.0" + path-key "^4.0.0" + regexp-tree "^0.1.24" + semver "^7.3.8" + tmp-promise "^3.0.3" + urlpattern-polyfill "8.0.2" + uuid "^9.0.0" + +"@netlify/framework-info@^9.8.10": + version "9.8.10" + resolved "https://registry.yarnpkg.com/@netlify/framework-info/-/framework-info-9.8.10.tgz#a18589f132dafb5cb7f86c05a9895b9118633fe1" + integrity sha512-VT8ejAaB/XU2xRpdpQinHUO1YL3+BMx6LJ49wJk2u9Yq/VI1/gYCi5VqbqTHBQXJUlOi84YuiRlrDBsLpPr8eg== + dependencies: + ajv "^8.12.0" + filter-obj "^5.0.0" + find-up "^6.3.0" + is-plain-obj "^4.0.0" + locate-path "^7.0.0" + p-filter "^3.0.0" + p-locate "^6.0.0" + process "^0.11.10" + read-pkg-up "^9.0.0" + semver "^7.3.8" + +"@netlify/functions-utils@^5.2.37": + version "5.2.42" + resolved "https://registry.yarnpkg.com/@netlify/functions-utils/-/functions-utils-5.2.42.tgz#ced51cc91dcd44d813662ce94e7081fbf91edc45" + integrity sha512-ltZ5Vtop8IiJOgSnKApxZdXArOq4cLDs9WpZ3Xoa1lJDojjyPvAH6Vpp3DxFAdi9a8pzYK70vTb048SzMwffnA== + dependencies: + "@netlify/zip-it-and-ship-it" "9.26.4" + cpy "^9.0.0" + path-exists "^5.0.0" + +"@netlify/git-utils@^5.1.1": + version "5.1.1" + resolved "https://registry.yarnpkg.com/@netlify/git-utils/-/git-utils-5.1.1.tgz#36d5a6433a070035099b47d9151638053752cd7b" + integrity sha512-oyHieuTZH3rKTmg7EKpGEGa28IFxta2oXuVwpPJI/FJAtBje3UE+yko0eDjNufgm3AyGa8G77trUxgBhInAYuw== + dependencies: + execa "^6.0.0" + map-obj "^5.0.0" + micromatch "^4.0.2" + moize "^6.1.3" + path-exists "^5.0.0" + +"@netlify/local-functions-proxy-darwin-arm64@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@netlify/local-functions-proxy-darwin-arm64/-/local-functions-proxy-darwin-arm64-1.1.1.tgz#c83a0a142637fb8cefe25c95f5c5cf6f2d7e32ed" + integrity sha512-lphJ9qqZ3glnKWEqlemU1LMqXxtJ/tKf7VzakqqyjigwLscXSZSb6fupSjQfd4tR1xqxA76ylws/2HDhc/gs+Q== + +"@netlify/local-functions-proxy-darwin-x64@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@netlify/local-functions-proxy-darwin-x64/-/local-functions-proxy-darwin-x64-1.1.1.tgz#e8b558cfd459a5d8343d468e5c128a144638967a" + integrity sha512-4CRB0H+dXZzoEklq5Jpmg+chizXlVwCko94d8+UHWCgy/bA3M/rU/BJ8OLZisnJaAktHoeLABKtcLOhtRHpxZQ== + +"@netlify/local-functions-proxy-freebsd-arm64@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@netlify/local-functions-proxy-freebsd-arm64/-/local-functions-proxy-freebsd-arm64-1.1.1.tgz#3a60e32fe1929f97817db5da0925c37feea7606e" + integrity sha512-u13lWTVMJDF0A6jX7V4N3HYGTIHLe5d1Z2wT43fSIHwXkTs6UXi72cGSraisajG+5JFIwHfPr7asw5vxFC0P9w== + +"@netlify/local-functions-proxy-freebsd-x64@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@netlify/local-functions-proxy-freebsd-x64/-/local-functions-proxy-freebsd-x64-1.1.1.tgz#ddc526256cb835f6dbd6747d75a7f3dbcca77da8" + integrity sha512-g5xw4xATK5YDzvXtzJ8S1qSkWBiyF8VVRehXPMOAMzpGjCX86twYhWp8rbAk7yA1zBWmmWrWNA2Odq/MgpKJJg== + +"@netlify/local-functions-proxy-linux-arm64@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@netlify/local-functions-proxy-linux-arm64/-/local-functions-proxy-linux-arm64-1.1.1.tgz#c88c3d8eacdaf655f871eb1eff58b1b3262c38ff" + integrity sha512-dPGu1H5n8na7mBKxiXQ+FNmthDAiA57wqgpm5JMAHtcdcmRvcXwJkwWVGvwfj8ShhYJHQaSaS9oPgO+mpKkgmA== + +"@netlify/local-functions-proxy-linux-arm@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@netlify/local-functions-proxy-linux-arm/-/local-functions-proxy-linux-arm-1.1.1.tgz#d92905605f3f17c442001e6ead3710b64366fbd1" + integrity sha512-YsTpL+AbHwQrfHWXmKnwUrJBjoUON363nr6jUG1ueYnpbbv6wTUA7gI5snMi/gkGpqFusBthAA7C30e6bixfiA== + +"@netlify/local-functions-proxy-linux-ia32@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@netlify/local-functions-proxy-linux-ia32/-/local-functions-proxy-linux-ia32-1.1.1.tgz#b4cb57c438a82f42c2e30ee4ec50cfa233379d59" + integrity sha512-Ra0FlXDrmPRaq+rYH3/ttkXSrwk1D5Zx/Na7UPfJZxMY7Qo5iY4bgi/FuzjzWzlp0uuKZOhYOYzYzsIIyrSvmw== + +"@netlify/local-functions-proxy-linux-ppc64@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@netlify/local-functions-proxy-linux-ppc64/-/local-functions-proxy-linux-ppc64-1.1.1.tgz#3fdef281191dd819fee72ac58ccbca1ac650fee3" + integrity sha512-oXf1satwqwUUxz7LHS1BxbRqc4FFEKIDFTls04eXiLReFR3sqv9H/QuYNTCCDMuRcCOd92qKyDfATdnxT4HR8w== + +"@netlify/local-functions-proxy-linux-x64@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@netlify/local-functions-proxy-linux-x64/-/local-functions-proxy-linux-x64-1.1.1.tgz#bd2c8059c5d7dd46ef5da174723ca2cdd7bfdb2f" + integrity sha512-bS3u4JuDg/eC0y4Na3i/29JBOxrdUvsK5JSjHfzUeZEbOcuXYf4KavTpHS5uikdvTgyczoSrvbmQJ5m0FLXfLA== + +"@netlify/local-functions-proxy-openbsd-x64@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@netlify/local-functions-proxy-openbsd-x64/-/local-functions-proxy-openbsd-x64-1.1.1.tgz#31a3340f4f10dd5c95cd3f2dc9f1e967c051aa2a" + integrity sha512-1xLef/kLRNkBTXJ+ZGoRFcwsFxd/B2H3oeJZyXaZ3CN5umd9Mv9wZuAD74NuMt/535yRva8jtAJqvEgl9xMSdA== + +"@netlify/local-functions-proxy-win32-ia32@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@netlify/local-functions-proxy-win32-ia32/-/local-functions-proxy-win32-ia32-1.1.1.tgz#354890bc58f54e8b26721447f243c49945f2fe74" + integrity sha512-4IOMDBxp2f8VbIkhZ85zGNDrZR4ey8d68fCMSOIwitjsnKav35YrCf8UmAh3UR6CNIRJdJL4MW1GYePJ7iJ8uA== + +"@netlify/local-functions-proxy-win32-x64@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@netlify/local-functions-proxy-win32-x64/-/local-functions-proxy-win32-x64-1.1.1.tgz#7ee183b4ccd0062b6124275387d844530ea0b224" + integrity sha512-VCBXBJWBujVxyo5f+3r8ovLc9I7wJqpmgDn3ixs1fvdrER5Ac+SzYwYH4mUug9HI08mzTSAKZErzKeuadSez3w== + +"@netlify/local-functions-proxy@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@netlify/local-functions-proxy/-/local-functions-proxy-1.1.1.tgz#e5d1416e6d607f8e8bd4d295b1ee1e550d5bd3cb" + integrity sha512-eXSsayLT6PMvjzFQpjC9nkg2Otc3lZ5GoYele9M6f8PmsvWpaXRhwjNQ0NYhQQ2UZbLMIiO2dH8dbRsT3bMkFw== + optionalDependencies: + "@netlify/local-functions-proxy-darwin-arm64" "1.1.1" + "@netlify/local-functions-proxy-darwin-x64" "1.1.1" + "@netlify/local-functions-proxy-freebsd-arm64" "1.1.1" + "@netlify/local-functions-proxy-freebsd-x64" "1.1.1" + "@netlify/local-functions-proxy-linux-arm" "1.1.1" + "@netlify/local-functions-proxy-linux-arm64" "1.1.1" + "@netlify/local-functions-proxy-linux-ia32" "1.1.1" + "@netlify/local-functions-proxy-linux-ppc64" "1.1.1" + "@netlify/local-functions-proxy-linux-x64" "1.1.1" + "@netlify/local-functions-proxy-openbsd-x64" "1.1.1" + "@netlify/local-functions-proxy-win32-ia32" "1.1.1" + "@netlify/local-functions-proxy-win32-x64" "1.1.1" + +"@netlify/node-cookies@^0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@netlify/node-cookies/-/node-cookies-0.1.0.tgz#dda912ba618527695cf519fafa221c5e6777c612" + integrity sha512-OAs1xG+FfLX0LoRASpqzVntVV/RpYkgpI0VrUnw2u0Q1qiZUzcPffxRK8HF3gc4GjuhG5ahOEMJ9bswBiZPq0g== + +"@netlify/open-api@^2.19.1", "@netlify/open-api@^2.26.0": + version "2.26.0" + resolved "https://registry.yarnpkg.com/@netlify/open-api/-/open-api-2.26.0.tgz#cdc8033371079955501f4b9a5323f2dcd76741c2" + integrity sha512-B7q+ySzQm6rJhaGbY0Pzqnb1p3FsBqwiPLnLtA17JgTsqmXgQ7j6OQImW9fRJy/Al1ob9M6Oxng/FA2c7aIW1g== + +"@netlify/plugins-list@^6.71.0": + version "6.72.0" + resolved "https://registry.yarnpkg.com/@netlify/plugins-list/-/plugins-list-6.72.0.tgz#b77611f0ada5b57aff62219cd321f75ed5f6c424" + integrity sha512-GB3HxvUmOAkB6V3Tau7iQT7aH2NssmQHAgHWMrdD7pDfjcU6Vg0WcQfOWovjx2Bh6M0urOsJkBboX2egCuicEQ== + +"@netlify/run-utils@^5.1.1": + version "5.1.1" + resolved "https://registry.yarnpkg.com/@netlify/run-utils/-/run-utils-5.1.1.tgz#be1938aaca58f9032054cddea02e2673ffa9c4ee" + integrity sha512-V2B8ZB19heVKa715uOeDkztxLH7uaqZ+9U5fV7BRzbQ2514DO5Vxj9hG0irzuRLfZXZZjp/chPUesv4VVsce/A== + dependencies: + execa "^6.0.0" + +"@netlify/serverless-functions-api@^1.10.1", "@netlify/serverless-functions-api@^1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@netlify/serverless-functions-api/-/serverless-functions-api-1.12.1.tgz#fb926f62377d84719c70f9a4493f3d04d6f6e7dc" + integrity sha512-+G9cTltqfH54dF4dLqoEOV2P4qTIY8dM9blUVqg+NtVTXyuadzgpHqtffhVeyeLytVnTx1238kWJUe+sV3bnlg== + dependencies: + "@netlify/node-cookies" "^0.1.0" + urlpattern-polyfill "8.0.2" + +"@netlify/zip-it-and-ship-it@9.25.4": + version "9.25.4" + resolved "https://registry.yarnpkg.com/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-9.25.4.tgz#712b743a83501a1e845348373926e910fa0a217e" + integrity sha512-y2xl6yLwwDCUoE/XTMKZFYO6uWeZbci4LWK+8v6TyQ3xWDl23pGJyFrkKSPLDn/jeJsKNsdJG4fBo4/S2p+YNA== + dependencies: + "@babel/parser" "^7.22.5" + "@babel/types" "7.22.19" + "@netlify/binary-info" "^1.0.0" + "@netlify/serverless-functions-api" "^1.10.1" + "@vercel/nft" "^0.23.0" + archiver "^6.0.0" + common-path-prefix "^3.0.0" + cp-file "^10.0.0" + es-module-lexer "^1.0.0" + esbuild "0.19.4" + execa "^6.0.0" + filter-obj "^5.0.0" + find-up "^6.0.0" + glob "^8.0.3" + is-builtin-module "^3.1.0" + is-path-inside "^4.0.0" + junk "^4.0.0" + locate-path "^7.0.0" + merge-options "^3.0.4" + minimatch "^9.0.0" + normalize-path "^3.0.0" + p-map "^5.0.0" + path-exists "^5.0.0" + precinct "^11.0.0" + require-package-name "^2.0.1" + resolve "^2.0.0-next.1" + semver "^7.3.8" + tmp-promise "^3.0.2" + toml "^3.0.0" + unixify "^1.0.0" + urlpattern-polyfill "8.0.2" + yargs "^17.0.0" + +"@netlify/zip-it-and-ship-it@9.26.4": + version "9.26.4" + resolved "https://registry.yarnpkg.com/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-9.26.4.tgz#aa855ab7603f83bdfcdee225f8d730ffb1979be6" + integrity sha512-lGdmHz5ppP6VmVEuvuL5nKP7a3/dUGRLBotqs2x/lwp35/1lbR+CIbXV6y8IYc4yn1hDfDtp+Lcqe6Np2KcFtg== + dependencies: + "@babel/parser" "^7.22.5" + "@babel/types" "7.23.3" + "@netlify/binary-info" "^1.0.0" + "@netlify/serverless-functions-api" "^1.12.1" + "@vercel/nft" "^0.23.0" + archiver "^6.0.0" + common-path-prefix "^3.0.0" + cp-file "^10.0.0" + es-module-lexer "^1.0.0" + esbuild "0.19.6" + execa "^6.0.0" + filter-obj "^5.0.0" + find-up "^6.0.0" + glob "^8.0.3" + is-builtin-module "^3.1.0" + is-path-inside "^4.0.0" + junk "^4.0.0" + locate-path "^7.0.0" + merge-options "^3.0.4" + minimatch "^9.0.0" + normalize-path "^3.0.0" + p-map "^5.0.0" + path-exists "^5.0.0" + precinct "^11.0.0" + require-package-name "^2.0.1" + resolve "^2.0.0-next.1" + semver "^7.3.8" + tmp-promise "^3.0.2" + toml "^3.0.0" + unixify "^1.0.0" + urlpattern-polyfill "8.0.2" + yargs "^17.0.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" + integrity sha512-091oBExgENk/kGj3AZmtBDMpxQPDtxQABR2B9lb1JbVTs6ytdzZNwvhxQ4MWasRNEzlbEH8jCWFCwhF/Obj5AA== + dependencies: + "@noble/hashes" "1.3.1" + +"@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" + integrity sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ== + +"@noble/hashes@1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.1.tgz#8831ef002114670c603c458ab8b11328406953a9" + integrity sha512-EbqwksQwz9xDRGfDST86whPBgM65E0OH/pCgqW0GBVzO22bNE+NuIbeTb714+IfSjU3aRk47EUvXIb5bTsenKA== + +"@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.7.1", "@noble/secp256k1@~1.7.0": + version "1.7.1" + 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.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.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + 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.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" + fastq "^1.6.0" + +"@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" + 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" + +"@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" + 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" + +"@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" + integrity sha512-I2WGP3HMGsOoycSdOTSqIaES0ughQTueOsddJ36aYVpI3SN8YSusgRFLwzDJwRFVIYDKx/iJz0sQ5kBHVgdDwg== + dependencies: + "@nomicfoundation/ethereumjs-util" "9.0.2" + crc-32 "^1.2.0" + +"@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" + 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" + +"@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" + 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" + +"@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" + 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" + 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" + +"@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" + 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" + +"@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" + 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" + +"@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" + integrity sha512-4Wu9D3LykbSBWZo8nJCnzVIYGvGCuyiYLIJa9XXNVt1q1jUzHdB+sJvx95VGCpPkCT+IbLecW6yfzy3E1bQrwQ== + dependencies: + "@chainsafe/ssz" "^0.10.0" + "@nomicfoundation/ethereumjs-rlp" "5.0.2" + ethereum-cryptography "0.1.3" + +"@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" + 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" + +"@nomicfoundation/hardhat-chai-matchers@^1.0.0": + version "1.0.6" + resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-chai-matchers/-/hardhat-chai-matchers-1.0.6.tgz#72a2e312e1504ee5dd73fe302932736432ba96bc" + integrity sha512-f5ZMNmabZeZegEfuxn/0kW+mm7+yV7VNDxLpMOMGXWFJ2l/Ct3QShujzDRF9cOkK9Ui/hbDeOWGZqyQALDXVCQ== + dependencies: + "@ethersproject/abi" "^5.1.2" + "@types/chai-as-promised" "^7.1.3" + chai-as-promised "^7.1.1" + deep-eql "^4.0.1" + ordinal "^1.0.3" + +"@nomicfoundation/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" + 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" + integrity sha512-1LMtXj1puAxyFusBgUIy5pZk3073cNXYnXUpuNKFghHbIit/xZgbk0AokpUADbNm3gyD6bFWl3LRFh3dhVdREg== + 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" + +"@nomiclabs/hardhat-ethers@^2.0.0", "@nomiclabs/hardhat-ethers@^2.0.2", "@nomiclabs/hardhat-ethers@^2.2.3": + version "2.2.3" + 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.4": + version "3.1.7" + resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-etherscan/-/hardhat-etherscan-3.1.7.tgz#72e3d5bd5d0ceb695e097a7f6f5ff6fcbf062b9a" + integrity sha512-tZ3TvSgpvsQ6B6OGmo1/Au6u8BrAkvs1mIC/eURA3xgIfznUZBhmpne8hv7BXUzw9xNL3fXdpOYgOQlVMTcoHQ== + 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" + +"@nomiclabs/hardhat-ganache@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-ganache/-/hardhat-ganache-2.0.1.tgz#d4974dc379cef1892904378de00e12709c0719aa" + integrity sha512-Q3D8iTtsvQVkJd1EzhhYYvXAFY8fF/JEUt6l6jW7tduhFDRCKvyoSMCw+lH/3nBOHsBolr80pF76NHZ2mYCMeQ== + dependencies: + debug "^4.1.1" + ganache-core "^2.7.0" + ts-interface-checker "^0.1.9" + +"@nomiclabs/hardhat-waffle@^2.0.3": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-waffle/-/hardhat-waffle-2.0.6.tgz#d11cb063a5f61a77806053e54009c40ddee49a54" + integrity sha512-+Wz0hwmJGSI17B+BhU/qFRZ1l6/xMW82QGXE/Gi+WTmwgJrQefuBs1lIf7hzQ1hLk6hpkvb/zwcNkpVKRYTQYg== + +"@oclif/core@2.8.0": + version "2.8.0" + resolved "https://registry.yarnpkg.com/@oclif/core/-/core-2.8.0.tgz#4948de3168804169fa68895af8ec4853f332b307" + integrity sha512-A2wHItFrD/WOw5bJ6Mtv9MD7If0bsKNR0pwEY0me+fo4HSXlJOtgYGqmzb8t8akX3DUUT7XsjPajsoHLkIJyvg== + dependencies: + "@types/cli-progress" "^3.11.0" + ansi-escapes "^4.3.2" + ansi-styles "^4.3.0" + cardinal "^2.1.1" + chalk "^4.1.2" + clean-stack "^3.0.1" + cli-progress "^3.12.0" + debug "^4.3.4" + ejs "^3.1.8" + fs-extra "^9.1.0" + get-package-type "^0.1.0" + globby "^11.1.0" + hyperlinker "^1.0.0" + indent-string "^4.0.0" + is-wsl "^2.2.0" + js-yaml "^3.14.1" + natural-orderby "^2.0.3" + object-treeify "^1.1.33" + password-prompt "^1.1.2" + semver "^7.3.7" + string-width "^4.2.3" + strip-ansi "^6.0.1" + supports-color "^8.1.1" + supports-hyperlinks "^2.2.0" + ts-node "^10.9.1" + tslib "^2.5.0" + widest-line "^3.1.0" + wordwrap "^1.0.0" + wrap-ansi "^7.0.0" + +"@octokit/auth-token@^3.0.0": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-3.0.4.tgz#70e941ba742bdd2b49bdb7393e821dea8520a3db" + integrity sha512-TWFX7cZF2LXoCvdmJWY7XVPi74aSY0+FfBZNSXEXFkMpjcqsQwDSYVv5FhRFaI0V1ECnwbz4j59T/G+rXNWaIQ== + +"@octokit/core@^4.2.1": + version "4.2.4" + resolved "https://registry.yarnpkg.com/@octokit/core/-/core-4.2.4.tgz#d8769ec2b43ff37cc3ea89ec4681a20ba58ef907" + integrity sha512-rYKilwgzQ7/imScn3M9/pFfUf4I1AZEH3KhyJmtPdE2zfaXAn2mFfUy4FbKewzc2We5y/LlKLj36fWJLKC2SIQ== + dependencies: + "@octokit/auth-token" "^3.0.0" + "@octokit/graphql" "^5.0.0" + "@octokit/request" "^6.0.0" + "@octokit/request-error" "^3.0.0" + "@octokit/types" "^9.0.0" + before-after-hook "^2.2.0" + universal-user-agent "^6.0.0" + +"@octokit/endpoint@^7.0.0": + version "7.0.6" + resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-7.0.6.tgz#791f65d3937555141fb6c08f91d618a7d645f1e2" + integrity sha512-5L4fseVRUsDFGR00tMWD/Trdeeihn999rTMGRMC1G/Ldi1uWlWJzI98H4Iak5DB/RVvQuyMYKqSK/R6mbSOQyg== + dependencies: + "@octokit/types" "^9.0.0" + is-plain-object "^5.0.0" + universal-user-agent "^6.0.0" + +"@octokit/graphql@^5.0.0": + version "5.0.6" + resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-5.0.6.tgz#9eac411ac4353ccc5d3fca7d76736e6888c5d248" + integrity sha512-Fxyxdy/JH0MnIB5h+UQ3yCoh1FG4kWXfFKkpWqjZHw/p+Kc8Y44Hu/kCgNBT6nU1shNumEchmW/sUO1JuQnPcw== + dependencies: + "@octokit/request" "^6.0.0" + "@octokit/types" "^9.0.0" + universal-user-agent "^6.0.0" + +"@octokit/openapi-types@^18.0.0": + version "18.1.1" + resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-18.1.1.tgz#09bdfdabfd8e16d16324326da5148010d765f009" + integrity sha512-VRaeH8nCDtF5aXWnjPuEMIYf1itK/s3JYyJcWFJT8X9pSNnBtriDf7wlEWsGuhPLl4QIH4xM8fqTXDwJ3Mu6sw== + +"@octokit/plugin-paginate-rest@^6.1.2": + version "6.1.2" + resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-6.1.2.tgz#f86456a7a1fe9e58fec6385a85cf1b34072341f8" + integrity sha512-qhrmtQeHU/IivxucOV1bbI/xZyC/iOBhclokv7Sut5vnejAIAEXVcGQeRpQlU39E0WwK9lNvJHphHri/DB6lbQ== + dependencies: + "@octokit/tsconfig" "^1.0.2" + "@octokit/types" "^9.2.3" + +"@octokit/plugin-request-log@^1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz#5e50ed7083a613816b1e4a28aeec5fb7f1462e85" + integrity sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA== + +"@octokit/plugin-rest-endpoint-methods@^7.1.2": + version "7.2.3" + resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-7.2.3.tgz#37a84b171a6cb6658816c82c4082ac3512021797" + integrity sha512-I5Gml6kTAkzVlN7KCtjOM+Ruwe/rQppp0QU372K1GP7kNOYEKe8Xn5BW4sE62JAHdwpq95OQK/qGNyKQMUzVgA== + dependencies: + "@octokit/types" "^10.0.0" + +"@octokit/request-error@^3.0.0": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-3.0.3.tgz#ef3dd08b8e964e53e55d471acfe00baa892b9c69" + integrity sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ== + dependencies: + "@octokit/types" "^9.0.0" + deprecation "^2.0.0" + once "^1.4.0" + +"@octokit/request@^6.0.0": + version "6.2.8" + resolved "https://registry.yarnpkg.com/@octokit/request/-/request-6.2.8.tgz#aaf480b32ab2b210e9dadd8271d187c93171d8eb" + integrity sha512-ow4+pkVQ+6XVVsekSYBzJC0VTVvh/FCTUUgTsboGq+DTeWdyIFV8WSCdo0RIxk6wSkBTHqIK1mYuY7nOBXOchw== + dependencies: + "@octokit/endpoint" "^7.0.0" + "@octokit/request-error" "^3.0.0" + "@octokit/types" "^9.0.0" + is-plain-object "^5.0.0" + node-fetch "^2.6.7" + universal-user-agent "^6.0.0" + +"@octokit/rest@19.0.13": + version "19.0.13" + resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-19.0.13.tgz#e799393264edc6d3c67eeda9e5bd7832dcf974e4" + integrity sha512-/EzVox5V9gYGdbAI+ovYj3nXQT1TtTHRT+0eZPcuC05UFSWO3mdO9UY1C0i2eLF9Un1ONJkAk+IEtYGAC+TahA== + dependencies: + "@octokit/core" "^4.2.1" + "@octokit/plugin-paginate-rest" "^6.1.2" + "@octokit/plugin-request-log" "^1.0.4" + "@octokit/plugin-rest-endpoint-methods" "^7.1.2" + +"@octokit/tsconfig@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@octokit/tsconfig/-/tsconfig-1.0.2.tgz#59b024d6f3c0ed82f00d08ead5b3750469125af7" + integrity sha512-I0vDR0rdtP8p2lGMzvsJzbhdOWy405HcGovrspJ8RRibHnyRgggUSNO5AIox5LmqiwmatHKYsvj6VGFHkqS7lA== + +"@octokit/types@^10.0.0": + version "10.0.0" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-10.0.0.tgz#7ee19c464ea4ada306c43f1a45d444000f419a4a" + integrity sha512-Vm8IddVmhCgU1fxC1eyinpwqzXPEYu0NrYzD3YZjlGjyftdLBTeqNblRC0jmJmgxbJIsQlyogVeGnrNaaMVzIg== + dependencies: + "@octokit/openapi-types" "^18.0.0" + +"@octokit/types@^9.0.0", "@octokit/types@^9.2.3": + version "9.3.2" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-9.3.2.tgz#3f5f89903b69f6a2d196d78ec35f888c0013cac5" + integrity sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA== + dependencies: + "@octokit/openapi-types" "^18.0.0" + +"@openfonts/inter_all@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@openfonts/inter_all/-/inter_all-1.0.2.tgz#87fc59c58926d2e5e63022a0960f12be82915d00" + integrity sha512-hdB3gPFLztuDbEDLImVRTQyH4EHHrX9iEsw6wZW+VuwUoTwMJEhOV9dWliM6WZtJYF/cqYuiMK+Bqdd2XztnDg== + +"@opentelemetry/api-logs@0.39.1": + version "0.39.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/api-logs/-/api-logs-0.39.1.tgz#3ea1e9dda11c35f993cb60dc5e52780b8175e702" + integrity sha512-9BJ8lMcOzEN0lu+Qji801y707oFO4xT3db6cosPvl+k7ItUHKN5ofWqtSbM9gbt1H4JJ/4/2TVrqI9Rq7hNv6Q== + dependencies: + "@opentelemetry/api" "^1.0.0" + +"@opentelemetry/api-logs@0.41.2": + version "0.41.2" + resolved "https://registry.yarnpkg.com/@opentelemetry/api-logs/-/api-logs-0.41.2.tgz#600c9b3d79018e7421d2ff7189f41b6d2c987d6a" + integrity sha512-JEV2RAqijAFdWeT6HddYymfnkiRu2ASxoTBr4WsnGJhOjWZkEy6vp+Sx9ozr1NaIODOa2HUyckExIqQjn6qywQ== + dependencies: + "@opentelemetry/api" "^1.0.0" + +"@opentelemetry/api@^1.0.0", "@opentelemetry/api@^1.4.1": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-1.7.0.tgz#b139c81999c23e3c8d3c0a7234480e945920fc40" + integrity sha512-AdY5wvN0P2vXBi3b29hxZgSFvdhdxPB9+f0B6s//P9Q8nibRWeA3cHm8UmLpio9ABigkVHJ5NMPk+Mz8VCCyrw== + +"@opentelemetry/context-async-hooks@1.13.0": + version "1.13.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/context-async-hooks/-/context-async-hooks-1.13.0.tgz#b697317c1670eaa9b1c23201d09dd29250dcc8fa" + integrity sha512-pS5fU4lrRjOIPZQqA2V1SUM9QUFXbO+8flubAiy6ntLjnAjJJUdRFOUOxK6v86ZHI2p2S8A0vD0BTu95FZYvjA== + +"@opentelemetry/core@1.13.0": + version "1.13.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/core/-/core-1.13.0.tgz#7cdcb4176d260d279b0aa31456c4ce2ba7f410aa" + integrity sha512-2dBX3Sj99H96uwJKvc2w9NOiNgbvAO6mOFJFramNkKfS9O4Um+VWgpnlAazoYjT6kUJ1MP70KQ5ngD4ed+4NUw== + dependencies: + "@opentelemetry/semantic-conventions" "1.13.0" + +"@opentelemetry/core@1.15.2": + version "1.15.2" + resolved "https://registry.yarnpkg.com/@opentelemetry/core/-/core-1.15.2.tgz#5b170bf223a2333884bbc2d29d95812cdbda7c9f" + integrity sha512-+gBv15ta96WqkHZaPpcDHiaz0utiiHZVfm2YOYSqFGrUaJpPkMoSuLBB58YFQGi6Rsb9EHos84X6X5+9JspmLw== + dependencies: + "@opentelemetry/semantic-conventions" "1.15.2" + +"@opentelemetry/core@1.18.1", "@opentelemetry/core@^1.13.0": + version "1.18.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/core/-/core-1.18.1.tgz#d2e45f6bd6be4f00d20d18d4f1b230ec33805ae9" + integrity sha512-kvnUqezHMhsQvdsnhnqTNfAJs3ox/isB0SVrM1dhVFw7SsB7TstuVa6fgWnN2GdPyilIFLUvvbTZoVRmx6eiRg== + dependencies: + "@opentelemetry/semantic-conventions" "1.18.1" + +"@opentelemetry/exporter-jaeger@1.13.0": + version "1.13.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-jaeger/-/exporter-jaeger-1.13.0.tgz#e96436438d3f8cc7b262ab4e517d55f96f413161" + integrity sha512-ke/STs/erRDqKmNv6Dv+5SetXsVD+Zm1/Wo8cLdAGrZn6kG6Fyp5EXVO/BJuzx6q+jHCdODm8jV4veXl4m71nQ== + dependencies: + "@opentelemetry/core" "1.13.0" + "@opentelemetry/sdk-trace-base" "1.13.0" + "@opentelemetry/semantic-conventions" "1.13.0" + jaeger-client "^3.15.0" + +"@opentelemetry/exporter-metrics-otlp-grpc@^0.41.0": + version "0.41.2" + resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-metrics-otlp-grpc/-/exporter-metrics-otlp-grpc-0.41.2.tgz#3272e67e63167bdaf26585f930a2b60cf3ae76cb" + integrity sha512-gQuCcd5QSMkfi1XIriWAoak/vaRvFzpvtzh2hjziIvbnA3VtoGD3bDb2dzEzOA1iSWO0/tHwnBsSmmUZsETyOA== + dependencies: + "@grpc/grpc-js" "^1.7.1" + "@opentelemetry/core" "1.15.2" + "@opentelemetry/exporter-metrics-otlp-http" "0.41.2" + "@opentelemetry/otlp-grpc-exporter-base" "0.41.2" + "@opentelemetry/otlp-transformer" "0.41.2" + "@opentelemetry/resources" "1.15.2" + "@opentelemetry/sdk-metrics" "1.15.2" + +"@opentelemetry/exporter-metrics-otlp-http@0.39.1": + version "0.39.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-metrics-otlp-http/-/exporter-metrics-otlp-http-0.39.1.tgz#be2a9954db69b3c11779bf30c51e2fa901721c78" + integrity sha512-Uj2i6t5v9aexV03xvVobwLV0Yxn7lQcCxBGN5KKxcs8BTZYSfjdwhrFjsOxvEQ2cXugL0aIzCuTKxrlXYTmFwA== + dependencies: + "@opentelemetry/core" "1.13.0" + "@opentelemetry/otlp-exporter-base" "0.39.1" + "@opentelemetry/otlp-transformer" "0.39.1" + "@opentelemetry/resources" "1.13.0" + "@opentelemetry/sdk-metrics" "1.13.0" + +"@opentelemetry/exporter-metrics-otlp-http@0.41.2": + version "0.41.2" + resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-metrics-otlp-http/-/exporter-metrics-otlp-http-0.41.2.tgz#b4e5483d00d913daec950a07784e459d1c60fb3d" + integrity sha512-+YeIcL4nuldWE89K8NBLImpXCvih04u1MBnn8EzvoywG2TKR5JC3CZEPepODIxlsfGSgP8W5khCEP1NHZzftYw== + dependencies: + "@opentelemetry/core" "1.15.2" + "@opentelemetry/otlp-exporter-base" "0.41.2" + "@opentelemetry/otlp-transformer" "0.41.2" + "@opentelemetry/resources" "1.15.2" + "@opentelemetry/sdk-metrics" "1.15.2" + +"@opentelemetry/exporter-metrics-otlp-proto@^0.39.1": + version "0.39.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-metrics-otlp-proto/-/exporter-metrics-otlp-proto-0.39.1.tgz#872a7f8ab6a7f57ef39225d073d89840f89b0bf4" + integrity sha512-S+FgIhmZiFMsUivtAlCyzf3L5ezPyCqvlzt4hSZmiKs0kqapau1HS4cSpGacs9Jy499TRSNtqfjj7GxZrNIevw== + dependencies: + "@opentelemetry/core" "1.13.0" + "@opentelemetry/exporter-metrics-otlp-http" "0.39.1" + "@opentelemetry/otlp-exporter-base" "0.39.1" + "@opentelemetry/otlp-proto-exporter-base" "0.39.1" + "@opentelemetry/otlp-transformer" "0.39.1" + "@opentelemetry/resources" "1.13.0" + "@opentelemetry/sdk-metrics" "1.13.0" + +"@opentelemetry/exporter-trace-otlp-grpc@0.39.1": + version "0.39.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-trace-otlp-grpc/-/exporter-trace-otlp-grpc-0.39.1.tgz#3949f909fb3f8cbb456480a35829bb2630331bd3" + integrity sha512-l5RhLKx6U+yuLhMrtgavTDthX50E1mZM3/SSySC7OPZiArFHV/b/9x9jxAzrOgIQUDxyj4N0V9aLKSA2t7Qzxg== + dependencies: + "@grpc/grpc-js" "^1.7.1" + "@opentelemetry/core" "1.13.0" + "@opentelemetry/otlp-grpc-exporter-base" "0.39.1" + "@opentelemetry/otlp-transformer" "0.39.1" + "@opentelemetry/resources" "1.13.0" + "@opentelemetry/sdk-trace-base" "1.13.0" + +"@opentelemetry/exporter-trace-otlp-grpc@^0.41.0": + version "0.41.2" + resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-trace-otlp-grpc/-/exporter-trace-otlp-grpc-0.41.2.tgz#445f850f4675e0afc3e326b2663576fa0b5fbee4" + integrity sha512-tRM/mq7PFj7mXCws5ICMVp/rmgU93JvZdoLE0uLj4tugNz231u2ZgeRYXulBjdeHM88ZQSsWTJMu2mvr/3JV1A== + dependencies: + "@grpc/grpc-js" "^1.7.1" + "@opentelemetry/core" "1.15.2" + "@opentelemetry/otlp-grpc-exporter-base" "0.41.2" + "@opentelemetry/otlp-transformer" "0.41.2" + "@opentelemetry/resources" "1.15.2" + "@opentelemetry/sdk-trace-base" "1.15.2" + +"@opentelemetry/exporter-trace-otlp-http@0.39.1": + version "0.39.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-trace-otlp-http/-/exporter-trace-otlp-http-0.39.1.tgz#9625b04451f91d308395333c188f4841a173a781" + integrity sha512-AEhnJfVmo1g+7NxszAuf3c6vddld2DGH2+IM4XrPxCklucCsIpuStuC5EVZbCXXXBMpAY+n3t04QMxIQqNrcSw== + dependencies: + "@opentelemetry/core" "1.13.0" + "@opentelemetry/otlp-exporter-base" "0.39.1" + "@opentelemetry/otlp-transformer" "0.39.1" + "@opentelemetry/resources" "1.13.0" + "@opentelemetry/sdk-trace-base" "1.13.0" + +"@opentelemetry/exporter-trace-otlp-proto@0.39.1": + version "0.39.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-trace-otlp-proto/-/exporter-trace-otlp-proto-0.39.1.tgz#0d8f8a57e2a4e61849e19fb325292d0c2c32f7bc" + integrity sha512-oJQC7a67iwExRYynKqn/O9Fl5gUjDa43ZQsZu2iKAADs/6YJ+u5MJ/wcq3CpJsn2KU/8j8HWAKOcDkkQXPuJ9A== + dependencies: + "@opentelemetry/core" "1.13.0" + "@opentelemetry/otlp-exporter-base" "0.39.1" + "@opentelemetry/otlp-proto-exporter-base" "0.39.1" + "@opentelemetry/otlp-transformer" "0.39.1" + "@opentelemetry/resources" "1.13.0" + "@opentelemetry/sdk-trace-base" "1.13.0" + +"@opentelemetry/exporter-trace-otlp-proto@^0.41.0": + version "0.41.2" + resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-trace-otlp-proto/-/exporter-trace-otlp-proto-0.41.2.tgz#8e8f823d5264e34dc7c8b400f9d03871c7bfcbc5" + integrity sha512-IGZga9IIckqYE3IpRE9FO9G5umabObIrChlXUHYpMJtDgx797dsb3qXCvLeuAwB+HoB8NsEZstlzmLnoa6/HmA== + dependencies: + "@opentelemetry/core" "1.15.2" + "@opentelemetry/otlp-exporter-base" "0.41.2" + "@opentelemetry/otlp-proto-exporter-base" "0.41.2" + "@opentelemetry/otlp-transformer" "0.41.2" + "@opentelemetry/resources" "1.15.2" + "@opentelemetry/sdk-trace-base" "1.15.2" + +"@opentelemetry/exporter-zipkin@1.13.0": + version "1.13.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-zipkin/-/exporter-zipkin-1.13.0.tgz#156ea40629e293a8bf5d80d7862df43440de13ea" + integrity sha512-4IuUmYEhlHm8tAGtd6KKkktEO9Bt7dpdBdAPVAzhmXsPwGi0yExo7E5qfi9HtHQcdfP9SnrGRkeorVtrZkGlhg== + dependencies: + "@opentelemetry/core" "1.13.0" + "@opentelemetry/resources" "1.13.0" + "@opentelemetry/sdk-trace-base" "1.13.0" + "@opentelemetry/semantic-conventions" "1.13.0" + +"@opentelemetry/instrumentation@0.39.1": + version "0.39.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation/-/instrumentation-0.39.1.tgz#46d03b4c7ce9f8d08f575d756acc801fa1283615" + integrity sha512-s7/9tPmM0l5KCd07VQizC4AO2/5UJdkXq5gMSHPdCeiMKSeBEdyDyQX7A+Cq+RYZM452qzFmrJ4ut628J5bnSg== + dependencies: + require-in-the-middle "^7.1.0" + semver "^7.3.2" + shimmer "^1.2.1" + +"@opentelemetry/otlp-exporter-base@0.39.1": + version "0.39.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.39.1.tgz#650c9b23bbc6eb335c5f9b7f433aca87e9dc88a3" + integrity sha512-Pv5X8fbi6jD/RJBePyn7MnCSuE6MbPB6dl+7YYBWJ5RcMGYMwvLXjd4h2jWsPV2TSUg38H/RoSP0aXvQ06Y7iw== + dependencies: + "@opentelemetry/core" "1.13.0" + +"@opentelemetry/otlp-exporter-base@0.41.2": + version "0.41.2" + resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.41.2.tgz#5928dfedb2a70117f03809862cf2cbdf8b7f9bf3" + integrity sha512-pfwa6d+Dax3itZcGWiA0AoXeVaCuZbbqUTsCtOysd2re8C2PWXNxDONUfBWsn+KgxAdi+ljwTjJGiaVLDaIEvQ== + dependencies: + "@opentelemetry/core" "1.15.2" + +"@opentelemetry/otlp-grpc-exporter-base@0.39.1": + version "0.39.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-grpc-exporter-base/-/otlp-grpc-exporter-base-0.39.1.tgz#944f2ab384c08c37641c02f63381380d9d0714f4" + integrity sha512-u3ErFRQqQFKjjIMuwLWxz/tLPYInfmiAmSy//fGSCzCh2ZdJgqQjMOAxBgqFtCF2xFL+OmMhyuC2ThMzceGRWA== + dependencies: + "@grpc/grpc-js" "^1.7.1" + "@opentelemetry/core" "1.13.0" + "@opentelemetry/otlp-exporter-base" "0.39.1" + protobufjs "^7.2.2" + +"@opentelemetry/otlp-grpc-exporter-base@0.41.2": + version "0.41.2" + resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-grpc-exporter-base/-/otlp-grpc-exporter-base-0.41.2.tgz#b056915aa274947517ac86b0c78533db274404e8" + integrity sha512-OErK8dYjXG01XIMIpmOV2SzL9ctkZ0Nyhf2UumICOAKtgLvR5dG1JMlsNVp8Jn0RzpsKc6Urv7JpP69wzRXN+A== + dependencies: + "@grpc/grpc-js" "^1.7.1" + "@opentelemetry/core" "1.15.2" + "@opentelemetry/otlp-exporter-base" "0.41.2" + protobufjs "^7.2.3" + +"@opentelemetry/otlp-proto-exporter-base@0.39.1": + version "0.39.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-proto-exporter-base/-/otlp-proto-exporter-base-0.39.1.tgz#04a46c7497724759a260d8ded5463a20ac5c6d39" + integrity sha512-VssdfGYu6LkSliQATdkvoP8lPSQuNLENRdHTUOV2veF4iqY/UpxBFFlkarY29W+MYjWXIBfYntgNjQvcn78A+w== + dependencies: + "@opentelemetry/core" "1.13.0" + "@opentelemetry/otlp-exporter-base" "0.39.1" + protobufjs "^7.1.2" + +"@opentelemetry/otlp-proto-exporter-base@0.41.2": + version "0.41.2" + resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-proto-exporter-base/-/otlp-proto-exporter-base-0.41.2.tgz#10b1a4bb973bd6e0e741931d90f22387c5a3a151" + integrity sha512-BxmEMiP6tHiFroe5/dTt9BsxCci7BTLtF7A6d4DKHLiLweWWZxQ9l7hON7qt/IhpKrQcAFD1OzZ1Gq2ZkNzhCw== + dependencies: + "@opentelemetry/core" "1.15.2" + "@opentelemetry/otlp-exporter-base" "0.41.2" + protobufjs "^7.2.3" + +"@opentelemetry/otlp-transformer@0.39.1": + version "0.39.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-transformer/-/otlp-transformer-0.39.1.tgz#6d83e33d2a031f9ae1dcaf29595eac25b681bebf" + integrity sha512-0hgVnXXz5efI382B/24NxD4b6Zxlh7nxCdJkxkdmQMbn0yRiwoq/ZT+QG8eUL6JNzsBAV1WJlF5aJNsL8skHvw== + dependencies: + "@opentelemetry/api-logs" "0.39.1" + "@opentelemetry/core" "1.13.0" + "@opentelemetry/resources" "1.13.0" + "@opentelemetry/sdk-logs" "0.39.1" + "@opentelemetry/sdk-metrics" "1.13.0" + "@opentelemetry/sdk-trace-base" "1.13.0" + +"@opentelemetry/otlp-transformer@0.41.2": + version "0.41.2" + resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-transformer/-/otlp-transformer-0.41.2.tgz#cd3a7185ef77fe9b7b4c2d2f9e001fa1d2fa6cf8" + integrity sha512-jJbPwB0tNu2v+Xi0c/v/R3YBLJKLonw1p+v3RVjT2VfzeUyzSp/tBeVdY7RZtL6dzZpA9XSmp8UEfWIFQo33yA== + dependencies: + "@opentelemetry/api-logs" "0.41.2" + "@opentelemetry/core" "1.15.2" + "@opentelemetry/resources" "1.15.2" + "@opentelemetry/sdk-logs" "0.41.2" + "@opentelemetry/sdk-metrics" "1.15.2" + "@opentelemetry/sdk-trace-base" "1.15.2" + +"@opentelemetry/propagator-b3@1.13.0": + version "1.13.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/propagator-b3/-/propagator-b3-1.13.0.tgz#30a19a24e61ae8dbc26c2d7d7d3423d804d48f07" + integrity sha512-HOo91EI4UbuG8xQVLFziTzrcIn0MJQhy8m9jorh8aonb94jFVFi3CFNIiAnIGOabmnshJLOABxpYXsiPB8Xnzg== + dependencies: + "@opentelemetry/core" "1.13.0" + +"@opentelemetry/propagator-jaeger@1.13.0": + version "1.13.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/propagator-jaeger/-/propagator-jaeger-1.13.0.tgz#94a79d5301409d49b149227ee5568fcf6b21f9fe" + integrity sha512-IV9TO+u1Jzm9mUDAD3gyXf89eyvgEJUY1t+GB5QmS4wjVeWrSMUtD0JjH3yG9SNqkrQOqOGJq7YUSSetW+Lf5Q== + dependencies: + "@opentelemetry/core" "1.13.0" + +"@opentelemetry/resources@1.13.0": + version "1.13.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/resources/-/resources-1.13.0.tgz#436b33ea950004e66fce6575f2776a05faca7f8e" + integrity sha512-euqjOkiN6xhjE//0vQYGvbStxoD/WWQRhDiO0OTLlnLBO9Yw2Gd/VoSx2H+svsebjzYk5OxLuREBmcdw6rbUNg== + dependencies: + "@opentelemetry/core" "1.13.0" + "@opentelemetry/semantic-conventions" "1.13.0" + +"@opentelemetry/resources@1.15.2": + version "1.15.2" + resolved "https://registry.yarnpkg.com/@opentelemetry/resources/-/resources-1.15.2.tgz#0c9e26cb65652a1402834a3c030cce6028d6dd9d" + integrity sha512-xmMRLenT9CXmm5HMbzpZ1hWhaUowQf8UB4jMjFlAxx1QzQcsD3KFNAVX/CAWzFPtllTyTplrA4JrQ7sCH3qmYw== + dependencies: + "@opentelemetry/core" "1.15.2" + "@opentelemetry/semantic-conventions" "1.15.2" + +"@opentelemetry/resources@1.18.1", "@opentelemetry/resources@^1.13.0": + version "1.18.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/resources/-/resources-1.18.1.tgz#e27bdc4715bccc8cd4a72d4aca3995ad0a496fe7" + integrity sha512-JjbcQLYMttXcIabflLRuaw5oof5gToYV9fuXbcsoOeQ0BlbwUn6DAZi++PNsSz2jjPeASfDls10iaO/8BRIPRA== + dependencies: + "@opentelemetry/core" "1.18.1" + "@opentelemetry/semantic-conventions" "1.18.1" + +"@opentelemetry/sdk-logs@0.39.1": + version "0.39.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-logs/-/sdk-logs-0.39.1.tgz#888af05458af5d097d6263ade118e8db78f76f38" + integrity sha512-/gmgKfZ1ZVFporKuwsewqIyvaUIGpv76JZ7lBpHQQPb37IMpaXO6pdqFI4ebHAWfNIm3akMyhmdtzivcgF3lgw== + dependencies: + "@opentelemetry/core" "1.13.0" + "@opentelemetry/resources" "1.13.0" + +"@opentelemetry/sdk-logs@0.41.2": + version "0.41.2" + resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-logs/-/sdk-logs-0.41.2.tgz#c3eeb6793bdfa52351d66e2e66637e433abed672" + integrity sha512-smqKIw0tTW15waj7BAPHFomii5c3aHnSE4LQYTszGoK5P9nZs8tEAIpu15UBxi3aG31ZfsLmm4EUQkjckdlFrw== + dependencies: + "@opentelemetry/core" "1.15.2" + "@opentelemetry/resources" "1.15.2" + +"@opentelemetry/sdk-metrics@1.13.0": + version "1.13.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-metrics/-/sdk-metrics-1.13.0.tgz#4e859107a7a4389bcda7b37d3952bc7dd34211d7" + integrity sha512-MOjZX6AnSOqLliCcZUrb+DQKjAWXBiGeICGbHAGe5w0BB18PJIeIo995lO5JSaFfHpmUMgJButTPfJJD27W3Vg== + dependencies: + "@opentelemetry/core" "1.13.0" + "@opentelemetry/resources" "1.13.0" + lodash.merge "4.6.2" + +"@opentelemetry/sdk-metrics@1.15.2": + version "1.15.2" + resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-metrics/-/sdk-metrics-1.15.2.tgz#eadd0a049de9cd860e1e0d49eea01156469c4b60" + integrity sha512-9aIlcX8GnhcsAHW/Wl8bzk4ZnWTpNlLtud+fxUfBtFATu6OZ6TrGrF4JkT9EVrnoxwtPIDtjHdEsSjOqisY/iA== + dependencies: + "@opentelemetry/core" "1.15.2" + "@opentelemetry/resources" "1.15.2" + lodash.merge "^4.6.2" + +"@opentelemetry/sdk-metrics@^1.13.0": + version "1.18.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-metrics/-/sdk-metrics-1.18.1.tgz#1dd334744a1e5d2eec27e9e9765c73cd2f43aef3" + integrity sha512-TEFgeNFhdULBYiCoHbz31Y4PDsfjjxRp8Wmdp6ybLQZPqMNEb+dRq+XN8Xw3ivIgTaf9gYsomgV5ensX99RuEQ== + dependencies: + "@opentelemetry/core" "1.18.1" + "@opentelemetry/resources" "1.18.1" + lodash.merge "^4.6.2" + +"@opentelemetry/sdk-node@^0.39.1": + version "0.39.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-node/-/sdk-node-0.39.1.tgz#0e3c0ee36c500e715a4c61fa4dd1985408ad0bb8" + integrity sha512-qODReBGNSdfRS5gvCFj1SdiIi/3ZFTZb0H1KvWE/OrTkklyL5RhIs7vDwvEGHmha+YpUu0Y2+R2+itSBSu/jCA== + dependencies: + "@opentelemetry/core" "1.13.0" + "@opentelemetry/exporter-jaeger" "1.13.0" + "@opentelemetry/exporter-trace-otlp-grpc" "0.39.1" + "@opentelemetry/exporter-trace-otlp-http" "0.39.1" + "@opentelemetry/exporter-trace-otlp-proto" "0.39.1" + "@opentelemetry/exporter-zipkin" "1.13.0" + "@opentelemetry/instrumentation" "0.39.1" + "@opentelemetry/resources" "1.13.0" + "@opentelemetry/sdk-metrics" "1.13.0" + "@opentelemetry/sdk-trace-base" "1.13.0" + "@opentelemetry/sdk-trace-node" "1.13.0" + "@opentelemetry/semantic-conventions" "1.13.0" + +"@opentelemetry/sdk-trace-base@1.13.0": + version "1.13.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.13.0.tgz#096cc2759430d880c5d886e009df2605097403dc" + integrity sha512-moTiQtc0uPR1hQLt6gLDJH9IIkeBhgRb71OKjNHZPE1VF45fHtD6nBDi5J/DkTHTwYP5X3kBJLa3xN7ub6J4eg== + dependencies: + "@opentelemetry/core" "1.13.0" + "@opentelemetry/resources" "1.13.0" + "@opentelemetry/semantic-conventions" "1.13.0" + +"@opentelemetry/sdk-trace-base@1.15.2": + version "1.15.2" + resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.15.2.tgz#4821f94033c55a6c8bbd35ae387b715b6108517a" + integrity sha512-BEaxGZbWtvnSPchV98qqqqa96AOcb41pjgvhfzDij10tkBhIu9m0Jd6tZ1tJB5ZHfHbTffqYVYE0AOGobec/EQ== + dependencies: + "@opentelemetry/core" "1.15.2" + "@opentelemetry/resources" "1.15.2" + "@opentelemetry/semantic-conventions" "1.15.2" + +"@opentelemetry/sdk-trace-base@^1.13.0": + version "1.18.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.18.1.tgz#256605d90b202002d5672305c66dbcf377132379" + integrity sha512-tRHfDxN5dO+nop78EWJpzZwHsN1ewrZRVVwo03VJa3JQZxToRDH29/+MB24+yoa+IArerdr7INFJiX/iN4gjqg== + dependencies: + "@opentelemetry/core" "1.18.1" + "@opentelemetry/resources" "1.18.1" + "@opentelemetry/semantic-conventions" "1.18.1" + +"@opentelemetry/sdk-trace-node@1.13.0": + version "1.13.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-node/-/sdk-trace-node-1.13.0.tgz#baadf62218ca69e37486debfbcf15b2563f75979" + integrity sha512-FXA85lXKTsnbOflA/TBuBf2pmhD3c8uDjNjG0YqK+ap8UayfALmfJhf+aG1yBOUHevCY0JXJ4/xtbXExxpsMog== + dependencies: + "@opentelemetry/context-async-hooks" "1.13.0" + "@opentelemetry/core" "1.13.0" + "@opentelemetry/propagator-b3" "1.13.0" + "@opentelemetry/propagator-jaeger" "1.13.0" + "@opentelemetry/sdk-trace-base" "1.13.0" + semver "^7.3.5" + +"@opentelemetry/semantic-conventions@1.13.0": + version "1.13.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.13.0.tgz#0290398b3eaebc6029c348988a78c3b688fe9219" + integrity sha512-LMGqfSZkaMQXqewO0o1wvWr/2fQdCh4a3Sqlxka/UsJCe0cfLulh6x2aqnKLnsrSGiCq5rSCwvINd152i0nCqw== + +"@opentelemetry/semantic-conventions@1.15.2": + version "1.15.2" + resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.15.2.tgz#3bafb5de3e20e841dff6cb3c66f4d6e9694c4241" + integrity sha512-CjbOKwk2s+3xPIMcd5UNYQzsf+v94RczbdNix9/kQh38WiQkM90sUOi3if8eyHFgiBjBjhwXrA7W3ydiSQP9mw== + +"@opentelemetry/semantic-conventions@1.18.1": + version "1.18.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.18.1.tgz#8e47caf57a84b1dcc1722b2025693348cdf443b4" + integrity sha512-+NLGHr6VZwcgE/2lw8zDIufOCGnzsA5CbQIMleXZTrgkBd0TanCX+MiDYJ1TOS4KL/Tqk0nFRxawnaYr6pkZkA== + +"@openzeppelin/contracts@4.9.0": + version "4.9.0" + resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-4.9.0.tgz#683f33b6598970051bc5f0806fd8660da9e018dd" + integrity sha512-DUP74AFGKlic2sQb/CmgrN2aUPMFGxRrmCTUxLHsiU2RzwWqVuMPZBxiAyvlff6Pea77uylAX6B5x9W6evEbhA== + +"@openzeppelin/contracts@^4.8.0": + version "4.9.3" + resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-4.9.3.tgz#00d7a8cf35a475b160b3f0293a6403c511099364" + integrity sha512-He3LieZ1pP2TNt5JbkPA4PNT9WC3gOTOlDcFGJW4Le4QKqwmiNJCRt44APfxMxvq7OugU/cqYuPcSBzOw38DAg== + +"@openzeppelin/merkle-tree@^1.0.5": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@openzeppelin/merkle-tree/-/merkle-tree-1.0.5.tgz#4836d377777a7e39f31674f06ec3d6909def7913" + integrity sha512-JkwG2ysdHeIphrScNxYagPy6jZeNONgDRyqU6lbFgE8HKCZFSkcP8r6AjZs+3HZk4uRNV0kNBBzuWhKQ3YV7Kw== + dependencies: + "@ethersproject/abi" "^5.7.0" + ethereum-cryptography "^1.1.2" + +"@parcel/watcher-android-arm64@2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.3.0.tgz#d82e74bb564ebd4d8a88791d273a3d2bd61e27ab" + integrity sha512-f4o9eA3dgk0XRT3XhB0UWpWpLnKgrh1IwNJKJ7UJek7eTYccQ8LR7XUWFKqw6aEq5KUNlCcGvSzKqSX/vtWVVA== + +"@parcel/watcher-darwin-arm64@2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.3.0.tgz#c9cd03f8f233d512fcfc873d5b4e23f1569a82ad" + integrity sha512-mKY+oijI4ahBMc/GygVGvEdOq0L4DxhYgwQqYAz/7yPzuGi79oXrZG52WdpGA1wLBPrYb0T8uBaGFo7I6rvSKw== + +"@parcel/watcher-darwin-x64@2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.3.0.tgz#83c902994a2a49b9e1ab5050dba24876fdc2c219" + integrity sha512-20oBj8LcEOnLE3mgpy6zuOq8AplPu9NcSSSfyVKgfOhNAc4eF4ob3ldj0xWjGGbOF7Dcy1Tvm6ytvgdjlfUeow== + +"@parcel/watcher-freebsd-x64@2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.3.0.tgz#7a0f4593a887e2752b706aff2dae509aef430cf6" + integrity sha512-7LftKlaHunueAEiojhCn+Ef2CTXWsLgTl4hq0pkhkTBFI3ssj2bJXmH2L67mKpiAD5dz66JYk4zS66qzdnIOgw== + +"@parcel/watcher-linux-arm-glibc@2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.3.0.tgz#3fc90c3ebe67de3648ed2f138068722f9b1d47da" + integrity sha512-1apPw5cD2xBv1XIHPUlq0cO6iAaEUQ3BcY0ysSyD9Kuyw4MoWm1DV+W9mneWI+1g6OeP6dhikiFE6BlU+AToTQ== + +"@parcel/watcher-linux-arm64-glibc@2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.3.0.tgz#f7bbbf2497d85fd11e4c9e9c26ace8f10ea9bcbc" + integrity sha512-mQ0gBSQEiq1k/MMkgcSB0Ic47UORZBmWoAWlMrTW6nbAGoLZP+h7AtUM7H3oDu34TBFFvjy4JCGP43JlylkTQA== + +"@parcel/watcher-linux-arm64-musl@2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.3.0.tgz#de131a9fcbe1fa0854e9cbf4c55bed3b35bcff43" + integrity sha512-LXZAExpepJew0Gp8ZkJ+xDZaTQjLHv48h0p0Vw2VMFQ8A+RKrAvpFuPVCVwKJCr5SE+zvaG+Etg56qXvTDIedw== + +"@parcel/watcher-linux-x64-glibc@2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.3.0.tgz#193dd1c798003cdb5a1e59470ff26300f418a943" + integrity sha512-P7Wo91lKSeSgMTtG7CnBS6WrA5otr1K7shhSjKHNePVmfBHDoAOHYRXgUmhiNfbcGk0uMCHVcdbfxtuiZCHVow== + +"@parcel/watcher-linux-x64-musl@2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.3.0.tgz#6dbdb86d96e955ab0fe4a4b60734ec0025a689dd" + integrity sha512-+kiRE1JIq8QdxzwoYY+wzBs9YbJ34guBweTK8nlzLKimn5EQ2b2FSC+tAOpq302BuIMjyuUGvBiUhEcLIGMQ5g== + +"@parcel/watcher-wasm@2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-wasm/-/watcher-wasm-2.3.0.tgz#73b66c6fbd2a3326ae86a1ec77eab7139d0dd725" + integrity sha512-ejBAX8H0ZGsD8lSICDNyMbSEtPMWgDL0WFCt/0z7hyf5v8Imz4rAM8xY379mBsECkq/Wdqa5WEDLqtjZ+6NxfA== + dependencies: + is-glob "^4.0.3" + micromatch "^4.0.5" + napi-wasm "^1.1.0" + +"@parcel/watcher-win32-arm64@2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.3.0.tgz#59da26a431da946e6c74fa6b0f30b120ea6650b6" + integrity sha512-35gXCnaz1AqIXpG42evcoP2+sNL62gZTMZne3IackM+6QlfMcJLy3DrjuL6Iks7Czpd3j4xRBzez3ADCj1l7Aw== + +"@parcel/watcher-win32-ia32@2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.3.0.tgz#3ee6a18b08929cd3b788e8cc9547fd9a540c013a" + integrity sha512-FJS/IBQHhRpZ6PiCjFt1UAcPr0YmCLHRbTc00IBTrelEjlmmgIVLeOx4MSXzx2HFEy5Jo5YdhGpxCuqCyDJ5ow== + +"@parcel/watcher-win32-x64@2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.3.0.tgz#14e7246289861acc589fd608de39fe5d8b4bb0a7" + integrity sha512-dLx+0XRdMnVI62kU3wbXvbIRhLck4aE28bIGKbRGS7BJNt54IIj9+c/Dkqb+7DJEbHUZAX1bwaoM8PqVlHJmCA== + +"@parcel/watcher@^2.1.0", "@parcel/watcher@^2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher/-/watcher-2.3.0.tgz#803517abbc3981a1a1221791d9f59dc0590d50f9" + integrity sha512-pW7QaFiL11O0BphO+bq3MgqeX/INAk9jgBldVDYjlQPO4VddoZnF22TcF9onMhnLVHuNqBJeRf+Fj7eezi/+rQ== + dependencies: + detect-libc "^1.0.3" + is-glob "^4.0.3" + micromatch "^4.0.5" + node-addon-api "^7.0.0" + optionalDependencies: + "@parcel/watcher-android-arm64" "2.3.0" + "@parcel/watcher-darwin-arm64" "2.3.0" + "@parcel/watcher-darwin-x64" "2.3.0" + "@parcel/watcher-freebsd-x64" "2.3.0" + "@parcel/watcher-linux-arm-glibc" "2.3.0" + "@parcel/watcher-linux-arm64-glibc" "2.3.0" + "@parcel/watcher-linux-arm64-musl" "2.3.0" + "@parcel/watcher-linux-x64-glibc" "2.3.0" + "@parcel/watcher-linux-x64-musl" "2.3.0" + "@parcel/watcher-win32-arm64" "2.3.0" + "@parcel/watcher-win32-ia32" "2.3.0" + "@parcel/watcher-win32-x64" "2.3.0" + +"@peculiar/asn1-schema@^2.3.6": + version "2.3.8" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.3.8.tgz#04b38832a814e25731232dd5be883460a156da3b" + integrity sha512-ULB1XqHKx1WBU/tTFIA+uARuRoBVZ4pNdOA878RDrRbBfBGcSzi5HBkdScC6ZbHn8z7L8gmKCgPC1LHRrP46tA== + dependencies: + asn1js "^3.0.5" + pvtsutils "^1.3.5" + tslib "^2.6.2" + +"@peculiar/json-schema@^1.1.12": + version "1.1.12" + resolved "https://registry.yarnpkg.com/@peculiar/json-schema/-/json-schema-1.1.12.tgz#fe61e85259e3b5ba5ad566cb62ca75b3d3cd5339" + integrity sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w== + dependencies: + tslib "^2.0.0" + +"@peculiar/webcrypto@^1.4.0": + version "1.4.3" + resolved "https://registry.yarnpkg.com/@peculiar/webcrypto/-/webcrypto-1.4.3.tgz#078b3e8f598e847b78683dc3ba65feb5029b93a7" + integrity sha512-VtaY4spKTdN5LjJ04im/d/joXuvLbQdgy5Z4DXF4MFZhQ+MTrejbNMkfZBp1Bs3O5+bFqnJgyGdPuZQflvIa5A== + dependencies: + "@peculiar/asn1-schema" "^2.3.6" + "@peculiar/json-schema" "^1.1.12" + pvtsutils "^1.3.2" + tslib "^2.5.0" + webcrypto-core "^1.7.7" + +"@pnpm/config.env-replace@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz#ab29da53df41e8948a00f2433f085f54de8b3a4c" + integrity sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w== + +"@pnpm/network.ca-file@^1.0.1": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz#2ab05e09c1af0cdf2fcf5035bea1484e222f7983" + integrity sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA== + dependencies: + graceful-fs "4.2.10" + +"@pnpm/npm-conf@^2.1.0": + version "2.2.2" + resolved "https://registry.yarnpkg.com/@pnpm/npm-conf/-/npm-conf-2.2.2.tgz#0058baf1c26cbb63a828f0193795401684ac86f0" + integrity sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA== + dependencies: + "@pnpm/config.env-replace" "^1.1.0" + "@pnpm/network.ca-file" "^1.0.1" + config-chain "^1.1.11" + +"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" + integrity sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ== + +"@protobufjs/base64@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" + integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== + +"@protobufjs/codegen@^2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" + integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== + +"@protobufjs/eventemitter@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" + integrity sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q== + +"@protobufjs/fetch@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" + integrity sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ== + dependencies: + "@protobufjs/aspromise" "^1.1.1" + "@protobufjs/inquire" "^1.1.0" + +"@protobufjs/float@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" + integrity sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ== + +"@protobufjs/inquire@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" + integrity sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q== + +"@protobufjs/path@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" + integrity sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA== + +"@protobufjs/pool@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" + integrity sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw== + +"@protobufjs/utf8@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" + integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== + +"@repeaterjs/repeater@3.0.4": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@repeaterjs/repeater/-/repeater-3.0.4.tgz#a04d63f4d1bf5540a41b01a921c9a7fddc3bd1ca" + integrity sha512-AW8PKd6iX3vAZ0vA43nOUOnbq/X5ihgU+mSXXqunMkeQADGiqw/PY0JNeYtD5sr0PAy51YPgAPbDoeapv9r8WA== + +"@repeaterjs/repeater@^3.0.4": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@repeaterjs/repeater/-/repeater-3.0.5.tgz#b77571685410217a548a9c753aa3cdfc215bfc78" + integrity sha512-l3YHBLAol6d/IKnB9LhpD0cEZWAoe3eFKUyTYWmFmCO2Q/WOckxLQAUyMZWwZV2M/m3+4vgRoaolFqaII82/TA== + +"@rescript/std@9.0.0": + version "9.0.0" + resolved "https://registry.yarnpkg.com/@rescript/std/-/std-9.0.0.tgz#df53f3fa5911cb4e85bd66b92e9e58ddf3e4a7e1" + integrity sha512-zGzFsgtZ44mgL4Xef2gOy1hrRVdrs9mcxCOOKZrIPsmbZW14yTkaF591GXxpQvjXiHtgZ/iA9qLyWH6oSReIxQ== + +"@resolver-engine/core@^0.3.3": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@resolver-engine/core/-/core-0.3.3.tgz#590f77d85d45bc7ecc4e06c654f41345db6ca967" + integrity sha512-eB8nEbKDJJBi5p5SrvrvILn4a0h42bKtbCTri3ZxCGt6UvoQyp7HnGOfki944bUjBSHKK3RvgfViHn+kqdXtnQ== + dependencies: + debug "^3.1.0" + is-url "^1.2.4" + request "^2.85.0" + +"@resolver-engine/fs@^0.3.3": + version "0.3.3" + 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" + debug "^3.1.0" + +"@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" + integrity sha512-7Pjg/ZAZtxpeyCFlZR5zqYkz+Wdo84ugB5LApwriT8XFeQoLwGUj4tZFFvvCuxaNCcqZzCYbonJgmGObYBzyCA== + dependencies: + "@resolver-engine/fs" "^0.3.3" + "@resolver-engine/imports" "^0.3.3" + debug "^3.1.0" + +"@resolver-engine/imports@^0.3.3": + version "0.3.3" + 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" + debug "^3.1.0" + hosted-git-info "^2.6.0" + path-browserify "^1.0.0" + url "^0.11.0" + +"@rollup/plugin-inject@^5.0.3": + version "5.0.5" + resolved "https://registry.yarnpkg.com/@rollup/plugin-inject/-/plugin-inject-5.0.5.tgz#616f3a73fe075765f91c5bec90176608bed277a3" + integrity sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg== + dependencies: + "@rollup/pluginutils" "^5.0.1" + estree-walker "^2.0.2" + magic-string "^0.30.3" + +"@rollup/pluginutils@^4.0.0", "@rollup/pluginutils@^4.2.0": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz#e6c6c3aba0744edce3fb2074922d3776c0af2a6d" + integrity sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ== + dependencies: + estree-walker "^2.0.1" + picomatch "^2.2.2" + +"@rollup/pluginutils@^5.0.1", "@rollup/pluginutils@^5.0.2": + version "5.0.5" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.0.5.tgz#bbb4c175e19ebfeeb8c132c2eea0ecb89941a66c" + integrity sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q== + dependencies: + "@types/estree" "^1.0.0" + estree-walker "^2.0.2" + picomatch "^2.3.1" + +"@rushstack/eslint-patch@^1.2.0": + version "1.6.0" + resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.6.0.tgz#1898e7a7b943680d757417a47fb10f5fcc230b39" + integrity sha512-2/U3GXA6YiPYQDLGwtGlnNgKYBSwCFIHf8Y9LUY5VATHdtbLlU0Y1R3QoBnT0aB4qv/BEiVVsj7LJXoQCgJ2vA== + +"@samverschueren/stream-to-observable@^0.3.0": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.1.tgz#a21117b19ee9be70c379ec1877537ef2e1c63301" + integrity sha512-c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ== + dependencies: + any-observable "^0.3.0" + +"@scure/base@~1.1.0": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.3.tgz#8584115565228290a6c6c4961973e0903bb3df2f" + integrity sha512-/+SgoRjLq7Xlf0CWuLHq2LUZeL/w65kfzAPG5NH9pcmBhs+nunQTn4gvdwgMTIXnt9b2C/1SeL2XiysZEyIC9Q== + +"@scure/bip32@1.1.5": + version "1.1.5" + resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.1.5.tgz#d2ccae16dcc2e75bc1d75f5ef3c66a338d1ba300" + integrity sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw== + dependencies: + "@noble/hashes" "~1.2.0" + "@noble/secp256k1" "~1.7.0" + "@scure/base" "~1.1.0" + +"@scure/bip32@1.3.1": + version "1.3.1" + 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.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.1.1.tgz#b54557b2e86214319405db819c4b6a370cf340c5" + integrity sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg== + dependencies: + "@noble/hashes" "~1.2.0" + "@scure/base" "~1.1.0" + +"@scure/bip39@1.2.1": + version "1.2.1" + 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" + "@scure/base" "~1.1.0" + +"@sentry/core@5.30.0": + version "5.30.0" + 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" + "@sentry/minimal" "5.30.0" + "@sentry/types" "5.30.0" + "@sentry/utils" "5.30.0" + tslib "^1.9.3" + +"@sentry/hub@5.30.0": + version "5.30.0" + resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-5.30.0.tgz#2453be9b9cb903404366e198bd30c7ca74cdc100" + integrity sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ== + dependencies: + "@sentry/types" "5.30.0" + "@sentry/utils" "5.30.0" + tslib "^1.9.3" + +"@sentry/minimal@5.30.0": + version "5.30.0" + 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" + "@sentry/types" "5.30.0" + tslib "^1.9.3" + +"@sentry/node@^5.18.1": + version "5.30.0" + resolved "https://registry.yarnpkg.com/@sentry/node/-/node-5.30.0.tgz#4ca479e799b1021285d7fe12ac0858951c11cd48" + 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" + +"@sentry/tracing@5.30.0": + version "5.30.0" + resolved "https://registry.yarnpkg.com/@sentry/tracing/-/tracing-5.30.0.tgz#501d21f00c3f3be7f7635d8710da70d9419d4e1f" + 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" + +"@sentry/types@5.30.0": + version "5.30.0" + 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.yarnpkg.com/@sentry/utils/-/utils-5.30.0.tgz#9a5bd7ccff85ccfe7856d493bffa64cabc41e980" + integrity sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww== + dependencies: + "@sentry/types" "5.30.0" + tslib "^1.9.3" + +"@sindresorhus/is@^0.14.0": + version "0.14.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" + integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== + +"@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" + integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== + +"@sindresorhus/is@^5.2.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-5.6.0.tgz#41dd6093d34652cddb5d5bdeee04eafc33826668" + integrity sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g== + +"@sindresorhus/slugify@^2.0.0": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@sindresorhus/slugify/-/slugify-2.2.1.tgz#fa2e2e25d6e1e74a2eeb5e2c37f5ccc516ed2c4b" + integrity sha512-MkngSCRZ8JdSOCHRaYd+D01XhvU3Hjy6MGl06zhOk614hp9EOAp5gIkBeQg7wtmxpitU6eAL4kdiRMcJa2dlrw== + dependencies: + "@sindresorhus/transliterate" "^1.0.0" + escape-string-regexp "^5.0.0" + +"@sindresorhus/transliterate@^1.0.0": + version "1.6.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/transliterate/-/transliterate-1.6.0.tgz#2309fff65a868047e6d2dd70dec747c5b36a8327" + integrity sha512-doH1gimEu3A46VX6aVxpHTeHrytJAG6HgdxntYnCFiIFHEM/ZGpG8KiZGBChchjQmG0XFIBL552kBTjVcMZXwQ== + dependencies: + escape-string-regexp "^5.0.0" + +"@solidity-parser/parser@^0.16.0": + 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" + +"@stablelib/aead@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/aead/-/aead-1.0.1.tgz#c4b1106df9c23d1b867eb9b276d8f42d5fc4c0c3" + integrity sha512-q39ik6sxGHewqtO0nP4BuSe3db5G1fEJE8ukvngS2gLkBXyy6E7pLubhbYgnkDFv6V8cWaxcE4Xn0t6LWcJkyg== + +"@stablelib/binary@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/binary/-/binary-1.0.1.tgz#c5900b94368baf00f811da5bdb1610963dfddf7f" + integrity sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q== + dependencies: + "@stablelib/int" "^1.0.1" + +"@stablelib/bytes@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/bytes/-/bytes-1.0.1.tgz#0f4aa7b03df3080b878c7dea927d01f42d6a20d8" + integrity sha512-Kre4Y4kdwuqL8BR2E9hV/R5sOrUj6NanZaZis0V6lX5yzqC3hBuVSDXUIBqQv/sCpmuWRiHLwqiT1pqqjuBXoQ== + +"@stablelib/chacha20poly1305@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/chacha20poly1305/-/chacha20poly1305-1.0.1.tgz#de6b18e283a9cb9b7530d8767f99cde1fec4c2ee" + integrity sha512-MmViqnqHd1ymwjOQfghRKw2R/jMIGT3wySN7cthjXCBdO+qErNPUBnRzqNpnvIwg7JBCg3LdeCZZO4de/yEhVA== + dependencies: + "@stablelib/aead" "^1.0.1" + "@stablelib/binary" "^1.0.1" + "@stablelib/chacha" "^1.0.1" + "@stablelib/constant-time" "^1.0.1" + "@stablelib/poly1305" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/chacha@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/chacha/-/chacha-1.0.1.tgz#deccfac95083e30600c3f92803a3a1a4fa761371" + integrity sha512-Pmlrswzr0pBzDofdFuVe1q7KdsHKhhU24e8gkEwnTGOmlC7PADzLVxGdn2PoNVBBabdg0l/IfLKg6sHAbTQugg== + dependencies: + "@stablelib/binary" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/constant-time@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/constant-time/-/constant-time-1.0.1.tgz#bde361465e1cf7b9753061b77e376b0ca4c77e35" + integrity sha512-tNOs3uD0vSJcK6z1fvef4Y+buN7DXhzHDPqRLSXUel1UfqMB1PWNsnnAezrKfEwTLpN0cGH2p9NNjs6IqeD0eg== + +"@stablelib/ed25519@^1.0.2": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@stablelib/ed25519/-/ed25519-1.0.3.tgz#f8fdeb6f77114897c887bb6a3138d659d3f35996" + integrity sha512-puIMWaX9QlRsbhxfDc5i+mNPMY+0TmQEskunY1rZEBPi1acBCVQAhnsk/1Hk50DGPtVsZtAWQg4NHGlVaO9Hqg== + dependencies: + "@stablelib/random" "^1.0.2" + "@stablelib/sha512" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/hash@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/hash/-/hash-1.0.1.tgz#3c944403ff2239fad8ebb9015e33e98444058bc5" + integrity sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg== + +"@stablelib/hkdf@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/hkdf/-/hkdf-1.0.1.tgz#b4efd47fd56fb43c6a13e8775a54b354f028d98d" + integrity sha512-SBEHYE16ZXlHuaW5RcGk533YlBj4grMeg5TooN80W3NpcHRtLZLLXvKyX0qcRFxf+BGDobJLnwkvgEwHIDBR6g== + dependencies: + "@stablelib/hash" "^1.0.1" + "@stablelib/hmac" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/hmac@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/hmac/-/hmac-1.0.1.tgz#3d4c1b8cf194cb05d28155f0eed8a299620a07ec" + integrity sha512-V2APD9NSnhVpV/QMYgCVMIYKiYG6LSqw1S65wxVoirhU/51ACio6D4yDVSwMzuTJXWZoVHbDdINioBwKy5kVmA== + dependencies: + "@stablelib/constant-time" "^1.0.1" + "@stablelib/hash" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/int@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/int/-/int-1.0.1.tgz#75928cc25d59d73d75ae361f02128588c15fd008" + integrity sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w== + +"@stablelib/keyagreement@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/keyagreement/-/keyagreement-1.0.1.tgz#4612efb0a30989deb437cd352cee637ca41fc50f" + integrity sha512-VKL6xBwgJnI6l1jKrBAfn265cspaWBPAPEc62VBQrWHLqVgNRE09gQ/AnOEyKUWrrqfD+xSQ3u42gJjLDdMDQg== + dependencies: + "@stablelib/bytes" "^1.0.1" + +"@stablelib/poly1305@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/poly1305/-/poly1305-1.0.1.tgz#93bfb836c9384685d33d70080718deae4ddef1dc" + integrity sha512-1HlG3oTSuQDOhSnLwJRKeTRSAdFNVB/1djy2ZbS35rBSJ/PFqx9cf9qatinWghC2UbfOYD8AcrtbUQl8WoxabA== + dependencies: + "@stablelib/constant-time" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/random@^1.0.1", "@stablelib/random@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@stablelib/random/-/random-1.0.2.tgz#2dece393636489bf7e19c51229dd7900eddf742c" + integrity sha512-rIsE83Xpb7clHPVRlBj8qNe5L8ISQOzjghYQm/dZ7VaM2KHYwMW5adjQjrzTZCchFnNCNhkwtnOBa9HTMJCI8w== + dependencies: + "@stablelib/binary" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/sha256@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/sha256/-/sha256-1.0.1.tgz#77b6675b67f9b0ea081d2e31bda4866297a3ae4f" + integrity sha512-GIIH3e6KH+91FqGV42Kcj71Uefd/QEe7Dy42sBTeqppXV95ggCcxLTk39bEr+lZfJmp+ghsR07J++ORkRELsBQ== + dependencies: + "@stablelib/binary" "^1.0.1" + "@stablelib/hash" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/sha512@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/sha512/-/sha512-1.0.1.tgz#6da700c901c2c0ceacbd3ae122a38ac57c72145f" + integrity sha512-13gl/iawHV9zvDKciLo1fQ8Bgn2Pvf7OV6amaRVKiq3pjQ3UmEpXxWiAfV8tYjUpeZroBxtyrwtdooQT/i3hzw== + dependencies: + "@stablelib/binary" "^1.0.1" + "@stablelib/hash" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/wipe@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/wipe/-/wipe-1.0.1.tgz#d21401f1d59ade56a62e139462a97f104ed19a36" + integrity sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg== + +"@stablelib/x25519@^1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@stablelib/x25519/-/x25519-1.0.3.tgz#13c8174f774ea9f3e5e42213cbf9fc68a3c7b7fd" + integrity sha512-KnTbKmUhPhHavzobclVJQG5kuivH+qDLpe84iRqX3CLrKp881cF160JvXJ+hjn1aMyCwYOKeIZefIH/P5cJoRw== + dependencies: + "@stablelib/keyagreement" "^1.0.1" + "@stablelib/random" "^1.0.2" + "@stablelib/wipe" "^1.0.1" + +"@szmarczak/http-timer@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" + integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== + dependencies: + defer-to-connect "^1.0.1" + +"@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" + 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" + integrity sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw== + dependencies: + defer-to-connect "^2.0.1" + +"@tokenizer/token@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@tokenizer/token/-/token-0.3.0.tgz#fe98a93fe789247e998c75e74e9c7c63217aa276" + integrity sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A== + +"@tootallnate/once@2": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" + integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== + +"@tsconfig/node10@^1.0.7": + version "1.0.9" + 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.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.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.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" + integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== + +"@typechain/ethers-v5@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@typechain/ethers-v5/-/ethers-v5-2.0.0.tgz#cd3ca1590240d587ca301f4c029b67bfccd08810" + integrity sha512-0xdCkyGOzdqh4h5JSf+zoWx85IusEjDcPIwNEHP8mrWSnCae4rvrqB+/gtpdNfX7zjlFlZiMeePn2r63EI3Lrw== + dependencies: + ethers "^5.0.2" + +"@types/bn.js@^4.11.3", "@types/bn.js@^4.11.5": + version "4.11.6" + 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.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.3.tgz#a430b3260466ca7b5ca5bfd735693b36e7a9d183" + integrity sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw== + dependencies: + "@types/http-cache-semantics" "*" + "@types/keyv" "^3.1.4" + "@types/node" "*" + "@types/responselike" "^1.0.0" + +"@types/chai-as-promised@^7.1.3": + version "7.1.8" + resolved "https://registry.yarnpkg.com/@types/chai-as-promised/-/chai-as-promised-7.1.8.tgz#f2b3d82d53c59626b5d6bbc087667ccb4b677fe9" + integrity sha512-ThlRVIJhr69FLlh6IctTXFkmhtP3NpMZ2QGq69StYLyKZFp/HOp1VdKZj7RvfNWYYcJ1xlbLGLLWj1UvP5u/Gw== + dependencies: + "@types/chai" "*" + +"@types/chai-subset@^1.3.3": + version "1.3.5" + resolved "https://registry.yarnpkg.com/@types/chai-subset/-/chai-subset-1.3.5.tgz#3fc044451f26985f45625230a7f22284808b0a9a" + integrity sha512-c2mPnw+xHtXDoHmdtcCXGwyLMiauiAyxWMzhGpqHC4nqI/Y5G2XhTampslK2rb59kpcuHon03UH8W6iYUzw88A== + dependencies: + "@types/chai" "*" + +"@types/chai@*", "@types/chai@^4.2.11", "@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/cli-progress@^3.11.0": + version "3.11.5" + resolved "https://registry.yarnpkg.com/@types/cli-progress/-/cli-progress-3.11.5.tgz#9518c745e78557efda057e3f96a5990c717268c3" + integrity sha512-D4PbNRbviKyppS5ivBGyFO29POlySLmA2HyUFE4p5QGazAMM3CwkKWcvTl8gvElSuxRh6FPKL8XmidX873ou4g== + dependencies: + "@types/node" "*" + +"@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" + integrity sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA== + dependencies: + "@types/node" "*" + +"@types/connect@^3.4.33": + version "3.4.38" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858" + integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== + dependencies: + "@types/node" "*" + +"@types/estree@^1.0.0": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" + integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== + +"@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" + integrity sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw== + dependencies: + "@types/node" "*" + +"@types/http-cache-semantics@*", "@types/http-cache-semantics@^4.0.2": + 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/http-proxy@^1.17.8": + version "1.17.14" + resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.14.tgz#57f8ccaa1c1c3780644f8a94f9c6b5000b5e2eec" + integrity sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w== + dependencies: + "@types/node" "*" + +"@types/humanize-duration@^3.27.1": + version "3.27.3" + resolved "https://registry.yarnpkg.com/@types/humanize-duration/-/humanize-duration-3.27.3.tgz#fa49ada1cc65222d5f1295c7756b6877f5a96bcf" + integrity sha512-wiiiFYjnrYDJE/ujU7wS/NShqp12IKrejozjDtcejP0zYi+cjyjVcfZHwcFUDKVJ7tHGsmgeW2ED92ABIIjfpg== + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7" + integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== + +"@types/istanbul-lib-report@*": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz#53047614ae72e19fc0401d872de3ae2b4ce350bf" + integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^3.0.0": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz#0f03e3d2f670fbdac586e34b433783070cc16f54" + integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ== + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/js-yaml@^4.0.0": + version "4.0.9" + resolved "https://registry.yarnpkg.com/@types/js-yaml/-/js-yaml-4.0.9.tgz#cd82382c4f902fed9691a2ed79ec68c5898af4c2" + integrity sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg== + +"@types/json-schema@^7.0.9": + 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/json-stable-stringify@^1.0.32": + version "1.0.36" + resolved "https://registry.yarnpkg.com/@types/json-stable-stringify/-/json-stable-stringify-1.0.36.tgz#fe6c6001a69ff8160a772da08779448a333c7ddd" + integrity sha512-b7bq23s4fgBB76n34m2b3RBf6M369B0Z9uRR8aHTMd8kZISRkmDEpPD8hhpYvDFzr3bJCPES96cm3Q6qRNDbQw== + +"@types/keyv@^3.1.4": + version "3.1.4" + resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.4.tgz#3ccdb1c6751b0c7e52300bcdacd5bcbf8faa75b6" + integrity sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg== + dependencies: + "@types/node" "*" + +"@types/long@^4.0.1": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a" + integrity sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA== + +"@types/lru-cache@^5.1.0": + version "5.1.1" + resolved "https://registry.yarnpkg.com/@types/lru-cache/-/lru-cache-5.1.1.tgz#c48c2e27b65d2a153b19bfc1a317e30872e01eef" + integrity sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw== + +"@types/luxon@^3.1.0": + version "3.3.5" + resolved "https://registry.yarnpkg.com/@types/luxon/-/luxon-3.3.5.tgz#ffdcec196994998dbef6284523b3ac88a9e6c45f" + integrity sha512-1cyf6Ge/94zlaWIZA2ei1pE6SZ8xpad2hXaYa5JEFiaUH0YS494CZwyi4MXNpXD9oEuv6ZH0Bmh0e7F9sPhmZA== + +"@types/minimatch@^3.0.4": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" + integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== + +"@types/minimist@^1.2.0": + version "1.2.5" + resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.5.tgz#ec10755e871497bcd83efe927e43ec46e8c0747e" + integrity sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag== + +"@types/mkdirp@^0.5.2": + version "0.5.2" + resolved "https://registry.yarnpkg.com/@types/mkdirp/-/mkdirp-0.5.2.tgz#503aacfe5cc2703d5484326b1b27efa67a339c1f" + integrity sha512-U5icWpv7YnZYGsN4/cmh3WD2onMY0aJIiTE6+51TwJCttdHvtCYmkBNOobHlXwrJRL0nkH9jH4kD+1FAdMN4Tg== + dependencies: + "@types/node" "*" + +"@types/mocha@^7.0.2": + version "7.0.2" + resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-7.0.2.tgz#b17f16cf933597e10d6d78eae3251e692ce8b0ce" + integrity sha512-ZvO2tAcjmMi8V/5Z3JsyofMe3hasRcaw88cto5etSVMwVQfeivGAlEYmaQgceUSVYFofVjT+ioHsATjdWcFt1w== + +"@types/node-fetch@^2.5.5": + version "2.6.9" + resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.9.tgz#15f529d247f1ede1824f7e7acdaa192d5f28071e" + integrity sha512-bQVlnMLFJ2d35DkPNjEPmd9ueO/rh5EiaZt2bhqiSarPjZIuIV6bPQVqcrEyvNo+AfTrRGVazle1tl597w3gfA== + dependencies: + "@types/node" "*" + form-data "^4.0.0" + +"@types/node@*", "@types/node@>=12.12.47", "@types/node@>=13.7.0": + version "20.10.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.10.0.tgz#16ddf9c0a72b832ec4fcce35b8249cf149214617" + integrity sha512-D0WfRmU9TQ8I9PFx9Yc+EBHw+vSpIub4IDvQivcp26PtPrdMGAq5SDcpXEo/epqa/DXotVpekHiLNTg3iaKXBQ== + dependencies: + undici-types "~5.26.4" + +"@types/node@^10.0.3": + version "10.17.60" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" + integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== + +"@types/node@^12.12.54", "@types/node@^12.12.6": + version "12.20.55" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" + integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== + +"@types/node@^13.9.2": + version "13.13.52" + resolved "https://registry.yarnpkg.com/@types/node/-/node-13.13.52.tgz#03c13be70b9031baaed79481c0c0cfb0045e53f7" + integrity sha512-s3nugnZumCC//n4moGGe6tkNMyYEdaDBitVjwPxXmR5lnMG5dHePinH2EdxkG3Rh1ghFHHixAG4NJhpJW1rthQ== + +"@types/node@^8.0.0": + version "8.10.66" + resolved "https://registry.yarnpkg.com/@types/node/-/node-8.10.66.tgz#dd035d409df322acc83dff62a602f12a5783bbb3" + integrity sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw== + +"@types/normalize-package-data@^2.4.0", "@types/normalize-package-data@^2.4.1": + version "2.4.4" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz#56e2cc26c397c038fab0e3a917a12d5c5909e901" + integrity sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA== + +"@types/parse-json@^4.0.0": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.2.tgz#5950e50960793055845e956c427fc2b0d70c5239" + integrity sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw== + +"@types/pbkdf2@^3.0.0": + 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@^1.13.2": + version "1.19.1" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-1.19.1.tgz#33509849f8e679e4add158959fdb086440e9553f" + integrity sha512-5qOlnZscTn4xxM5MeGXAMOsIOIKIbh9e85zJWfBRVPlRMEVawzoPhINYbRGkBZCI8LxvBe7tJCdWiarA99OZfQ== + +"@types/prettier@^2.1.1": + version "2.7.3" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.3.tgz#3e51a17e291d01d17d3fc61422015a933af7a08f" + integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA== + +"@types/qrcode@^1.5.0": + version "1.5.5" + resolved "https://registry.yarnpkg.com/@types/qrcode/-/qrcode-1.5.5.tgz#993ff7c6b584277eee7aac0a20861eab682f9dac" + integrity sha512-CdfBi/e3Qk+3Z/fXYShipBT13OJ2fDO2Q2w5CIP5anLTLIndQG9z6P1cnm+8zCWSpm5dnxMFd/uREtb0EXuQzg== + dependencies: + "@types/node" "*" + +"@types/qs@^6.2.31": + version "6.9.10" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.10.tgz#0af26845b5067e1c9a622658a51f60a3934d51e8" + integrity sha512-3Gnx08Ns1sEoCrWssEgTSJs/rsT2vhGP+Ja9cnnk9k4ALxinORlQneLXFeFKOTJMOeZUFD1s7w+w2AphTpvzZw== + +"@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" + integrity sha512-oM5JSKQCcICF1wvGgmecmHldZ48OZamtMxcGGVICOJA8o8cahXC1zEVAif8iwoc5j8etxFaRFnf095+CDsuoFQ== + dependencies: + "@types/node" "*" + safe-buffer "~5.1.1" + +"@types/resolve@^0.0.8": + version "0.0.8" + resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-0.0.8.tgz#f26074d238e02659e323ce1a13d041eee280e194" + integrity sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ== + dependencies: + "@types/node" "*" + +"@types/responselike@^1.0.0": + 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/retry@0.12.1": + version "0.12.1" + resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.1.tgz#d8f1c0d0dc23afad6dc16a9e993a0865774b4065" + integrity sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g== + +"@types/secp256k1@^4.0.1": + 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/semver@^7.3.12": + version "7.5.6" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.6.tgz#c65b2bfce1bec346582c07724e3f8c1017a20339" + integrity sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A== + +"@types/triple-beam@^1.3.2": + version "1.3.5" + resolved "https://registry.yarnpkg.com/@types/triple-beam/-/triple-beam-1.3.5.tgz#74fef9ffbaa198eb8b588be029f38b00299caa2c" + integrity sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw== + +"@types/trusted-types@^2.0.2": + version "2.0.7" + resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.7.tgz#baccb07a970b91707df3a3e8ba6896c57ead2d11" + integrity sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw== + +"@types/web-bluetooth@^0.0.16": + version "0.0.16" + resolved "https://registry.yarnpkg.com/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz#1d12873a8e49567371f2a75fe3e7f7edca6662d8" + integrity sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ== + +"@types/web-bluetooth@^0.0.20": + version "0.0.20" + resolved "https://registry.yarnpkg.com/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz#f066abfcd1cbe66267cdbbf0de010d8a41b41597" + integrity sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow== + +"@types/ws@^7.4.4": + version "7.4.7" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.4.7.tgz#f7c390a36f7a0679aa69de2d501319f4f8d9b702" + integrity sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww== + dependencies: + "@types/node" "*" + +"@types/ws@^8.0.0": + version "8.5.10" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.10.tgz#4acfb517970853fa6574a3a6886791d04a396787" + integrity sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A== + dependencies: + "@types/node" "*" + +"@types/yargs-parser@*": + version "21.0.3" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15" + integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== + +"@types/yargs@^16.0.0": + version "16.0.9" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.9.tgz#ba506215e45f7707e6cbcaf386981155b7ab956e" + integrity sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA== + dependencies: + "@types/yargs-parser" "*" + +"@types/yauzl@^2.9.1": + version "2.10.3" + resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.10.3.tgz#e9b2808b4f109504a03cda958259876f61017999" + integrity sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q== + dependencies: + "@types/node" "*" + +"@typescript-eslint/eslint-plugin@^5.44.0", "@typescript-eslint/eslint-plugin@^5.59.1": + version "5.62.0" + 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" + "@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" + +"@typescript-eslint/parser@^5.44.0", "@typescript-eslint/parser@^5.59.1": + version "5.62.0" + 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" + "@typescript-eslint/types" "5.62.0" + "@typescript-eslint/typescript-estree" "5.62.0" + debug "^4.3.4" + +"@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" + integrity sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w== + dependencies: + "@typescript-eslint/types" "5.62.0" + "@typescript-eslint/visitor-keys" "5.62.0" + +"@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" + integrity sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew== + dependencies: + "@typescript-eslint/typescript-estree" "5.62.0" + "@typescript-eslint/utils" "5.62.0" + debug "^4.3.4" + tsutils "^3.21.0" + +"@typescript-eslint/types@5.62.0": + version "5.62.0" + 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", "@typescript-eslint/typescript-estree@^5.59.5": + version "5.62.0" + 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" + "@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" + +"@typescript-eslint/utils@5.62.0": + version "5.62.0" + 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" + "@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" + +"@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" + integrity sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw== + dependencies: + "@typescript-eslint/types" "5.62.0" + eslint-visitor-keys "^3.3.0" + +"@ungap/promise-all-settled@1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44" + integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q== + +"@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== + +"@vercel/nft@^0.23.0": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@vercel/nft/-/nft-0.23.1.tgz#f17c5f9d3f3a0178ea25eb7397a14618c00529bf" + integrity sha512-NE0xSmGWVhgHF1OIoir71XAd0W0C1UE3nzFyhpFiMr3rVhetww7NvM1kc41trBsPG37Bh+dE5FYCTMzM/gBu0w== + dependencies: + "@mapbox/node-pre-gyp" "^1.0.5" + "@rollup/pluginutils" "^4.0.0" + acorn "^8.6.0" + async-sema "^3.1.1" + bindings "^1.4.0" + estree-walker "2.0.2" + glob "^7.1.3" + graceful-fs "^4.2.9" + micromatch "^4.0.2" + node-gyp-build "^4.2.2" + resolve-from "^5.0.0" + +"@vercel/nft@^0.24.3": + version "0.24.3" + resolved "https://registry.yarnpkg.com/@vercel/nft/-/nft-0.24.3.tgz#7a6c5b17a4ac153bd07d9d0511ccef20d1cefa66" + integrity sha512-IyBdIxmFAeGZnEfMgt4QrGK7XX4lWazlQj34HEi9dw04/WeDBJ7r1yaOIO5tTf9pbfvwUFodj9b0H+NDGGoOMg== + dependencies: + "@mapbox/node-pre-gyp" "^1.0.5" + "@rollup/pluginutils" "^4.0.0" + acorn "^8.6.0" + async-sema "^3.1.1" + bindings "^1.4.0" + estree-walker "2.0.2" + glob "^7.1.3" + graceful-fs "^4.2.9" + micromatch "^4.0.2" + node-gyp-build "^4.2.2" + resolve-from "^5.0.0" + +"@vitejs/plugin-vue@3.2.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-3.2.0.tgz#a1484089dd85d6528f435743f84cdd0d215bbb54" + integrity sha512-E0tnaL4fr+qkdCNxJ+Xd0yM31UwMkQje76fsDVBBUCoGOUPexu2VDUYHL8P4CwV+zMvWw6nlRw19OnRKmYAJpw== + +"@volar/language-core@1.10.10", "@volar/language-core@~1.10.5": + version "1.10.10" + resolved "https://registry.yarnpkg.com/@volar/language-core/-/language-core-1.10.10.tgz#9c240a36dd4007b9c4f00739f6cecb81da54a49e" + integrity sha512-nsV1o3AZ5n5jaEAObrS3MWLBWaGwUj/vAsc15FVNIv+DbpizQRISg9wzygsHBr56ELRH8r4K75vkYNMtsSNNWw== + dependencies: + "@volar/source-map" "1.10.10" + +"@volar/source-map@1.10.10", "@volar/source-map@~1.10.5": + version "1.10.10" + resolved "https://registry.yarnpkg.com/@volar/source-map/-/source-map-1.10.10.tgz#ec807fe60b8afe29e19bf6d1c90d2e76502df541" + integrity sha512-GVKjLnifV4voJ9F0vhP56p4+F3WGf+gXlRtjFZsv6v3WxBTWU3ZVeaRaEHJmWrcv5LXmoYYpk/SC25BKemPRkg== + dependencies: + muggle-string "^0.3.1" + +"@volar/typescript@~1.10.5": + version "1.10.10" + resolved "https://registry.yarnpkg.com/@volar/typescript/-/typescript-1.10.10.tgz#1f88202c63988ddfcee154a93050312041b83329" + integrity sha512-4a2r5bdUub2m+mYVnLu2wt59fuoYWe7nf0uXtGHU8QQ5LDNfzAR0wK7NgDiQ9rcl2WT3fxT2AA9AylAwFtj50A== + dependencies: + "@volar/language-core" "1.10.10" + path-browserify "^1.0.1" + +"@vue/compiler-core@3.3.9": + version "3.3.9" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.3.9.tgz#df1fc7947dcef5c2e12d257eae540057707f47d1" + integrity sha512-+/Lf68Vr/nFBA6ol4xOtJrW+BQWv3QWKfRwGSm70jtXwfhZNF4R/eRgyVJYoxFRhdCTk/F6g99BP0ffPgZihfQ== + dependencies: + "@babel/parser" "^7.23.3" + "@vue/shared" "3.3.9" + estree-walker "^2.0.2" + source-map-js "^1.0.2" + +"@vue/compiler-dom@3.3.9", "@vue/compiler-dom@^3.3.0": + version "3.3.9" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.3.9.tgz#67315ea4193d9d18c7a710889b8f90f7aa3914d2" + integrity sha512-nfWubTtLXuT4iBeDSZ5J3m218MjOy42Vp2pmKVuBKo2/BLcrFUX8nCSr/bKRFiJ32R8qbdnnnBgRn9AdU5v0Sg== + dependencies: + "@vue/compiler-core" "3.3.9" + "@vue/shared" "3.3.9" + +"@vue/compiler-sfc@3.3.9", "@vue/compiler-sfc@^3.2.45": + version "3.3.9" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.3.9.tgz#5900906baba1a90389200d81753ad0f7ceb98a83" + integrity sha512-wy0CNc8z4ihoDzjASCOCsQuzW0A/HP27+0MDSSICMjVIFzk/rFViezkR3dzH+miS2NDEz8ywMdbjO5ylhOLI2A== + dependencies: + "@babel/parser" "^7.23.3" + "@vue/compiler-core" "3.3.9" + "@vue/compiler-dom" "3.3.9" + "@vue/compiler-ssr" "3.3.9" + "@vue/reactivity-transform" "3.3.9" + "@vue/shared" "3.3.9" + estree-walker "^2.0.2" + magic-string "^0.30.5" + postcss "^8.4.31" + source-map-js "^1.0.2" + +"@vue/compiler-ssr@3.3.9": + version "3.3.9" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.3.9.tgz#3b3dbfa5368165fa4ff74c060503b4087ec1beed" + integrity sha512-NO5oobAw78R0G4SODY5A502MGnDNiDjf6qvhn7zD7TJGc8XDeIEw4fg6JU705jZ/YhuokBKz0A5a/FL/XZU73g== + dependencies: + "@vue/compiler-dom" "3.3.9" + "@vue/shared" "3.3.9" + +"@vue/devtools-api@^6.5.0": + version "6.5.1" + resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.5.1.tgz#7f71f31e40973eeee65b9a64382b13593fdbd697" + integrity sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA== + +"@vue/eslint-config-prettier@^7.0.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@vue/eslint-config-prettier/-/eslint-config-prettier-7.1.0.tgz#97936379c7fb1d982b9d2c6b122306e3c2e464c8" + integrity sha512-Pv/lVr0bAzSIHLd9iz0KnvAr4GKyCEl+h52bc4e5yWuDVtLgFwycF7nrbWTAQAS+FU6q1geVd07lc6EWfJiWKQ== + dependencies: + eslint-config-prettier "^8.3.0" + eslint-plugin-prettier "^4.0.0" + +"@vue/eslint-config-typescript@^11.0.2": + version "11.0.3" + resolved "https://registry.yarnpkg.com/@vue/eslint-config-typescript/-/eslint-config-typescript-11.0.3.tgz#c720efa657d102cd2945bc54b4a79f35d57f6307" + integrity sha512-dkt6W0PX6H/4Xuxg/BlFj5xHvksjpSlVjtkQCpaYJBIEuKj2hOVU7r+TIe+ysCwRYFz/lGqvklntRkCAibsbPw== + dependencies: + "@typescript-eslint/eslint-plugin" "^5.59.1" + "@typescript-eslint/parser" "^5.59.1" + vue-eslint-parser "^9.1.1" + +"@vue/language-core@1.8.22": + version "1.8.22" + resolved "https://registry.yarnpkg.com/@vue/language-core/-/language-core-1.8.22.tgz#1ef62645fb9b1f830c6c84a5586e49e74727b1e3" + integrity sha512-bsMoJzCrXZqGsxawtUea1cLjUT9dZnDsy5TuZ+l1fxRMzUGQUG9+Ypq4w//CqpWmrx7nIAJpw2JVF/t258miRw== + dependencies: + "@volar/language-core" "~1.10.5" + "@volar/source-map" "~1.10.5" + "@vue/compiler-dom" "^3.3.0" + "@vue/shared" "^3.3.0" + computeds "^0.0.1" + minimatch "^9.0.3" + muggle-string "^0.3.1" + vue-template-compiler "^2.7.14" + +"@vue/reactivity-transform@3.3.9": + version "3.3.9" + resolved "https://registry.yarnpkg.com/@vue/reactivity-transform/-/reactivity-transform-3.3.9.tgz#5d894dd9a42a422a2db309babb385f9a2529b52f" + integrity sha512-HnUFm7Ry6dFa4Lp63DAxTixUp8opMtQr6RxQCpDI1vlh12rkGIeYqMvJtK+IKyEfEOa2I9oCkD1mmsPdaGpdVg== + dependencies: + "@babel/parser" "^7.23.3" + "@vue/compiler-core" "3.3.9" + "@vue/shared" "3.3.9" + estree-walker "^2.0.2" + magic-string "^0.30.5" + +"@vue/reactivity@3.3.9": + version "3.3.9" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.3.9.tgz#e28e8071bd74edcdd9c87b667ad00e8fbd8d6920" + integrity sha512-VmpIqlNp+aYDg2X0xQhJqHx9YguOmz2UxuUJDckBdQCNkipJvfk9yA75woLWElCa0Jtyec3lAAt49GO0izsphw== + dependencies: + "@vue/shared" "3.3.9" + +"@vue/runtime-core@3.3.9": + version "3.3.9" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.3.9.tgz#c835b77f7dc7ae5f251e93f277b54963ea1b5c31" + integrity sha512-xxaG9KvPm3GTRuM4ZyU8Tc+pMVzcu6eeoSRQJ9IE7NmCcClW6z4B3Ij6L4EDl80sxe/arTtQ6YmgiO4UZqRc+w== + dependencies: + "@vue/reactivity" "3.3.9" + "@vue/shared" "3.3.9" + +"@vue/runtime-dom@3.3.9": + version "3.3.9" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.3.9.tgz#68081d981695a229d72f431fed0b0cdd9161ce53" + integrity sha512-e7LIfcxYSWbV6BK1wQv9qJyxprC75EvSqF/kQKe6bdZEDNValzeRXEVgiX7AHI6hZ59HA4h7WT5CGvm69vzJTQ== + dependencies: + "@vue/runtime-core" "3.3.9" + "@vue/shared" "3.3.9" + csstype "^3.1.2" + +"@vue/server-renderer@3.3.9": + version "3.3.9" + resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.3.9.tgz#ffb41bc9c7afafcc608d0c500e9d6b0af7d68fad" + integrity sha512-w0zT/s5l3Oa3ZjtLW88eO4uV6AQFqU8X5GOgzq7SkQQu6vVr+8tfm+OI2kDBplS/W/XgCBuFXiPw6T5EdwXP0A== + dependencies: + "@vue/compiler-ssr" "3.3.9" + "@vue/shared" "3.3.9" + +"@vue/shared@3.3.9", "@vue/shared@^3.3.0": + version "3.3.9" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.3.9.tgz#df740d26d338faf03e09ca662a8031acf66051db" + integrity sha512-ZE0VTIR0LmYgeyhurPTpy4KzKsuDyQbMSdM49eKkMnT5X4VfFBLysMzjIZhLEFQYjjOVVfbvUDHckwjDFiO2eA== + +"@vue/tsconfig@^0.1.3": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@vue/tsconfig/-/tsconfig-0.1.3.tgz#4a61dbd29783d01ddab504276dcf0c2b6988654f" + integrity sha512-kQVsh8yyWPvHpb8gIc9l/HIDiiVUy1amynLNpCy8p+FoCiZXCo6fQos5/097MmnNZc9AtseDsCrfkhqCrJ8Olg== + +"@vuelidate/core@^2.0.0": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@vuelidate/core/-/core-2.0.3.tgz#40468c5ed15b72bde880a026b0699c2f0f1ecede" + integrity sha512-AN6l7KF7+mEfyWG0doT96z+47ljwPpZfi9/JrNMkOGLFv27XVZvKzRLXlmDPQjPl/wOB1GNnHuc54jlCLRNqGA== + dependencies: + vue-demi "^0.13.11" + +"@vuelidate/validators@^2.0.0": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@vuelidate/validators/-/validators-2.0.4.tgz#0a88a7b2b18f15fd9c384095593f369a6f7384e9" + integrity sha512-odTxtUZ2JpwwiQ10t0QWYJkkYrfd0SyFYhdHH44QQ1jDatlZgTh/KRzrWVmn/ib9Gq7H4hFD4e8ahoo5YlUlDw== + dependencies: + vue-demi "^0.13.11" + +"@vueuse/core@10.6.1", "@vueuse/core@^10.5.0": + version "10.6.1" + resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-10.6.1.tgz#5b16d8238054c6983b6cb7cd77a78035f098dd89" + integrity sha512-Pc26IJbqgC9VG1u6VY/xrXXfxD33hnvxBnKrLlA2LJlyHII+BSrRoTPJgGYq7qZOu61itITFUnm6QbacwZ4H8Q== + dependencies: + "@types/web-bluetooth" "^0.0.20" + "@vueuse/metadata" "10.6.1" + "@vueuse/shared" "10.6.1" + vue-demi ">=0.14.6" + +"@vueuse/core@^9.6.0": + version "9.13.0" + resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-9.13.0.tgz#2f69e66d1905c1e4eebc249a01759cf88ea00cf4" + integrity sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw== + dependencies: + "@types/web-bluetooth" "^0.0.16" + "@vueuse/metadata" "9.13.0" + "@vueuse/shared" "9.13.0" + vue-demi "*" + +"@vueuse/integrations@^10.5.0": + version "10.6.1" + resolved "https://registry.yarnpkg.com/@vueuse/integrations/-/integrations-10.6.1.tgz#8358ced20d1a976422693ae3711ad29b70948504" + integrity sha512-mPDupuofMJ4DPmtX/FfP1MajmWRzYDv8WSaTCo8LQ5kFznjWgmUQ16ApjYqgMquqffNY6+IRMdMgosLDRZOSZA== + dependencies: + "@vueuse/core" "10.6.1" + "@vueuse/shared" "10.6.1" + vue-demi ">=0.14.6" + +"@vueuse/metadata@10.6.1": + version "10.6.1" + resolved "https://registry.yarnpkg.com/@vueuse/metadata/-/metadata-10.6.1.tgz#100faa0ced3c0ab4c014fb8e66e781e85e4eb88d" + integrity sha512-qhdwPI65Bgcj23e5lpGfQsxcy0bMjCAsUGoXkJ7DsoeDUdasbZ2DBa4dinFCOER3lF4gwUv+UD2AlA11zdzMFw== + +"@vueuse/metadata@9.13.0": + version "9.13.0" + resolved "https://registry.yarnpkg.com/@vueuse/metadata/-/metadata-9.13.0.tgz#bc25a6cdad1b1a93c36ce30191124da6520539ff" + integrity sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ== + +"@vueuse/shared@10.6.1": + version "10.6.1" + resolved "https://registry.yarnpkg.com/@vueuse/shared/-/shared-10.6.1.tgz#1d9fc1e3f9083e45b59a693fc372bc50ad62a9e4" + integrity sha512-TECVDTIedFlL0NUfHWncf3zF9Gc4VfdxfQc8JFwoVZQmxpONhLxFrlm0eHQeidHj4rdTPL3KXJa0TZCk1wnc5Q== + dependencies: + vue-demi ">=0.14.6" + +"@vueuse/shared@9.13.0": + version "9.13.0" + resolved "https://registry.yarnpkg.com/@vueuse/shared/-/shared-9.13.0.tgz#089ff4cc4e2e7a4015e57a8f32e4b39d096353b9" + integrity sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw== + dependencies: + vue-demi "*" + +"@walletconnect/core@2.10.5": + version "2.10.5" + resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-2.10.5.tgz#d61706c6459d9baaef05e83907df8cab82a03251" + integrity sha512-QnGHkA05KzJrtqExPqXm/TsstM1uTDI8tQT0x86/DuR6LdiYEntzSpVjnv7kKK6Mo9UxlXfud431dNRfOW5uJg== + dependencies: + "@walletconnect/heartbeat" "1.2.1" + "@walletconnect/jsonrpc-provider" "1.0.13" + "@walletconnect/jsonrpc-types" "1.0.3" + "@walletconnect/jsonrpc-utils" "1.0.8" + "@walletconnect/jsonrpc-ws-connection" "1.0.14" + "@walletconnect/keyvaluestorage" "^1.1.1" + "@walletconnect/logger" "^2.0.1" + "@walletconnect/relay-api" "^1.0.9" + "@walletconnect/relay-auth" "^1.0.4" + "@walletconnect/safe-json" "^1.0.2" + "@walletconnect/time" "^1.0.2" + "@walletconnect/types" "2.10.5" + "@walletconnect/utils" "2.10.5" + events "^3.3.0" + lodash.isequal "4.5.0" + uint8arrays "^3.1.0" + +"@walletconnect/environment@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@walletconnect/environment/-/environment-1.0.1.tgz#1d7f82f0009ab821a2ba5ad5e5a7b8ae3b214cd7" + integrity sha512-T426LLZtHj8e8rYnKfzsw1aG6+M0BT1ZxayMdv/p8yM0MU+eJDISqNY3/bccxRr4LrF9csq02Rhqt08Ibl0VRg== + dependencies: + tslib "1.14.1" + +"@walletconnect/ethereum-provider@^2.9.0": + version "2.10.5" + resolved "https://registry.yarnpkg.com/@walletconnect/ethereum-provider/-/ethereum-provider-2.10.5.tgz#a14ede16a751f115f8a0d050736155c8654835d5" + integrity sha512-Pihi2M03cRkWEiGetRUiO2A506YTj/Bbbxp+Ct7t5N5SccoeuhrzsEt30pA7I0XAiOnAeKp79OKmXHRhXfRmhg== + dependencies: + "@walletconnect/jsonrpc-http-connection" "^1.0.7" + "@walletconnect/jsonrpc-provider" "^1.0.13" + "@walletconnect/jsonrpc-types" "^1.0.3" + "@walletconnect/jsonrpc-utils" "^1.0.8" + "@walletconnect/modal" "^2.4.3" + "@walletconnect/sign-client" "2.10.5" + "@walletconnect/types" "2.10.5" + "@walletconnect/universal-provider" "2.10.5" + "@walletconnect/utils" "2.10.5" + events "^3.3.0" + +"@walletconnect/events@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@walletconnect/events/-/events-1.0.1.tgz#2b5f9c7202019e229d7ccae1369a9e86bda7816c" + integrity sha512-NPTqaoi0oPBVNuLv7qPaJazmGHs5JGyO8eEAk5VGKmJzDR7AHzD4k6ilox5kxk1iwiOnFopBOOMLs86Oa76HpQ== + dependencies: + keyvaluestorage-interface "^1.0.0" + tslib "1.14.1" + +"@walletconnect/heartbeat@1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@walletconnect/heartbeat/-/heartbeat-1.2.1.tgz#afaa3a53232ae182d7c9cff41c1084472d8f32e9" + integrity sha512-yVzws616xsDLJxuG/28FqtZ5rzrTA4gUjdEMTbWB5Y8V1XHRmqq4efAxCw5ie7WjbXFSUyBHaWlMR+2/CpQC5Q== + dependencies: + "@walletconnect/events" "^1.0.1" + "@walletconnect/time" "^1.0.2" + tslib "1.14.1" + +"@walletconnect/jsonrpc-http-connection@^1.0.7": + version "1.0.7" + resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-http-connection/-/jsonrpc-http-connection-1.0.7.tgz#a6973569b8854c22da707a759d241e4f5c2d5a98" + integrity sha512-qlfh8fCfu8LOM9JRR9KE0s0wxP6ZG9/Jom8M0qsoIQeKF3Ni0FyV4V1qy/cc7nfI46SLQLSl4tgWSfLiE1swyQ== + dependencies: + "@walletconnect/jsonrpc-utils" "^1.0.6" + "@walletconnect/safe-json" "^1.0.1" + cross-fetch "^3.1.4" + tslib "1.14.1" + +"@walletconnect/jsonrpc-provider@1.0.13", "@walletconnect/jsonrpc-provider@^1.0.13": + version "1.0.13" + resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-provider/-/jsonrpc-provider-1.0.13.tgz#9a74da648d015e1fffc745f0c7d629457f53648b" + integrity sha512-K73EpThqHnSR26gOyNEL+acEex3P7VWZe6KE12ZwKzAt2H4e5gldZHbjsu2QR9cLeJ8AXuO7kEMOIcRv1QEc7g== + dependencies: + "@walletconnect/jsonrpc-utils" "^1.0.8" + "@walletconnect/safe-json" "^1.0.2" + tslib "1.14.1" + +"@walletconnect/jsonrpc-types@1.0.3", "@walletconnect/jsonrpc-types@^1.0.2", "@walletconnect/jsonrpc-types@^1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.3.tgz#65e3b77046f1a7fa8347ae02bc1b841abe6f290c" + integrity sha512-iIQ8hboBl3o5ufmJ8cuduGad0CQm3ZlsHtujv9Eu16xq89q+BG7Nh5VLxxUgmtpnrePgFkTwXirCTkwJH1v+Yw== + dependencies: + keyvaluestorage-interface "^1.0.0" + tslib "1.14.1" + +"@walletconnect/jsonrpc-utils@1.0.8", "@walletconnect/jsonrpc-utils@^1.0.6", "@walletconnect/jsonrpc-utils@^1.0.7", "@walletconnect/jsonrpc-utils@^1.0.8": + version "1.0.8" + resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.8.tgz#82d0cc6a5d6ff0ecc277cb35f71402c91ad48d72" + integrity sha512-vdeb03bD8VzJUL6ZtzRYsFMq1eZQcM3EAzT0a3st59dyLfJ0wq+tKMpmGH7HlB7waD858UWgfIcudbPFsbzVdw== + dependencies: + "@walletconnect/environment" "^1.0.1" + "@walletconnect/jsonrpc-types" "^1.0.3" + tslib "1.14.1" + +"@walletconnect/jsonrpc-ws-connection@1.0.14": + version "1.0.14" + resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-ws-connection/-/jsonrpc-ws-connection-1.0.14.tgz#eec700e74766c7887de2bd76c91a0206628732aa" + integrity sha512-Jsl6fC55AYcbkNVkwNM6Jo+ufsuCQRqViOQ8ZBPH9pRREHH9welbBiszuTLqEJiQcO/6XfFDl6bzCJIkrEi8XA== + dependencies: + "@walletconnect/jsonrpc-utils" "^1.0.6" + "@walletconnect/safe-json" "^1.0.2" + events "^3.3.0" + ws "^7.5.1" + +"@walletconnect/keyvaluestorage@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@walletconnect/keyvaluestorage/-/keyvaluestorage-1.1.1.tgz#dd2caddabfbaf80f6b8993a0704d8b83115a1842" + integrity sha512-V7ZQq2+mSxAq7MrRqDxanTzu2RcElfK1PfNYiaVnJgJ7Q7G7hTVwF8voIBx92qsRyGHZihrwNPHuZd1aKkd0rA== + dependencies: + "@walletconnect/safe-json" "^1.0.1" + idb-keyval "^6.2.1" + unstorage "^1.9.0" + +"@walletconnect/logger@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@walletconnect/logger/-/logger-2.0.1.tgz#7f489b96e9a1ff6bf3e58f0fbd6d69718bf844a8" + integrity sha512-SsTKdsgWm+oDTBeNE/zHxxr5eJfZmE9/5yp/Ku+zJtcTAjELb3DXueWkDXmE9h8uHIbJzIb5wj5lPdzyrjT6hQ== + dependencies: + pino "7.11.0" + tslib "1.14.1" + +"@walletconnect/modal-core@2.6.2": + version "2.6.2" + resolved "https://registry.yarnpkg.com/@walletconnect/modal-core/-/modal-core-2.6.2.tgz#d73e45d96668764e0c8668ea07a45bb8b81119e9" + integrity sha512-cv8ibvdOJQv2B+nyxP9IIFdxvQznMz8OOr/oR/AaUZym4hjXNL/l1a2UlSQBXrVjo3xxbouMxLb3kBsHoYP2CA== + dependencies: + valtio "1.11.2" + +"@walletconnect/modal-ui@2.6.2": + version "2.6.2" + resolved "https://registry.yarnpkg.com/@walletconnect/modal-ui/-/modal-ui-2.6.2.tgz#fa57c087c57b7f76aaae93deab0f84bb68b59cf9" + integrity sha512-rbdstM1HPGvr7jprQkyPggX7rP4XiCG85ZA+zWBEX0dVQg8PpAgRUqpeub4xQKDgY7pY/xLRXSiCVdWGqvG2HA== + dependencies: + "@walletconnect/modal-core" "2.6.2" + lit "2.8.0" + motion "10.16.2" + qrcode "1.5.3" + +"@walletconnect/modal@^2.4.3", "@walletconnect/modal@^2.6.0": + version "2.6.2" + resolved "https://registry.yarnpkg.com/@walletconnect/modal/-/modal-2.6.2.tgz#4b534a836f5039eeb3268b80be7217a94dd12651" + integrity sha512-eFopgKi8AjKf/0U4SemvcYw9zlLpx9njVN8sf6DAkowC2Md0gPU/UNEbH1Wwj407pEKnEds98pKWib1NN1ACoA== + dependencies: + "@walletconnect/modal-core" "2.6.2" + "@walletconnect/modal-ui" "2.6.2" + +"@walletconnect/relay-api@^1.0.9": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@walletconnect/relay-api/-/relay-api-1.0.9.tgz#f8c2c3993dddaa9f33ed42197fc9bfebd790ecaf" + integrity sha512-Q3+rylJOqRkO1D9Su0DPE3mmznbAalYapJ9qmzDgK28mYF9alcP3UwG/og5V7l7CFOqzCLi7B8BvcBUrpDj0Rg== + dependencies: + "@walletconnect/jsonrpc-types" "^1.0.2" + tslib "1.14.1" + +"@walletconnect/relay-auth@^1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@walletconnect/relay-auth/-/relay-auth-1.0.4.tgz#0b5c55c9aa3b0ef61f526ce679f3ff8a5c4c2c7c" + integrity sha512-kKJcS6+WxYq5kshpPaxGHdwf5y98ZwbfuS4EE/NkQzqrDFm5Cj+dP8LofzWvjrrLkZq7Afy7WrQMXdLy8Sx7HQ== + dependencies: + "@stablelib/ed25519" "^1.0.2" + "@stablelib/random" "^1.0.1" + "@walletconnect/safe-json" "^1.0.1" + "@walletconnect/time" "^1.0.2" + tslib "1.14.1" + uint8arrays "^3.0.0" + +"@walletconnect/safe-json@^1.0.1", "@walletconnect/safe-json@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@walletconnect/safe-json/-/safe-json-1.0.2.tgz#7237e5ca48046e4476154e503c6d3c914126fa77" + integrity sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA== + dependencies: + tslib "1.14.1" + +"@walletconnect/sign-client@2.10.5": + version "2.10.5" + resolved "https://registry.yarnpkg.com/@walletconnect/sign-client/-/sign-client-2.10.5.tgz#f97f0fed544179a3303941f3bebd13ede3a736ed" + integrity sha512-HEYsoeGC6fGplQy0NIZSRNHgOwZwQ892UWG1Ahkcasf2R35QaBgnTVQkSCisl1PAAOKXZG7yB1YDoAAZBF+g5Q== + dependencies: + "@walletconnect/core" "2.10.5" + "@walletconnect/events" "^1.0.1" + "@walletconnect/heartbeat" "1.2.1" + "@walletconnect/jsonrpc-utils" "1.0.8" + "@walletconnect/logger" "^2.0.1" + "@walletconnect/time" "^1.0.2" + "@walletconnect/types" "2.10.5" + "@walletconnect/utils" "2.10.5" + events "^3.3.0" + +"@walletconnect/time@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@walletconnect/time/-/time-1.0.2.tgz#6c5888b835750ecb4299d28eecc5e72c6d336523" + integrity sha512-uzdd9woDcJ1AaBZRhqy5rNC9laqWGErfc4dxA9a87mPdKOgWMD85mcFo9dIYIts/Jwocfwn07EC6EzclKubk/g== + dependencies: + tslib "1.14.1" + +"@walletconnect/types@2.10.5": + version "2.10.5" + resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-2.10.5.tgz#bf4e692cf736b6e71423f96a106d7a96089245de" + integrity sha512-N8xaN7/Kob93rKxKDaT6oy6symgIkAwyLqq0/dLJEhXfv7S/gyNvDka4SosjVVTc4oTvE1+OmxNIR8pB1DuwJw== + dependencies: + "@walletconnect/events" "^1.0.1" + "@walletconnect/heartbeat" "1.2.1" + "@walletconnect/jsonrpc-types" "1.0.3" + "@walletconnect/keyvaluestorage" "^1.1.1" + "@walletconnect/logger" "^2.0.1" + events "^3.3.0" + +"@walletconnect/universal-provider@2.10.5": + version "2.10.5" + resolved "https://registry.yarnpkg.com/@walletconnect/universal-provider/-/universal-provider-2.10.5.tgz#b08965a9306a30775796cc0cc384f2dfc9fde512" + integrity sha512-sQOvjrGF6za7+6zv7KI9eQz2gzRbS19j7U1z+JwIWdn4VBJmriaTjVHDz/R1liwKcS4sUiUthDC6WmQvjukjZQ== + dependencies: + "@walletconnect/jsonrpc-http-connection" "^1.0.7" + "@walletconnect/jsonrpc-provider" "1.0.13" + "@walletconnect/jsonrpc-types" "^1.0.2" + "@walletconnect/jsonrpc-utils" "^1.0.7" + "@walletconnect/logger" "^2.0.1" + "@walletconnect/sign-client" "2.10.5" + "@walletconnect/types" "2.10.5" + "@walletconnect/utils" "2.10.5" + events "^3.3.0" + +"@walletconnect/utils@2.10.5": + version "2.10.5" + resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-2.10.5.tgz#8c8ef90c9e2b59886aae002ab8cbbdb35da1df9a" + integrity sha512-3yeclD9/AlPEIHBqBVzrHUO/KRAEIXVK0ViIQ5oUH+zT3TpdsDGDiW1Z0TsAQ1EiYoiiz8dOQzd80a3eZVwnrg== + dependencies: + "@stablelib/chacha20poly1305" "1.0.1" + "@stablelib/hkdf" "1.0.1" + "@stablelib/random" "^1.0.2" + "@stablelib/sha256" "1.0.1" + "@stablelib/x25519" "^1.0.3" + "@walletconnect/relay-api" "^1.0.9" + "@walletconnect/safe-json" "^1.0.2" + "@walletconnect/time" "^1.0.2" + "@walletconnect/types" "2.10.5" + "@walletconnect/window-getters" "^1.0.1" + "@walletconnect/window-metadata" "^1.0.1" + detect-browser "5.3.0" + query-string "7.1.3" + uint8arrays "^3.1.0" + +"@walletconnect/window-getters@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@walletconnect/window-getters/-/window-getters-1.0.1.tgz#f36d1c72558a7f6b87ecc4451fc8bd44f63cbbdc" + integrity sha512-vHp+HqzGxORPAN8gY03qnbTMnhqIwjeRJNOMOAzePRg4xVEEE2WvYsI9G2NMjOknA8hnuYbU3/hwLcKbjhc8+Q== + dependencies: + tslib "1.14.1" + +"@walletconnect/window-metadata@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@walletconnect/window-metadata/-/window-metadata-1.0.1.tgz#2124f75447b7e989e4e4e1581d55d25bc75f7be5" + integrity sha512-9koTqyGrM2cqFRW517BPY/iEtUDx2r1+Pwwu5m7sJ7ka79wi3EyqhqcICk/yDmv6jAS1rjKgTKXlEhanYjijcA== + dependencies: + "@walletconnect/window-getters" "^1.0.1" + tslib "1.14.1" + +"@whatwg-node/events@^0.0.3": + version "0.0.3" + resolved "https://registry.yarnpkg.com/@whatwg-node/events/-/events-0.0.3.tgz#13a65dd4f5893f55280f766e29ae48074927acad" + integrity sha512-IqnKIDWfXBJkvy/k6tzskWTc2NK3LcqHlb+KHGCrjOCH4jfQckRX0NAiIcC/vIqQkzLYw2r2CTSwAxcrtcD6lA== + +"@whatwg-node/fetch@^0.8.0", "@whatwg-node/fetch@^0.8.1", "@whatwg-node/fetch@^0.8.2", "@whatwg-node/fetch@^0.8.4": + version "0.8.8" + resolved "https://registry.yarnpkg.com/@whatwg-node/fetch/-/fetch-0.8.8.tgz#48c6ad0c6b7951a73e812f09dd22d75e9fa18cae" + integrity sha512-CdcjGC2vdKhc13KKxgsc6/616BQ7ooDIgPeTuAiE8qfCnS0mGzcfCOoZXypQSz73nxI+GWc7ZReIAVhxoE1KCg== + dependencies: + "@peculiar/webcrypto" "^1.4.0" + "@whatwg-node/node-fetch" "^0.3.6" + busboy "^1.6.0" + urlpattern-polyfill "^8.0.0" + web-streams-polyfill "^3.2.1" + +"@whatwg-node/node-fetch@^0.3.6": + version "0.3.6" + resolved "https://registry.yarnpkg.com/@whatwg-node/node-fetch/-/node-fetch-0.3.6.tgz#e28816955f359916e2d830b68a64493124faa6d0" + integrity sha512-w9wKgDO4C95qnXZRwZTfCmLWqyRnooGjcIwG0wADWjw9/HN0p7dtvtgSvItZtUyNteEvgTrd8QojNEqV6DAGTA== + dependencies: + "@whatwg-node/events" "^0.0.3" + busboy "^1.6.0" + fast-querystring "^1.1.1" + fast-url-parser "^1.1.3" + tslib "^2.3.1" + +"@xhmikosr/archive-type@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@xhmikosr/archive-type/-/archive-type-6.0.1.tgz#684e9e5369bfa93223d7aeb2c84fe0780d6d5e24" + integrity sha512-PB3NeJL8xARZt52yDBupK0dNPn8uIVQDe15qNehUpoeeLWCZyAOam4vGXnoZGz2N9D1VXtjievJuCsXam2TmbQ== + dependencies: + file-type "^18.5.0" + +"@xhmikosr/decompress-tar@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@xhmikosr/decompress-tar/-/decompress-tar-7.0.0.tgz#ae1ecc723bde8547ff65540018765875712d400b" + integrity sha512-kyWf2hybtQVbWtB+FdRyOT+jyR5jxCNZPLqvQGB7djZj75lrpLUPEmRbyo86AtJ5OEtivpYaNWjCkqSJ8xtRWw== + dependencies: + file-type "^18.5.0" + is-stream "^3.0.0" + tar-stream "^3.1.4" + +"@xhmikosr/decompress-tarbz2@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@xhmikosr/decompress-tarbz2/-/decompress-tarbz2-7.0.0.tgz#eea242c59e7d52f9bccc91e1a51d4b34ed048792" + integrity sha512-3QnjipYkRgh3Dee1MWDgKmANWxOQBVN4e1IwiGNe2fHYfMYTeSkVvWREt87UIoSucKUh3E95v8uGFttgTknZcA== + dependencies: + "@xhmikosr/decompress-tar" "^7.0.0" + file-type "^18.5.0" + is-stream "^3.0.0" + seek-bzip "^1.0.6" + unbzip2-stream "^1.4.3" + +"@xhmikosr/decompress-targz@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@xhmikosr/decompress-targz/-/decompress-targz-7.0.0.tgz#b80c913056903b162088b85619f632914f514f74" + integrity sha512-7BNHJl92g9OLhw89zqcFS67V1LAtm4Ex02j6OiQzuE8P7Yy9lQcyBuEL3x6v436grLdL+BcFjgbmhWxnem4GHw== + dependencies: + "@xhmikosr/decompress-tar" "^7.0.0" + file-type "^18.5.0" + is-stream "^3.0.0" + +"@xhmikosr/decompress-unzip@^6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@xhmikosr/decompress-unzip/-/decompress-unzip-6.0.0.tgz#d617956a1e762c5396cef8340973dd60ba24c9dd" + integrity sha512-R1HAkjXLS7RAL74YFLxYY9zYflCcYGssld9KKFDu87PnJ4h4btdhzXfSC8J5i5A2njH3oYIoCzx03RIGTH07Sg== + dependencies: + file-type "^18.5.0" + get-stream "^6.0.1" + yauzl "^2.10.0" + +"@xhmikosr/decompress@^9.0.1": + version "9.0.1" + resolved "https://registry.yarnpkg.com/@xhmikosr/decompress/-/decompress-9.0.1.tgz#e35977739da39bc664e0b49015b402a7cf9b1d91" + integrity sha512-9Lvlt6Qdpo9SaRQyRIXCo3lgU++eMZ68lzgjcTwtuKDrlwT635+5zsHZ1yrSx/Blc5IDuVLlPkBPj5CZkx+2+Q== + dependencies: + "@xhmikosr/decompress-tar" "^7.0.0" + "@xhmikosr/decompress-tarbz2" "^7.0.0" + "@xhmikosr/decompress-targz" "^7.0.0" + "@xhmikosr/decompress-unzip" "^6.0.0" + graceful-fs "^4.2.11" + make-dir "^4.0.0" + strip-dirs "^3.0.0" + +"@xhmikosr/downloader@^13.0.0": + version "13.0.1" + resolved "https://registry.yarnpkg.com/@xhmikosr/downloader/-/downloader-13.0.1.tgz#8478b36606d2108eb86bff419e1df36d84cc262d" + integrity sha512-mBvWew1kZJHfNQVVfVllMjUDwCGN9apPa0t4/z1zaUJ9MzpXjRL3w8fsfJKB8gHN/h4rik9HneKfDbh2fErN+w== + dependencies: + "@xhmikosr/archive-type" "^6.0.1" + "@xhmikosr/decompress" "^9.0.1" + content-disposition "^0.5.4" + ext-name "^5.0.0" + file-type "^18.5.0" + filenamify "^5.1.1" + get-stream "^6.0.1" + got "^12.6.1" + merge-options "^3.0.4" + p-event "^5.0.1" + +"@yarnpkg/lockfile@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" + integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== + +JSONStream@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.2.tgz#c102371b6ec3a7cf3b847ca00c20bb0fce4c6dea" + integrity sha512-mn0KSip7N4e0UDPZHnqDsHECo5uGQrixQKnAskOM1BIB8hd7QKbd6il8IPRPudPHOeHiECoCFqhyMaRO9+nWyA== + dependencies: + jsonparse "^1.2.0" + through ">=2.2.7 <3" + +JSONStream@^1.3.5: + version "1.3.5" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" + integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== + dependencies: + jsonparse "^1.2.0" + through ">=2.2.7 <3" + +abab@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" + integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== + +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== + +abort-controller@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" + integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== + dependencies: + event-target-shim "^5.0.0" + +abortcontroller-polyfill@^1.7.5: + version "1.7.5" + 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.yarnpkg.com/abstract-level/-/abstract-level-1.0.3.tgz#78a67d3d84da55ee15201486ab44c09560070741" + 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" + +abstract-leveldown@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-3.0.0.tgz#5cb89f958a44f526779d740d1440e743e0c30a57" + integrity sha512-KUWx9UWGQD12zsmLNj64/pndaz4iJh/Pj7nopgkfDG6RlCcbMZvT6+9l7dchK4idog2Is8VdC/PvNbFuFmalIQ== + dependencies: + xtend "~4.0.0" + +abstract-leveldown@^2.4.1, abstract-leveldown@~2.7.1: + version "2.7.2" + resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz#87a44d7ebebc341d59665204834c8b7e0932cc93" + integrity sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w== + dependencies: + xtend "~4.0.0" + +abstract-leveldown@^5.0.0, abstract-leveldown@~5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-5.0.0.tgz#f7128e1f86ccabf7d2893077ce5d06d798e386c6" + integrity sha512-5mU5P1gXtsMIXg65/rsYGsi93+MlogXZ9FA8JnwKurHQg64bfXwGYVdVdijNTVNOlAsuIiOwHdvFFD5JqCJQ7A== + dependencies: + xtend "~4.0.0" + +abstract-leveldown@^6.2.1: + version "6.3.0" + resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-6.3.0.tgz#d25221d1e6612f820c35963ba4bd739928f6026a" + integrity sha512-TU5nlYgta8YrBMNpc9FwQzRbiXsj49gsALsXadbGHt9CROPzX5fB0rWDR5mtdpOOKa5XqRFpbj1QroPAoPzVjQ== + dependencies: + buffer "^5.5.0" + immediate "^3.2.3" + level-concat-iterator "~2.0.0" + level-supports "~1.0.0" + xtend "~4.0.0" + +abstract-leveldown@~2.6.0: + version "2.6.3" + resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz#1c5e8c6a5ef965ae8c35dfb3a8770c476b82c4b8" + integrity sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA== + dependencies: + xtend "~4.0.0" + +abstract-leveldown@~6.0.1: + version "6.0.3" + resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-6.0.3.tgz#b4b6159343c74b0c5197b2817854782d8f748c4a" + integrity sha512-jzewKKpZbaYUa6HTThnrl+GrJhzjEAeuc7hTVpZdzg7kupXZFoqQDFwyOwLNbmJKJlmzw8yiipMPkDiuKkT06Q== + dependencies: + level-concat-iterator "~2.0.0" + 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" + integrity sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ== + dependencies: + buffer "^5.5.0" + immediate "^3.2.3" + level-concat-iterator "~2.0.0" + level-supports "~1.0.0" + xtend "~4.0.0" + +abstract-logging@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/abstract-logging/-/abstract-logging-2.0.1.tgz#6b0c371df212db7129b57d2e7fcf282b8bf1c839" + integrity sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA== + +accepts@~1.3.8: + version "1.3.8" + 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" + negotiator "0.6.3" + +acorn-globals@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-7.0.1.tgz#0dbf05c44fa7c94332914c02066d5beff62c40c3" + integrity sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q== + dependencies: + acorn "^8.1.0" + acorn-walk "^8.0.2" + +acorn-jsx@^5.2.0, acorn-jsx@^5.3.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +acorn-walk@^8.0.2, acorn-walk@^8.1.1, acorn-walk@^8.2.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.0.tgz#2097665af50fd0cf7a2dfccd2b9368964e66540f" + integrity sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA== + +acorn@^7.1.1, acorn@^7.4.1: + version "7.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== + +acorn@^8.1.0, acorn@^8.10.0, acorn@^8.11.2, acorn@^8.4.1, acorn@^8.6.0, acorn@^8.8.1, acorn@^8.9.0: + version "8.11.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.2.tgz#ca0d78b51895be5390a5903c5b3bdcdaf78ae40b" + integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w== + +adm-zip@^0.4.16: + version "0.4.16" + 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.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d" + integrity sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw== + +aes-js@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.1.2.tgz#db9aabde85d5caabbfc0d4f2a4446960f627146a" + integrity sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ== + +agent-base@6: + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + +agent-base@^7.0.2, agent-base@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.0.tgz#536802b76bc0b34aa50195eb2442276d613e3434" + integrity sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg== + dependencies: + debug "^4.3.4" + +aggregate-error@^3.0.0: + version "3.1.0" + 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" + indent-string "^4.0.0" + +aggregate-error@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-4.0.1.tgz#25091fe1573b9e0be892aeda15c7c66a545f758e" + integrity sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w== + dependencies: + clean-stack "^4.0.0" + indent-string "^5.0.0" + +ajv-errors@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-3.0.0.tgz#e54f299f3a3d30fe144161e5f0d8d51196c527bc" + integrity sha512-V3wD15YHfHz6y0KdhYFjyy9vWtEVALT9UrxfN3zqlI6dMioHnJrqOYfyPKol3oqrnCM9uwkcdCwkJ0WUcbLMTQ== + +ajv-formats@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" + integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== + dependencies: + ajv "^8.0.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" + 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" + +ajv@^8.0.0, ajv@^8.0.1, ajv@^8.10.0, ajv@^8.11.0, ajv@^8.11.2, ajv@^8.12.0: + version "8.12.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" + integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + +all-node-versions@^11.3.0: + version "11.3.0" + resolved "https://registry.yarnpkg.com/all-node-versions/-/all-node-versions-11.3.0.tgz#ace1c8c9598bb900ba296450ccf0281aabaff7a4" + integrity sha512-psMkc5s3qpr+QMfires9bC4azRYciPWql1wqZKMsYRh1731qefQDH2X4+O19xSBX6u0Ra/8Y5diG6y/fEmqKsw== + dependencies: + fetch-node-website "^7.3.0" + filter-obj "^5.1.0" + get-stream "^6.0.0" + global-cache-dir "^4.3.1" + is-plain-obj "^4.1.0" + path-exists "^5.0.0" + semver "^7.3.7" + write-file-atomic "^4.0.1" + +ansi-align@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.1.tgz#0cdf12e111ace773a86e9a1fad1225c43cb19a59" + integrity sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w== + dependencies: + string-width "^4.1.0" + +ansi-color@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/ansi-color/-/ansi-color-0.2.1.tgz#3e75c037475217544ed763a8db5709fa9ae5bf9a" + integrity sha512-bF6xLaZBLpOQzgYUtYEhJx090nPSZk1BQ/q2oyBK9aMMcJHzx9uXGCjI2Y+LebsN4Jwoykr0V9whbPiogdyHoQ== + +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.1: + version "3.2.4" + 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.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" + integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== + +ansi-escapes@6.2.0, ansi-escapes@^6.0.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-6.2.0.tgz#8a13ce75286f417f1963487d86ba9f90dccf9947" + integrity sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw== + dependencies: + type-fest "^3.0.0" + +ansi-escapes@^3.0.0, ansi-escapes@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" + integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== + +ansi-escapes@^4.2.1, ansi-escapes@^4.3.0, ansi-escapes@^4.3.1, ansi-escapes@^4.3.2: + version "4.3.2" + 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-escapes@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-5.0.0.tgz#b6a0caf0eef0c41af190e9a749e0c00ec04bb2a6" + integrity sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA== + dependencies: + type-fest "^1.0.2" + +ansi-regex@^2.0.0: + version "2.1.1" + 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.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.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed" + 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" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-regex@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" + integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== + +ansi-styles@6.2.1, ansi-styles@^6.0.0, ansi-styles@^6.1.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + integrity sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA== + +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" + 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.3.0: + version "4.3.0" + 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@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" + integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== + +ansi-to-html@0.7.2: + version "0.7.2" + resolved "https://registry.yarnpkg.com/ansi-to-html/-/ansi-to-html-0.7.2.tgz#a92c149e4184b571eb29a0135ca001a8e2d710cb" + integrity sha512-v6MqmEpNlxF+POuyhKkidusCHWWkaLcGRURzivcU3I9tv7k4JVhFcnukrM5Rlk2rUywdZuzYAZ+kbZqWCnfN3g== + dependencies: + entities "^2.2.0" + +ansicolors@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.3.2.tgz#665597de86a9ffe3aa9bfbe6cae5c6ea426b4979" + integrity sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg== + +antlr4@^4.11.0: + version "4.13.1" + 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.yarnpkg.com/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz#71702865a87478ed0b40c0709f422cf14d51652a" + integrity sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ== + +any-observable@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b" + integrity sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog== + +any-promise@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== + +any-signal@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/any-signal/-/any-signal-2.1.2.tgz#8d48270de0605f8b218cf9abe8e9c6a0e7418102" + integrity sha512-B+rDnWasMi/eWcajPcCWSlYc7muXOrcYrqgyzcdKisl2H/WTlQ0gip1KyQfr0ZlxJdsuWCj/LWwQm7fhyhRfIQ== + dependencies: + abort-controller "^3.0.0" + native-abort-controller "^1.0.3" + +any-signal@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/any-signal/-/any-signal-3.0.1.tgz#49cae34368187a3472e31de28fb5cb1430caa9a6" + integrity sha512-xgZgJtKEa9YmDqXodIgl7Fl1C8yNXr8w6gXjqK3LW4GcEiYT+6AQfJSE/8SPsEpLLmcvbv8YU+qet94UewHxqg== + +anymatch@^3.1.3, anymatch@~3.1.1, anymatch@~3.1.2: + version "3.1.3" + 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" + picomatch "^2.0.4" + +apisauce@^1.0.1: + version "1.1.5" + resolved "https://registry.yarnpkg.com/apisauce/-/apisauce-1.1.5.tgz#31d41a5cf805e401266cec67faf1a50f4aeae234" + integrity sha512-gKC8qb/bDJsPsnEXLZnXJ7gVx7dh87CEVNeIwv1dvaffnXoh5GHwac5pWR1P2broLiVj/fqFMQvLDDt/RhjiqA== + dependencies: + axios "^0.21.2" + ramda "^0.25.0" + +app-module-path@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/app-module-path/-/app-module-path-2.2.0.tgz#641aa55dfb7d6a6f0a8141c4b9c0aa50b6c24dd5" + integrity sha512-gkco+qxENJV+8vFcDiiFhuoSvRXb2a/QPqpSoWhVz829VNJfOTnELbBmPmNKFxf3xdNnw4DWCkzkDaavcX/1YQ== + +"aproba@^1.0.3 || ^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" + integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== + +arch@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/arch/-/arch-2.2.0.tgz#1bc47818f305764f23ab3306b0bfc086c5a29d11" + integrity sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ== + +archiver-utils@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-4.0.1.tgz#66ad15256e69589a77f706c90c6dbcc1b2775d2a" + integrity sha512-Q4Q99idbvzmgCTEAAhi32BkOyq8iVI5EwdO0PmBDSGIzzjYNdcFn7Q7k3OzbLy4kLUPXfJtG6fO2RjftXbobBg== + dependencies: + glob "^8.0.0" + graceful-fs "^4.2.0" + lazystream "^1.0.0" + lodash "^4.17.15" + normalize-path "^3.0.0" + readable-stream "^3.6.0" + +archiver@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/archiver/-/archiver-6.0.1.tgz#d56968d4c09df309435adb5a1bbfc370dae48133" + integrity sha512-CXGy4poOLBKptiZH//VlWdFuUC1RESbdZjGjILwBuZ73P7WkAUN0htfSfBq/7k6FRFlpu7bg4JOkj1vU9G6jcQ== + dependencies: + archiver-utils "^4.0.1" + async "^3.2.4" + buffer-crc32 "^0.2.1" + readable-stream "^3.6.0" + readdir-glob "^1.1.2" + tar-stream "^3.0.0" + zip-stream "^5.0.1" + +archy@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" + integrity sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw== + +are-we-there-yet@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz#372e0e7bd279d8e94c653aaa1f67200884bf3e1c" + integrity sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw== + dependencies: + delegates "^1.0.0" + readable-stream "^3.6.0" + +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + +arg@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c" + integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== + +argparse@2.0.1, argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +argparse@^1.0.10, argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + integrity sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA== + +arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q== + +array-back@^1.0.3, array-back@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/array-back/-/array-back-1.0.4.tgz#644ba7f095f7ffcf7c43b5f0dc39d3c1f03c063b" + integrity sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw== + dependencies: + typical "^2.6.0" + +array-back@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/array-back/-/array-back-2.0.0.tgz#6877471d51ecc9c9bfa6136fb6c7d5fe69748022" + integrity sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw== + dependencies: + typical "^2.6.1" + +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" + integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== + dependencies: + call-bind "^1.0.2" + is-array-buffer "^3.0.1" + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== + +array-timsort@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-timsort/-/array-timsort-1.0.3.tgz#3c9e4199e54fb2b9c3fe5976396a21614ef0d926" + integrity sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ== + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ== + +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" + 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.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" + 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" + +arrify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== + +arrify@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" + integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== + +arrify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-3.0.0.tgz#ccdefb8eaf2a1d2ab0da1ca2ce53118759fd46bc" + integrity sha512-tLkvA81vQG/XqE2mjDkGQHoOINtMHtysSnemrmoGe6PydDPMRbVugqyk4A6V/WDWEfm3l+0d8anA9r8cv/5Jaw== + +asap@~2.0.3, asap@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== + +ascii-table@0.0.9: + version "0.0.9" + resolved "https://registry.yarnpkg.com/ascii-table/-/ascii-table-0.0.9.tgz#06a6604d6a55d4bf41a9a47d9872d7a78da31e73" + integrity sha512-xpkr6sCDIYTPqzvjG8M3ncw1YOTaloWZOyrUmicoEifBEKzQzt+ooUpRpQ/AbOoJfO/p2ZKiyp79qHThzJDulQ== + +asn1.js@^5.2.0: + version "5.4.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" + integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== + 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.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" + integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== + dependencies: + safer-buffer "~2.1.0" + +asn1js@^3.0.1, asn1js@^3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/asn1js/-/asn1js-3.0.5.tgz#5ea36820443dbefb51cc7f88a2ebb5b462114f38" + integrity sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ== + dependencies: + pvtsutils "^1.3.2" + pvutils "^1.1.3" + tslib "^2.4.0" + +assemblyscript@0.19.10: + version "0.19.10" + resolved "https://registry.yarnpkg.com/assemblyscript/-/assemblyscript-0.19.10.tgz#7ede6d99c797a219beb4fa4614c3eab9e6343c8e" + integrity sha512-HavcUBXB3mBTRGJcpvaQjmnmaqKHBGREjSPNsIvnAk2f9dj78y4BkMaSSdvBQYWcDDzsHQjyUC8stICFkD1Odg== + dependencies: + binaryen "101.0.0-nightly.20210723" + long "^4.0.0" + +assemblyscript@0.19.23: + version "0.19.23" + resolved "https://registry.yarnpkg.com/assemblyscript/-/assemblyscript-0.19.23.tgz#16ece69f7f302161e2e736a0f6a474e6db72134c" + integrity sha512-fwOQNZVTMga5KRsfY80g7cpOl4PsFQczMwHzdtgoqLXaYhkhavufKb0sB0l3T1DUxpAufA0KNhlbpuuhZUwxMA== + dependencies: + binaryen "102.0.0-nightly.20211028" + long "^5.2.0" + source-map-support "^0.5.20" + +"assemblyscript@github:assemblyscript/assemblyscript#v0.6": + version "0.6.0" + resolved "https://codeload.github.com/assemblyscript/assemblyscript/tar.gz/3ed76a97f05335504166fce1653da75f4face28f" + dependencies: + "@protobufjs/utf8" "^1.1.0" + binaryen "77.0.0-nightly.20190407" + glob "^7.1.3" + long "^4.0.0" + opencollective-postinstall "^2.0.0" + source-map-support "^0.5.11" + +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" + integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== + +assert@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/assert/-/assert-2.1.0.tgz#6d92a238d05dc02e7427c881fb8be81c8448b2dd" + integrity sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw== + dependencies: + call-bind "^1.0.2" + is-nan "^1.3.2" + object-is "^1.1.5" + object.assign "^4.1.4" + util "^0.12.5" + +assertion-error@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw== + +ast-module-types@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ast-module-types/-/ast-module-types-5.0.0.tgz#32b2b05c56067ff38e95df66f11d6afd6c9ba16b" + integrity sha512-JvqziE0Wc0rXQfma0HZC/aY7URXHFuZV84fJRtP8u+lhp0JYCNd5wJzVXP45t0PH0Mej3ynlzvdyITYIu0G4LQ== + +ast-parents@^0.0.1: + version "0.0.1" + 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.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + +async-eventemitter@^0.2.2: + version "0.2.4" + 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.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" + integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== + +async-sema@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/async-sema/-/async-sema-3.1.1.tgz#e527c08758a0f8f6f9f15f799a173ff3c40ea808" + integrity sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg== + +async@2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.2.tgz#18330ea7e6e313887f5d2f2a904bac6fe4dd5381" + integrity sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg== + dependencies: + lodash "^4.17.11" + +async@3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.3.tgz#ac53dafd3f4720ee9e8a160628f18ea91df196c9" + integrity sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g== + +async@^1.4.2, async@~1.5: + version "1.5.2" + 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.6.1, async@^2.6.4: + version "2.6.4" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" + integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== + dependencies: + lodash "^4.17.14" + +async@^3.2.3, async@^3.2.4: + version "3.2.5" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.5.tgz#ebd52a8fdaf7a2289a24df399f8d8485c8a46b66" + integrity sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg== + +asynckit@^0.4.0: + version "0.4.0" + 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.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + +atob@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + +atomic-sleep@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/atomic-sleep/-/atomic-sleep-1.0.0.tgz#eb85b77a601fc932cfe432c5acd364a9e2c9075b" + integrity sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ== + +auto-bind@~4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/auto-bind/-/auto-bind-4.0.0.tgz#e3589fc6c2da8f7ca43ba9f84fa52a744fc997fb" + integrity sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ== + +autoprefixer@^10.4.13: + version "10.4.16" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.16.tgz#fad1411024d8670880bdece3970aa72e3572feb8" + integrity sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ== + dependencies: + browserslist "^4.21.10" + caniuse-lite "^1.0.30001538" + fraction.js "^4.3.6" + normalize-range "^0.1.2" + picocolors "^1.0.0" + postcss-value-parser "^4.2.0" + +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" + integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== + +avvio@^8.2.0: + version "8.2.1" + resolved "https://registry.yarnpkg.com/avvio/-/avvio-8.2.1.tgz#b5a482729847abb84d5aadce06511c04a0a62f82" + integrity sha512-TAlMYvOuwGyLK3PfBb5WKBXZmXz2fVCgv23d6zZFdle/q3gPjmxBaeuC0pY0Dzs5PWMSgfqqEZkrye19GlDTgw== + dependencies: + archy "^1.0.0" + debug "^4.0.0" + fastq "^1.6.1" + +aws-sign2@~0.7.0: + version "0.7.0" + 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.yarnpkg.com/aws4/-/aws4-1.12.0.tgz#ce1c9d143389679e253b314241ea9aa5cec980d3" + integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg== + +axios@^0.21.1, axios@^0.21.2, axios@^0.21.4: + version "0.21.4" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575" + integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg== + dependencies: + follow-redirects "^1.14.0" + +axios@^1.1.3: + version "1.6.2" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.2.tgz#de67d42c755b571d3e698df1b6504cde9b0ee9f2" + integrity sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A== + dependencies: + follow-redirects "^1.15.0" + form-data "^4.0.0" + proxy-from-env "^1.1.0" + +b4a@^1.0.1, b4a@^1.6.4: + version "1.6.4" + resolved "https://registry.yarnpkg.com/b4a/-/b4a-1.6.4.tgz#ef1c1422cae5ce6535ec191baeed7567443f36c9" + integrity sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw== + +babel-code-frame@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" + 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.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" + 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.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" + 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.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" + 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.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" + 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.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" + 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.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" + 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.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" + 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.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" + 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.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" + 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.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" + 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.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" + 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.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" + 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.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" + 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.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" + 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.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" + 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.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" + integrity sha512-B1M5KBP29248dViEo1owyY32lk1ZSH2DaNNrXLGt8lyjjHm7pBqAdQ7VKUPR6EEDO323+OvT3MQXbCin8ooWdA== + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-syntax-async-functions@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" + integrity sha512-4Zp4unmHgw30A1eWI5EpACji2qMocisdXhAftfhXoSV9j0Tvj6nRFE3tOmRY912E0FMRm/L5xWE7MGVT2FoLnw== + +babel-plugin-syntax-exponentiation-operator@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" + integrity sha512-Z/flU+T9ta0aIEKl1tGEmN/pZiI1uXmCiGFRegKacQfEJzp7iNsKloZmyJlQr+75FCJtiFfGIK03SiCvCt9cPQ== + +babel-plugin-syntax-trailing-function-commas@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" + integrity sha512-Gx9CH3Q/3GKbhs07Bszw5fPTlU+ygrOGfAhEt7W2JICwufpC4SuO0mG0+4NykPBSYPMJhqvVlDBU17qB1D+hMQ== + +babel-plugin-syntax-trailing-function-commas@^7.0.0-beta.0: + version "7.0.0-beta.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz#aa213c1435e2bffeb6fca842287ef534ad05d5cf" + integrity sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ== + +babel-plugin-transform-async-to-generator@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" + 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.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" + 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.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" + 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.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" + 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.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" + 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.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" + 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.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" + 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.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" + 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.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" + 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.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" + 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.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" + 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.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" + 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.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3" + 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.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" + 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.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" + 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.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" + 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.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" + 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.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" + 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.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" + 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.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" + 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.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" + 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.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" + 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.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" + 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.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" + 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.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" + 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.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" + 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.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.7.0.tgz#dea79fa4ebeb883cd35dab07e260c1c9c04df77a" + 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-preset-fbjs@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz#38a14e5a7a3b285a3f3a86552d650dca5cf6111c" + integrity sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow== + dependencies: + "@babel/plugin-proposal-class-properties" "^7.0.0" + "@babel/plugin-proposal-object-rest-spread" "^7.0.0" + "@babel/plugin-syntax-class-properties" "^7.0.0" + "@babel/plugin-syntax-flow" "^7.0.0" + "@babel/plugin-syntax-jsx" "^7.0.0" + "@babel/plugin-syntax-object-rest-spread" "^7.0.0" + "@babel/plugin-transform-arrow-functions" "^7.0.0" + "@babel/plugin-transform-block-scoped-functions" "^7.0.0" + "@babel/plugin-transform-block-scoping" "^7.0.0" + "@babel/plugin-transform-classes" "^7.0.0" + "@babel/plugin-transform-computed-properties" "^7.0.0" + "@babel/plugin-transform-destructuring" "^7.0.0" + "@babel/plugin-transform-flow-strip-types" "^7.0.0" + "@babel/plugin-transform-for-of" "^7.0.0" + "@babel/plugin-transform-function-name" "^7.0.0" + "@babel/plugin-transform-literals" "^7.0.0" + "@babel/plugin-transform-member-expression-literals" "^7.0.0" + "@babel/plugin-transform-modules-commonjs" "^7.0.0" + "@babel/plugin-transform-object-super" "^7.0.0" + "@babel/plugin-transform-parameters" "^7.0.0" + "@babel/plugin-transform-property-literals" "^7.0.0" + "@babel/plugin-transform-react-display-name" "^7.0.0" + "@babel/plugin-transform-react-jsx" "^7.0.0" + "@babel/plugin-transform-shorthand-properties" "^7.0.0" + "@babel/plugin-transform-spread" "^7.0.0" + "@babel/plugin-transform-template-literals" "^7.0.0" + babel-plugin-syntax-trailing-function-commas "^7.0.0-beta.0" + +babel-register@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" + 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.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + 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.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" + 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.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" + 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.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" + 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.yarnpkg.com/babelify/-/babelify-7.3.0.tgz#aa56aede7067fd7bd549666ee16dc285087e88e5" + 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.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== + +backoff@2.5.0, backoff@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/backoff/-/backoff-2.5.0.tgz#f616eda9d3e4b66b8ca7fca79f695722c5f8e26f" + 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" + 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" + integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== + dependencies: + safe-buffer "^5.0.1" + +base32.js@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/base32.js/-/base32.js-0.1.0.tgz#b582dec693c2f11e893cf064ee6ac5b6131a2202" + integrity sha512-n3TkB02ixgBOhTvANakDb4xaMXnYUVkNoRFJjQflcqMQhyEKxEHdj3E6N8t8sUQ0mjH/3/JxzlXuz3ul/J90pQ== + +base64-js@^1.3.0, base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +base64url@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/base64url/-/base64url-3.0.1.tgz#6399d572e2bc3f90a9a8b22d5dbb0a32d33f788d" + integrity sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A== + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== + 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" + +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + 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.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9" + integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ== + +before-after-hook@^2.2.0: + version "2.2.3" + resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.3.tgz#c51e809c81a4e354084422b9b26bad88249c517c" + integrity sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ== + +better-ajv-errors@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/better-ajv-errors/-/better-ajv-errors-1.2.0.tgz#6412d58fa4d460ff6ccbd9e65c5fef9781cc5286" + integrity sha512-UW+IsFycygIo7bclP9h5ugkNH8EjCSgqyFB/yQ4Hqqa1OEYDtb0uFIkYE0b6+CjkgJYVM5UKI/pJPxjYe9EZlA== + dependencies: + "@babel/code-frame" "^7.16.0" + "@humanwhocodes/momoa" "^2.0.2" + chalk "^4.1.2" + jsonpointer "^5.0.0" + leven "^3.1.0 < 4" + +better-opn@3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/better-opn/-/better-opn-3.0.2.tgz#f96f35deaaf8f34144a4102651babcf00d1d8817" + integrity sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ== + dependencies: + open "^8.0.4" + +bfj@^7.0.2: + version "7.1.0" + resolved "https://registry.yarnpkg.com/bfj/-/bfj-7.1.0.tgz#c5177d522103f9040e1b12980fe8c38cf41d3f8b" + integrity sha512-I6MMLkn+anzNdCUp9hMRyui1HaNEUCco50lxbvNS4+EyXg8lN3nJ48PjPWtbH8UVS9CuMoaKE9U2V3l29DaRQw== + dependencies: + bluebird "^3.7.2" + check-types "^11.2.3" + hoopy "^0.1.4" + jsonpath "^1.1.1" + tryer "^1.0.1" + +big-integer@^1.6.42, big-integer@^1.6.48: + version "1.6.52" + resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.52.tgz#60a887f3047614a8e1bffe5d7173490a97dc8c85" + integrity sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg== + +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" + integrity sha512-jOTSb+drvEDxEq6OuUybOAv/xxoh3cuYRUIPyu8sSHQNKM303UQ2R1DAo45o1AkcIXw6fzbaFI1+xGGdaXs2lg== + +bignumber.js@^9.0.0: + version "9.1.2" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.2.tgz#b7c4242259c008903b13707983b5f4bbd31eda0c" + 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" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +binary-install-raw@0.0.13: + version "0.0.13" + resolved "https://registry.yarnpkg.com/binary-install-raw/-/binary-install-raw-0.0.13.tgz#43a13c6980eb9844e2932eb7a91a56254f55b7dd" + integrity sha512-v7ms6N/H7iciuk6QInon3/n2mu7oRX+6knJ9xFPsJ3rQePgAqcR3CRTwUheFd8SLbiq4LL7Z4G/44L9zscdt9A== + dependencies: + axios "^0.21.1" + rimraf "^3.0.2" + tar "^6.1.0" + +binaryen@101.0.0-nightly.20210723: + version "101.0.0-nightly.20210723" + resolved "https://registry.yarnpkg.com/binaryen/-/binaryen-101.0.0-nightly.20210723.tgz#b6bb7f3501341727681a03866c0856500eec3740" + integrity sha512-eioJNqhHlkguVSbblHOtLqlhtC882SOEPKmNFZaDuz1hzQjolxZ+eu3/kaS10n3sGPONsIZsO7R9fR00UyhEUA== + +binaryen@102.0.0-nightly.20211028: + version "102.0.0-nightly.20211028" + resolved "https://registry.yarnpkg.com/binaryen/-/binaryen-102.0.0-nightly.20211028.tgz#8f1efb0920afd34509e342e37f84313ec936afb2" + integrity sha512-GCJBVB5exbxzzvyt8MGDv/MeUjs6gkXDvf4xOIItRBptYl0Tz5sm1o/uG95YK0L0VeG5ajDu3hRtkBP2kzqC5w== + +binaryen@77.0.0-nightly.20190407: + version "77.0.0-nightly.20190407" + resolved "https://registry.yarnpkg.com/binaryen/-/binaryen-77.0.0-nightly.20190407.tgz#fbe4f8ba0d6bd0809a84eb519d2d5b5ddff3a7d1" + integrity sha512-1mxYNvQ0xywMe582K7V6Vo2zzhZZxMTeGHH8aE/+/AND8f64D8Q1GThVY3RVRwGY/4p+p95ccw9Xbw2ovFXRIg== + +bindings@^1.2.1, bindings@^1.4.0, bindings@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== + dependencies: + file-uri-to-path "1.0.0" + +bip39@2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/bip39/-/bip39-2.5.0.tgz#51cbd5179460504a63ea3c000db3f787ca051235" + 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" + +bl@^1.0.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.3.tgz#1e8dd80142eac80d7158c9dccc047fb620e035e7" + integrity sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww== + dependencies: + readable-stream "^2.3.5" + safe-buffer "^5.1.1" + +bl@^4.0.0, bl@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + +bl@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-5.1.0.tgz#183715f678c7188ecef9fe475d90209400624273" + integrity sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ== + dependencies: + buffer "^6.0.3" + inherits "^2.0.4" + readable-stream "^3.4.0" + +blake-hash@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/blake-hash/-/blake-hash-1.1.1.tgz#b6251600d7812dd5097f96cb341ceae245bf9d12" + integrity sha512-V93H+FEJuXXZi1eEsMtbcBFP9oL5Ept7SLw3cbXYlPC3nocm9Fr4m18ZhbhdJrZVS9J/Z0oNE4L3oDZvmorHNA== + dependencies: + bindings "^1.2.1" + inherits "^2.0.3" + nan "^2.2.1" + +blake-hash@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/blake-hash/-/blake-hash-2.0.0.tgz#af184dce641951126d05b7d1c3de3224f538d66e" + integrity sha512-Igj8YowDu1PRkRsxZA7NVkdFNxH5rKv5cpLxQ0CVXSIA77pVYwCPRQJ2sMew/oneUpfuYRyjG6r8SmmmnbZb1w== + dependencies: + node-addon-api "^3.0.0" + node-gyp-build "^4.2.2" + readable-stream "^3.6.0" + +blake2b-wasm@^2.3.0, blake2b-wasm@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/blake2b-wasm/-/blake2b-wasm-2.4.0.tgz#9115649111edbbd87eb24ce7c04b427e4e2be5be" + integrity sha512-S1kwmW2ZhZFFFOghcx73+ZajEfKBqhP82JMssxtLVMxlaPea1p9uoLiUZ5WYyHn0KddwbLc+0vh4wR0KBNoT5w== + dependencies: + b4a "^1.0.1" + nanoassert "^2.0.0" + +blake2b@^2.1.3: + version "2.1.4" + resolved "https://registry.yarnpkg.com/blake2b/-/blake2b-2.1.4.tgz#817d278526ddb4cd673bfb1af16d1ad61e393ba3" + integrity sha512-AyBuuJNI64gIvwx13qiICz6H6hpmjvYS5DGkG6jbXMOT8Z3WUJ3V1X0FlhIoT1b/5JtHE3ki+xjtMvu1nn+t9A== + dependencies: + blake2b-wasm "^2.4.0" + nanoassert "^2.0.0" + +blakejs@^1.1.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.2.1.tgz#5057e4206eadb4a97f7c0b6e197a505042fc3814" + integrity sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ== + +blob-to-it@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/blob-to-it/-/blob-to-it-1.0.4.tgz#f6caf7a4e90b7bb9215fa6a318ed6bd8ad9898cb" + integrity sha512-iCmk0W4NdbrWgRRuxOriU8aM5ijeVLI61Zulsmg/lUHNr7pYjoj+U77opLefNagevtrrbMt3JQ5Qip7ar178kA== + dependencies: + browser-readablestream-to-it "^1.0.3" + +bluebird@^3.5.0, bluebird@^3.5.2, bluebird@^3.7.2: + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + +blueimp-md5@^2.10.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/blueimp-md5/-/blueimp-md5-2.19.0.tgz#b53feea5498dcb53dc6ec4b823adb84b729c4af0" + integrity sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w== + +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.1.0, bn.js@^4.10.0, bn.js@^4.11.0, bn.js@^4.11.6, bn.js@^4.11.8, bn.js@^4.11.9, bn.js@^4.8.0: + version "4.12.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" + integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== + +bn.js@^5.0.0, bn.js@^5.1.2, bn.js@^5.2.0, bn.js@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" + 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== + 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" + +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.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" + +boolbase@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== + +borc@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/borc/-/borc-2.1.2.tgz#6ce75e7da5ce711b963755117dd1b187f6f8cf19" + integrity sha512-Sy9eoUi4OiKzq7VovMn246iTo17kzuyHJKomCfpWMlI6RpfN1gk95w7d7gH264nApVLg0HZfcpz62/g4VH1Y4w== + dependencies: + bignumber.js "^9.0.0" + buffer "^5.5.0" + commander "^2.15.0" + ieee754 "^1.1.13" + iso-url "~0.4.7" + json-text-sequence "~0.1.0" + readable-stream "^3.6.0" + +boxen@7.1.1, boxen@^7.0.0: + version "7.1.1" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-7.1.1.tgz#f9ba525413c2fec9cdb88987d835c4f7cad9c8f4" + integrity sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog== + dependencies: + ansi-align "^3.0.1" + camelcase "^7.0.1" + chalk "^5.2.0" + cli-boxes "^3.0.0" + string-width "^5.1.2" + type-fest "^2.13.0" + widest-line "^4.0.1" + wrap-ansi "^8.1.0" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +brace-expansion@^2.0.1: + version "2.0.1" + 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@^2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== + 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.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.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.yarnpkg.com/browser-level/-/browser-level-1.0.1.tgz#36e8c3183d0fe1c405239792faaab5f315871011" + 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" + +browser-readablestream-to-it@^1.0.0, browser-readablestream-to-it@^1.0.1, browser-readablestream-to-it@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/browser-readablestream-to-it/-/browser-readablestream-to-it-1.0.3.tgz#ac3e406c7ee6cdf0a502dd55db33bab97f7fba76" + integrity sha512-+12sHB+Br8HIh6VAMVEG5r3UXCyESIgDW7kzk3BjIXa43DVqVwL7GC5TW3jeh+72dtcH99pPVpw0X8i0jt+/kw== + +browser-resolve@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-2.0.0.tgz#99b7304cb392f8d73dba741bb2d7da28c6d7842b" + integrity sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ== + dependencies: + resolve "^1.17.0" + +browser-stdout@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" + integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== + +browserify-aes@^1.0.0, browserify-aes@^1.0.4, browserify-aes@^1.2.0: + version "1.2.0" + 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" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.3" + inherits "^2.0.1" + safe-buffer "^5.0.1" + +browserify-cipher@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== + 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" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" + integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== + 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.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" + integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== + dependencies: + bn.js "^5.0.0" + randombytes "^2.0.1" + +browserify-sign@^4.0.0: + version "4.2.2" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.2.tgz#e78d4b69816d6e3dd1c747e64e9947f9ad79bc7e" + integrity sha512-1rudGyeYY42Dk6texmv7c4VcQ0EsvVbLwZkA+AQB7SxvXxmcD93jcHie8bzecJ+ChDlmAm2Qyu0+Ccg5uhZXCg== + dependencies: + bn.js "^5.2.1" + browserify-rsa "^4.1.0" + create-hash "^1.2.0" + create-hmac "^1.1.7" + elliptic "^6.5.4" + inherits "^2.0.4" + parse-asn1 "^5.1.6" + readable-stream "^3.6.2" + safe-buffer "^5.2.1" + +browserify-zlib@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" + integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== + dependencies: + pako "~1.0.5" + +browserslist@^3.2.6: + version "3.2.8" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-3.2.8.tgz#b0005361d6471f0f5952797a76fc985f1f978fc6" + integrity sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ== + dependencies: + caniuse-lite "^1.0.30000844" + electron-to-chromium "^1.3.47" + +browserslist@^4.21.10, browserslist@^4.21.9: + version "4.22.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.1.tgz#ba91958d1a59b87dab6fed8dfbcb3da5e2e9c619" + integrity sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ== + dependencies: + caniuse-lite "^1.0.30001541" + electron-to-chromium "^1.4.535" + node-releases "^2.0.13" + update-browserslist-db "^1.0.13" + +bs58@^4.0.0: + version "4.0.1" + 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.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" + +bser@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" + integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== + dependencies: + node-int64 "^0.4.0" + +buffer-alloc-unsafe@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" + integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== + +buffer-alloc@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" + integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== + dependencies: + buffer-alloc-unsafe "^1.1.0" + buffer-fill "^1.0.0" + +buffer-crc32@^0.2.1, buffer-crc32@~0.2.3: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== + +buffer-equal-constant-time@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" + integrity sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA== + +buffer-fill@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" + integrity sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ== + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +"buffer-polyfill@npm:buffer@^6.0.3", buffer@^6.0.1, buffer@^6.0.3: + version "6.0.3" + 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-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" + 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" + 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" + integrity sha512-eHslX0bin3GB+Lx2p7lEYRShRewuNZL3fUl4qlVJGGiwoPGftmt8JQgk2Y9Ji5/01TnVDo33E5b5O3vUB1HdqQ== + dependencies: + safe-buffer "^5.1.1" + +buffer@^5.0.5, buffer@^5.2.1, buffer@^5.4.2, buffer@^5.4.3, buffer@^5.5.0, buffer@^5.6.0, buffer@^5.7.1: + 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.1.13" + +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" + +bufrw@^1.2.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/bufrw/-/bufrw-1.4.0.tgz#58a294ca0bd9ebc880be83001d749706fc996499" + integrity sha512-sWm8iPbqvL9+5SiYxXH73UOkyEbGQg7kyHQmReF89WJHQJw2eV4P/yZ0E+b71cczJ4pPobVhXxgQcmfSTgGHxQ== + dependencies: + ansi-color "^0.2.1" + error "^7.0.0" + hexer "^1.5.0" + xtend "^4.0.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== + +builtin-status-codes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + integrity sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ== + +builtins@^5.0.0: + version "5.0.1" + 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.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" + integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== + dependencies: + streamsearch "^1.1.0" + +byline@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/byline/-/byline-5.0.0.tgz#741c5216468eadc457b03410118ad77de8c1ddb1" + integrity sha512-s6webAy+R4SR8XVuJWt2V2rGvhnrhxN+9S15GNuTK3wKPOXFF6RNc+8ug2XhH+2s4f+uudG4kUVYmYOQWL2g0Q== + +bytes@3.1.2, bytes@^3.1.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + +bytewise-core@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/bytewise-core/-/bytewise-core-1.2.3.tgz#3fb410c7e91558eb1ab22a82834577aa6bd61d42" + integrity sha512-nZD//kc78OOxeYtRlVk8/zXqTB4gf/nlguL1ggWA8FuchMyOxcyHR4QPQZMUmA7czC+YnaBrPUCubqAWe50DaA== + dependencies: + typewise-core "^1.2" + +bytewise@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/bytewise/-/bytewise-1.1.0.tgz#1d13cbff717ae7158094aa881b35d081b387253e" + integrity sha512-rHuuseJ9iQ0na6UDhnrRVDh8YnWVlU6xM3VH6q/+yHDeUH2zIhUzP+2/h3LIrhLDBtTqzWpE3p3tP/boefskKQ== + dependencies: + bytewise-core "^1.2.2" + typewise "^1.0.3" + +cac@^6.7.12: + version "6.7.14" + resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.14.tgz#804e1e6f506ee363cb0e3ccbb09cad5dd9870959" + integrity sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ== + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== + 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.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.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-6.1.0.tgz#0330a543471c61faa4e9035db583aad753b36385" + integrity sha512-KJ/Dmo1lDDhmW2XDPMo+9oiy/CeqosPguPCrgcVzKyZrL6pM1gU2GmPY/xo6OQPTUaA/c0kwHuywB4E6nmT9ww== + +cacheable-lookup@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz#3476a8215d046e5a3202a9209dd13fec1f933a27" + integrity sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w== + +cacheable-request@^10.2.8: + version "10.2.14" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-10.2.14.tgz#eb915b665fda41b79652782df3f553449c406b9d" + integrity sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ== + dependencies: + "@types/http-cache-semantics" "^4.0.2" + get-stream "^6.0.1" + http-cache-semantics "^4.1.1" + keyv "^4.5.3" + mimic-response "^4.0.0" + normalize-url "^8.0.0" + responselike "^3.0.0" + +cacheable-request@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" + integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== + 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.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.4.tgz#7a33ebf08613178b403635be7b899d3e69bbe817" + 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" + +cachedir@^2.3.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-2.4.0.tgz#7fef9cf7367233d7c88068fe6e34ed0d355a610d" + integrity sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ== + +cachedown@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/cachedown/-/cachedown-1.0.0.tgz#d43f036e4510696b31246d7db31ebf0f7ac32d15" + integrity sha512-t+yVk82vQWCJF3PsWHMld+jhhjkkWjcAzz8NbFx1iULOXWl8Tm/FdM4smZNVw3MRr0X+lVTx9PKzvEn4Ng19RQ== + 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.4, call-bind@^1.0.5, call-bind@~1.0.2: + 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.2" + get-intrinsic "^1.2.1" + set-function-length "^1.1.1" + +callsite@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" + integrity sha512-0vdNRFXn5q+dtOqjfFtmtlI9N2eVZ7LMyEV2iKC5mEEFvSg/69Ml6b/WU2qF8W1nLRa0wiSrDT3Y5jOHZCwKPQ== + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camel-case@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" + integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== + dependencies: + pascal-case "^3.1.2" + tslib "^2.0.3" + +camelcase-css@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" + integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== + +camelcase-keys@^6.2.2: + version "6.2.2" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0" + integrity sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg== + dependencies: + camelcase "^5.3.1" + map-obj "^4.0.0" + quick-lru "^4.0.1" + +camelcase@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" + integrity sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg== + +camelcase@^5.0.0, camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +camelcase@^6.0.0, camelcase@^6.2.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + +camelcase@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-7.0.1.tgz#f02e50af9fd7782bc8b88a3558c32fd3a388f048" + integrity sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw== + +caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30001538, caniuse-lite@^1.0.30001541: + version "1.0.30001564" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001564.tgz#eaa8bbc58c0cbccdcb7b41186df39dd2ba591889" + integrity sha512-DqAOf+rhof+6GVx1y+xzbFPeOumfQnhYzVnZD6LAXijR77yPtm9mfOcqOnT3mpnJiZVT+kwLAFnRlZcIz+c6bg== + +capital-case@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/capital-case/-/capital-case-1.0.4.tgz#9d130292353c9249f6b00fa5852bee38a717e669" + integrity sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + upper-case-first "^2.0.2" + +cardinal@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/cardinal/-/cardinal-2.1.1.tgz#7cc1055d822d212954d07b085dea251cc7bc5505" + integrity sha512-JSr5eOgoEymtYHBjNWyjrMqet9Am2miJhlfKNdqLp6zoeAh0KN5dRAcxlecj5mAJrmQomgiOBj35xHLrFjqBpw== + dependencies: + ansicolors "~0.3.2" + redeyed "~2.1.0" + +case@^1.6.3: + version "1.6.3" + 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.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== + +catering@^2.1.0, catering@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/catering/-/catering-2.1.1.tgz#66acba06ed5ee28d5286133982a927de9a04b510" + integrity sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w== + +cbor@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/cbor/-/cbor-8.1.0.tgz#cfc56437e770b73417a2ecbfc9caf6b771af60d5" + integrity sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg== + dependencies: + nofilter "^3.1.0" + +cborg@^1.5.4, cborg@^1.6.0: + version "1.10.2" + resolved "https://registry.yarnpkg.com/cborg/-/cborg-1.10.2.tgz#83cd581b55b3574c816f82696307c7512db759a1" + integrity sha512-b3tFPA9pUr2zCUiCfRd2+wok2/LBSNUMKOuRRok+WlvvAgEt/PlbgPTsZUcwCOs53IJvLgTp0eotwtosE6njug== + +chai-as-promised@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/chai-as-promised/-/chai-as-promised-7.1.1.tgz#08645d825deb8696ee61725dbf590c012eb00ca0" + integrity sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA== + dependencies: + check-error "^1.0.2" + +chai@^4.2.0, chai@^4.3.7: + version "4.3.10" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.10.tgz#d784cec635e3b7e2ffb66446a63b4e33bd390384" + integrity sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g== + dependencies: + assertion-error "^1.1.0" + 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.8" + +chalk@3.0.0, chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.2.0.tgz#249623b7d66869c673699fb66d65723e54dfcfb3" + integrity sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA== + +chalk@^1.0.0, chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + 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.4.1, chalk@^2.4.2: + version "2.4.2" + 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, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^5.0.0, chalk@^5.0.1, chalk@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" + integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== + +change-case-all@1.0.14: + version "1.0.14" + resolved "https://registry.yarnpkg.com/change-case-all/-/change-case-all-1.0.14.tgz#bac04da08ad143278d0ac3dda7eccd39280bfba1" + integrity sha512-CWVm2uT7dmSHdO/z1CXT/n47mWonyypzBbuCy5tN7uMg22BsfkhwT6oHmFCAk+gL1LOOxhdbB9SZz3J1KTY3gA== + dependencies: + change-case "^4.1.2" + is-lower-case "^2.0.2" + is-upper-case "^2.0.2" + lower-case "^2.0.2" + lower-case-first "^2.0.2" + sponge-case "^1.0.1" + swap-case "^2.0.2" + title-case "^3.0.3" + upper-case "^2.0.2" + upper-case-first "^2.0.2" + +change-case-all@1.0.15: + version "1.0.15" + resolved "https://registry.yarnpkg.com/change-case-all/-/change-case-all-1.0.15.tgz#de29393167fc101d646cd76b0ef23e27d09756ad" + integrity sha512-3+GIFhk3sNuvFAJKU46o26OdzudQlPNBCu1ZQi3cMeMHhty1bhDxu2WrEilVNYaGvqUtR1VSigFcJOiS13dRhQ== + dependencies: + change-case "^4.1.2" + is-lower-case "^2.0.2" + is-upper-case "^2.0.2" + lower-case "^2.0.2" + lower-case-first "^2.0.2" + sponge-case "^1.0.1" + swap-case "^2.0.2" + title-case "^3.0.3" + upper-case "^2.0.2" + upper-case-first "^2.0.2" + +change-case@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/change-case/-/change-case-4.1.2.tgz#fedfc5f136045e2398c0410ee441f95704641e12" + integrity sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A== + dependencies: + camel-case "^4.1.2" + capital-case "^1.0.4" + constant-case "^3.0.4" + dot-case "^3.0.4" + header-case "^2.0.4" + no-case "^3.0.4" + param-case "^3.0.4" + pascal-case "^3.1.2" + path-case "^3.0.4" + sentence-case "^3.0.4" + snake-case "^3.0.4" + tslib "^2.0.3" + +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== + +check-error@^1.0.2, 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: + get-func-name "^2.0.2" + +check-types@^11.2.3: + version "11.2.3" + resolved "https://registry.yarnpkg.com/check-types/-/check-types-11.2.3.tgz#1ffdf68faae4e941fce252840b1787b8edc93b71" + integrity sha512-+67P1GkJRaxQD6PKK0Et9DhwQB+vGg3PM5+aavopCpZT1lj9jeqfvpgTLAWErNj8qApkkmXlu/Ug74kmhagkXg== + +checkpoint-store@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/checkpoint-store/-/checkpoint-store-1.1.0.tgz#04e4cb516b91433893581e6d4601a78e9552ea06" + integrity sha512-J/NdY2WvIx654cc6LWSq/IYFFCUf75fFTgwzFnmbqyORH4MwgiQCgswLLKBGzmsyTI5V7i5bp/So6sMbDWhedg== + dependencies: + functional-red-black-tree "^1.0.1" + +chokidar@3.5.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" + integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== + 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.5.0" + optionalDependencies: + fsevents "~2.3.1" + +chokidar@3.5.3, "chokidar@>=3.0.0 <4.0.0", chokidar@^3.4.0, chokidar@^3.5.3: + version "3.5.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + 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" + optionalDependencies: + fsevents "~2.3.2" + +chownr@^1.0.1, chownr@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + +chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + +ci-info@3.8.0: + version "3.8.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.8.0.tgz#81408265a5380c929f0bc665d62256628ce9ef91" + integrity sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw== + +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== + +ci-info@^3.2.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" + integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== + +cids@^0.7.1, cids@~0.7.0: + version "0.7.5" + resolved "https://registry.yarnpkg.com/cids/-/cids-0.7.5.tgz#60a08138a99bfb69b6be4ceb63bfef7a396b28b2" + integrity sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA== + dependencies: + buffer "^5.5.0" + class-is "^1.1.0" + multibase "~0.6.0" + multicodec "^1.0.0" + multihashes "~0.4.15" + +cids@~0.8.0: + version "0.8.3" + resolved "https://registry.yarnpkg.com/cids/-/cids-0.8.3.tgz#aaf48ac8ed857c3d37dad94d8db1d8c9407b92db" + integrity sha512-yoXTbV3llpm+EBGWKeL9xKtksPE/s6DPoDSY4fn8I8TEW1zehWXPSB0pwAXVDlLaOlrw+sNynj995uD9abmPhA== + dependencies: + buffer "^5.6.0" + class-is "^1.1.0" + multibase "^1.0.0" + multicodec "^1.0.1" + multihashes "^1.0.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" + integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +circom@0.5.45: + version "0.5.45" + resolved "https://registry.yarnpkg.com/circom/-/circom-0.5.45.tgz#82931882c5d38022ccb8be9c4a6314ea94bc511e" + integrity sha512-5Ixp6UjwrhBWnnFBO/mTns+eeEDOpi5UoN4znAUWy5rklCUWYt2Ezl9QVUswBXjMP5kpfEtGUY2XSsYRAp6uMg== + dependencies: + chai "^4.2.0" + circom_runtime "0.1.12" + fastfile "0.0.18" + ffiasm "0.1.1" + ffjavascript "0.2.22" + ffwasm "0.0.7" + fnv-plus "^1.3.1" + r1csfile "0.0.16" + tmp-promise "^2.0.2" + wasmbuilder "0.0.10" + +circom_runtime@0.1.12: + version "0.1.12" + resolved "https://registry.yarnpkg.com/circom_runtime/-/circom_runtime-0.1.12.tgz#e1a302c6fe8cec390f035c2e7a8496cfa7cfb4a2" + integrity sha512-R+QT9HS9w71cmGmWIn+PSyD3aHyR5JZBiVvxOjCfn12wwnpuFwBjdMG7he+v8h/oQD1mDRAu2KrBeL4mAt5s4A== + dependencies: + ffjavascript "0.2.34" + fnv-plus "^1.3.1" + +circom_runtime@0.1.13: + version "0.1.13" + resolved "https://registry.yarnpkg.com/circom_runtime/-/circom_runtime-0.1.13.tgz#90f86f35d989c48d4c27595b94664ea6918fbede" + integrity sha512-vmv19/0p5OTe5uCI7PWqPtB5vPoYWjczqKYnabaC5HOxX99R4K1MuNqEXsNEAoEfZrmfAQd7vXLcATN9NVnsPA== + dependencies: + ffjavascript "0.2.35" + fnv-plus "^1.3.1" + +circom_runtime@0.1.21: + version "0.1.21" + resolved "https://registry.yarnpkg.com/circom_runtime/-/circom_runtime-0.1.21.tgz#0ee93bb798b5afb8ecec30725ed14d94587a999b" + integrity sha512-qTkud630B/GK8y76hnOaaS1aNuF6prfV0dTrkeRsiJKnlP1ryQbP2FWLgDOPqn6aKyaPlam+Z+DTbBhkEzh8dA== + dependencies: + ffjavascript "0.2.56" + +circom_runtime@^0.1.22: + version "0.1.24" + resolved "https://registry.yarnpkg.com/circom_runtime/-/circom_runtime-0.1.24.tgz#60ca8a31c3675802fbab5a0bcdeb02556e510733" + integrity sha512-H7/7I2J/cBmRnZm9docOCGhfxzS61BEm4TMCWcrZGsWNBQhePNfQq88Oj2XpUfzmBTCd8pRvRb3Mvazt3TMrJw== + dependencies: + ffjavascript "0.2.60" + +circomlib@^2.0.0, circomlib@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/circomlib/-/circomlib-2.0.5.tgz#183c703e53ed7d011811842dbeeeb9819f4cc1d6" + integrity sha512-O7NQ8OS+J4eshBuoy36z/TwQU0YHw8W3zxZcs4hVwpEll3e4hDm3mgkIPqItN8FDeLEKZFK3YeT/+k8TiLF3/A== + +"circomlib@git+https://github.com/weijiekoh/circomlib.git#24ed08eee0bb613b8c0135d66c1013bd9f78d50a": + version "0.5.2" + resolved "git+https://github.com/weijiekoh/circomlib.git#24ed08eee0bb613b8c0135d66c1013bd9f78d50a" + dependencies: + blake-hash "^1.1.0" + blake2b "^2.1.3" + circom "0.5.45" + ffjavascript "0.1.0" + web3-utils "^1.3.0" + +"circomlib@git+https://github.com/weijiekoh/circomlib.git#ac85e82c1914d47789e2032fb11ceb2cfdd38a2b": + version "1.0.0" + resolved "git+https://github.com/weijiekoh/circomlib.git#ac85e82c1914d47789e2032fb11ceb2cfdd38a2b" + +circomlibjs@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/circomlibjs/-/circomlibjs-0.0.8.tgz#c2d1130d2d99fbb22f3d40ac19f347d768eace76" + integrity sha512-oZFYapLO0mfiA+i2GU/V7bRNEEPjVcwV4M444nU5lNsdSJpqLwD57m9zxTD5m/KeY7WQ3lEAC9NNKEPQHu7s1w== + dependencies: + blake-hash "^2.0.0" + blake2b "^2.1.3" + ffjavascript "^0.2.38" + web3 "^1.6.0" + web3-utils "^1.6.0" + +circomlibjs@^0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/circomlibjs/-/circomlibjs-0.1.7.tgz#9f5a7d9a23323744b11ee456b05b0cd81f48b554" + integrity sha512-GRAUoAlKAsiiTa+PA725G9RmEmJJRc8tRFxw/zKktUxlQISGznT4hH4ESvW8FNTsrGg/nNd06sGP/Wlx0LUHVg== + dependencies: + blake-hash "^2.0.0" + blake2b "^2.1.3" + ethers "^5.5.1" + ffjavascript "^0.2.45" + +citty@^0.1.3, citty@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/citty/-/citty-0.1.5.tgz#fe37ceae5dc764af75eb2fece99d2bf527ea4e50" + integrity sha512-AS7n5NSc0OQVMV9v6wt3ByujNIrne0/cTjiC2MYqhvao57VNfiuVksTSr2p17nVOhEr2KtqiAkGwHcgMC/qUuQ== + dependencies: + consola "^3.2.3" + +class-is@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/class-is/-/class-is-1.1.0.tgz#9d3c0fba0440d211d843cec3dedfa48055005825" + integrity sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw== + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== + 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.yarnpkg.com/classic-level/-/classic-level-1.3.0.tgz#5e36680e01dc6b271775c093f2150844c5edd5c8" + integrity sha512-iwFAJQYtqRTRM0F6L8h4JCt00ZSGdOyqh7yVrhhjrOpFhmBjNlRUey64MCiyo6UmQHMJ+No3c81nujPv+n9yrg== + 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" + +clean-deep@3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/clean-deep/-/clean-deep-3.4.0.tgz#c465c4de1003ae13a1a859e6c69366ab96069f75" + integrity sha512-Lo78NV5ItJL/jl+B5w0BycAisaieJGXK1qYi/9m4SjR8zbqmrUtO7Yhro40wEShGmmxs/aJLI/A+jNhdkXK8mw== + dependencies: + lodash.isempty "^4.4.0" + lodash.isplainobject "^4.0.6" + lodash.transform "^4.6.0" + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +clean-stack@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-3.0.1.tgz#155bf0b2221bf5f4fba89528d24c5953f17fe3a8" + integrity sha512-lR9wNiMRcVQjSB3a7xXGLuz4cr4wJuuXlaAEbRutGowQTmlp7R72/DOgN21e8jdwblMWl9UOJMJXarX94pzKdg== + dependencies: + escape-string-regexp "4.0.0" + +clean-stack@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-4.2.0.tgz#c464e4cde4ac789f4e0735c5d75beb49d7b30b31" + integrity sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg== + dependencies: + escape-string-regexp "5.0.0" + +cli-boxes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-3.0.0.tgz#71a10c716feeba005e4504f36329ef0b17cf3145" + integrity sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g== + +cli-cursor@^2.0.0, cli-cursor@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + integrity sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw== + dependencies: + restore-cursor "^2.0.0" + +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + +cli-cursor@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-4.0.0.tgz#3cecfe3734bf4fe02a8361cbdc0f6fe28c6a57ea" + integrity sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg== + dependencies: + restore-cursor "^4.0.0" + +cli-progress@^3.11.2, cli-progress@^3.12.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/cli-progress/-/cli-progress-3.12.0.tgz#807ee14b66bcc086258e444ad0f19e7d42577942" + integrity sha512-tRkV3HJ1ASwm19THiiLIXLO7Im7wlTuKnvkYaTkyoAPefqjNg7W7DHKUlGRxy9vxDvbyCYQkQozvptuMkGCg8A== + dependencies: + string-width "^4.2.3" + +cli-spinners@^2.2.0, cli-spinners@^2.5.0, cli-spinners@^2.6.1: + version "2.9.2" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.2.tgz#1773a8f4b9c4d6ac31563df53b3fc1d79462fe41" + integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg== + +cli-table3@^0.6.0: + version "0.6.3" + resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.3.tgz#61ab765aac156b52f222954ffc607a6f01dbeeb2" + integrity sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg== + dependencies: + string-width "^4.2.0" + optionalDependencies: + "@colors/colors" "1.5.0" + +cli-table3@~0.5.0: + version "0.5.1" + 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" + string-width "^2.1.1" + optionalDependencies: + colors "^1.1.2" + +cli-truncate@2.1.0, cli-truncate@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" + integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== + dependencies: + slice-ansi "^3.0.0" + string-width "^4.2.0" + +cli-truncate@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574" + integrity sha512-f4r4yJnbT++qUPI9NR4XLDLq41gQ+uqnPItWG0F5ZkehuNiTTa3EY0S4AqTSUOeJ7/zU41oWPQSNkW5BqPL9bg== + dependencies: + slice-ansi "0.0.4" + string-width "^1.0.1" + +cli-width@^2.0.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" + integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== + +cli-width@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" + integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== + +clipboardy@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/clipboardy/-/clipboardy-3.0.0.tgz#f3876247404d334c9ed01b6f269c11d09a5e3092" + integrity sha512-Su+uU5sr1jkUy1sGRpLKjKrvEOVXgSgiSInwa/qeID6aJ07yh+5NWc3h2QfjHjBnfX4LhtFcuAWKUsJ3r+fjbg== + dependencies: + arch "^2.2.0" + execa "^5.1.1" + is-wsl "^2.2.0" + +cliui@^3.2.0: + version "3.2.0" + 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.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" + integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== + dependencies: + string-width "^3.1.0" + strip-ansi "^5.2.0" + wrap-ansi "^5.1.0" + +cliui@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" + integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.2.0" + +cliui@^7.0.2: + version "7.0.4" + 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" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + 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.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.1.2, clone@^2.0.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" + integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w== + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== + +cluster-key-slot@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz#88ddaa46906e303b5de30d3153b7d9fe0a0c19ac" + integrity sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA== + +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" + integrity sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA== + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + integrity sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw== + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +color-convert@^1.9.0, color-convert@^1.9.3: + version "1.9.3" + 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.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.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.0.0, color-name@^1.1.4, 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== + +color-string@^1.6.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" + integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color-support@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" + integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== + +color@^3.1.3: + version "3.2.1" + resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" + integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== + dependencies: + color-convert "^1.9.3" + color-string "^1.6.0" + +colorette@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.4.0.tgz#5190fbb87276259a86ad700bff2c6d6faa3fca40" + integrity sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g== + +colorette@^2.0.16: + version "2.0.20" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" + integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== + +colors-option@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/colors-option/-/colors-option-3.0.0.tgz#51f5d0d2b511a01859cdd70eaa9ed43ca4abf108" + integrity sha512-DP3FpjsiDDvnQC1OJBsdOJZPuy7r0o6sepY2T5M3L/d2nrE23O/ErFkEqyY3ngVL1ZhTj/H0pCMNObZGkEOaaQ== + dependencies: + chalk "^5.0.0" + filter-obj "^3.0.0" + is-plain-obj "^4.0.0" + jest-validate "^27.3.1" + +colors-option@^4.4.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/colors-option/-/colors-option-4.5.0.tgz#f307605fcf2ac8165fb15510852717c58ef60ec4" + integrity sha512-Soe5lerRg3erMRgYC0EC696/8dMCGpBzcQchFfi55Yrkja8F+P7cUt0LVTIg7u5ob5BexLZ/F1kO+ejmv+nq8w== + dependencies: + chalk "^5.0.1" + is-plain-obj "^4.1.0" + +colors@1.0.x: + version "1.0.3" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" + integrity sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw== + +colors@1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.3.3.tgz#39e005d546afe01e01f9c4ca8fa50f686a01205d" + integrity sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg== + +colors@1.4.0, colors@^1.1.2: + version "1.4.0" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" + integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== + +colorspace@1.1.x: + version "1.1.4" + resolved "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.4.tgz#8d442d1186152f60453bf8070cd66eb364e59243" + integrity sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w== + dependencies: + color "^3.1.3" + text-hex "1.0.x" + +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" + 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" + integrity sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w== + +command-line-args@^4.0.7: + version "4.0.7" + resolved "https://registry.yarnpkg.com/command-line-args/-/command-line-args-4.0.7.tgz#f8d1916ecb90e9e121eda6428e41300bfb64cc46" + integrity sha512-aUdPvQRAyBvQd2n7jXcsMDz68ckBJELXNzBybCHOibUWEg0mWTnaYCSRU8h9R+aNRSvDihJtssSRCiDRpLaezA== + dependencies: + array-back "^2.0.0" + find-replace "^1.0.3" + typical "^2.6.1" + +commander@10.0.1, commander@^10.0.0, commander@^10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" + integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== + +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@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-11.1.0.tgz#62fdce76006a68e5c1ab3314dc92e800eb83d906" + integrity sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ== + +commander@^2.15.0, commander@^2.20.3, commander@^2.8.1: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" + integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== + +commander@^8.2.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" + integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== + +commander@^9.3.0: + version "9.5.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-9.5.0.tgz#bc08d1eb5cedf7ccb797a96199d41c7bc3e60d30" + integrity sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ== + +comment-json@4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/comment-json/-/comment-json-4.2.3.tgz#50b487ebbf43abe44431f575ebda07d30d015365" + integrity sha512-SsxdiOf064DWoZLH799Ata6u7iV658A11PlWtZATDlXPpKGJnbJZ5Z24ybixAi+LUUqJ/GKowAejtC5GFUG7Tw== + dependencies: + array-timsort "^1.0.3" + core-util-is "^1.0.3" + esprima "^4.0.1" + has-own-prop "^2.0.0" + repeat-string "^1.6.1" + +common-path-prefix@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/common-path-prefix/-/common-path-prefix-3.0.0.tgz#7d007a7e07c58c4b4d5f433131a19141b29f11e0" + integrity sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w== + +common-tags@1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.2.tgz#94ebb3c076d26032745fd54face7f688ef5ac9c6" + integrity sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA== + +component-emitter@^1.2.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.1.tgz#ef1d5796f7d93f135ee6fb684340b26403c97d17" + integrity sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ== + +compress-commons@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-5.0.1.tgz#e46723ebbab41b50309b27a0e0f6f3baed2d6590" + integrity sha512-MPh//1cERdLtqwO3pOFLeXtpuai0Y2WCd5AhtKxznqM7WtaMYaOEMSgn45d9D10sIHSfIKE603HlOp8OPGrvag== + dependencies: + crc-32 "^1.2.0" + crc32-stream "^5.0.0" + normalize-path "^3.0.0" + readable-stream "^3.6.0" + +computeds@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/computeds/-/computeds-0.0.1.tgz#215b08a4ba3e08a11ff6eee5d6d8d7166a97ce2e" + integrity sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +concat-stream@^1.5.1, concat-stream@^1.6.0, concat-stream@^1.6.2, concat-stream@~1.6.2: + version "1.6.2" + 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" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +concordance@5.0.4: + version "5.0.4" + resolved "https://registry.yarnpkg.com/concordance/-/concordance-5.0.4.tgz#9896073261adced72f88d60e4d56f8efc4bbbbd2" + integrity sha512-OAcsnTEYu1ARJqWVGwf4zh4JDfHZEaSNlNccFmt8YjB2l/n19/PF2viLINHc57vO4FKIAFl2FWASIGZZWZ2Kxw== + dependencies: + date-time "^3.1.0" + esutils "^2.0.3" + fast-diff "^1.2.0" + js-string-escape "^1.0.1" + lodash "^4.17.15" + md5-hex "^3.0.1" + semver "^7.3.2" + well-known-symbols "^2.0.0" + +config-chain@^1.1.11: + version "1.1.13" + resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" + integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== + dependencies: + ini "^1.3.4" + proto-list "~1.2.1" + +configstore@6.0.0, configstore@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-6.0.0.tgz#49eca2ebc80983f77e09394a1a56e0aca8235566" + integrity sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA== + dependencies: + dot-prop "^6.0.1" + graceful-fs "^4.2.6" + unique-string "^3.0.0" + write-file-atomic "^3.0.3" + xdg-basedir "^5.0.1" + +consola@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/consola/-/consola-3.2.3.tgz#0741857aa88cfa0d6fd53f1cff0375136e98502f" + integrity sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ== + +console-browserify@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" + integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== + +console-control-strings@^1.0.0, console-control-strings@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== + +constant-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/constant-case/-/constant-case-3.0.4.tgz#3b84a9aeaf4cf31ec45e6bf5de91bdfb0589faf1" + integrity sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + upper-case "^2.0.2" + +constants-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + integrity sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ== + +content-disposition@0.5.4, content-disposition@^0.5.3, content-disposition@^0.5.4: + version "0.5.4" + 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.yarnpkg.com/content-hash/-/content-hash-2.5.2.tgz#bbc2655e7c21f14fd3bfc7b7d4bfe6e454c9e211" + integrity sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw== + dependencies: + cids "^0.7.1" + multicodec "^0.5.5" + multihashes "^0.4.15" + +content-type@1.0.5, 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" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== + +convert-source-map@^1.5.1: + version "1.9.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" + integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== + +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== + +cookie-es@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/cookie-es/-/cookie-es-1.0.0.tgz#4759684af168dfc54365b2c2dda0a8d7ee1e4865" + integrity sha512-mWYvfOLrfEc996hlKcdABeIiPHUPC6DM2QYZdGGOvhOTbA3tjm2eBwqlJpoFdjC89NI4Qt6h0Pu06Mp+1Pj5OQ== + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== + +cookie@0.5.0, 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" + integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== + +cookiejar@^2.1.1: + version "2.1.4" + resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.4.tgz#ee669c1fea2cf42dc31585469d193fef0d65771b" + integrity sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw== + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw== + +copy-template-dir@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/copy-template-dir/-/copy-template-dir-1.4.0.tgz#cb2bd62415abe963a53bb867bb24379df3998112" + integrity sha512-xkXSJhvKz4MfLbVkZ7GyCaFo4ciB3uKI/HHzkGwj1eyTH5+7RTFxW5CE0irWAZgV5oFcO9hd6+NVXAtY9hlo7Q== + dependencies: + end-of-stream "^1.1.0" + graceful-fs "^4.1.3" + maxstache "^1.0.0" + maxstache-stream "^1.0.0" + mkdirp "^0.5.1" + noop2 "^2.0.0" + pump "^1.0.0" + readdirp "^2.0.0" + run-parallel "^1.1.4" + +core-js-pure@^3.0.1: + version "3.33.3" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.33.3.tgz#cbf9180ac4c4653823d784862bfb5c77eac0bf98" + integrity sha512-taJ00IDOP+XYQEA2dAe4ESkmHt1fL8wzYDo3mRWQey8uO9UojlBFMneA65kMyxfYP7106c6LzWaq7/haDT6BCQ== + +core-js@^2.4.0, core-js@^2.5.0: + version "2.6.12" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" + integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== + +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" + integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== + +core-util-is@^1.0.3, 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" + integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== + dependencies: + object-assign "^4" + vary "^1" + +cosmiconfig@6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" + integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.1.0" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.7.2" + +cosmiconfig@8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.0.0.tgz#e9feae014eab580f858f8a0288f38997a7bebe97" + integrity sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ== + dependencies: + import-fresh "^3.2.1" + js-yaml "^4.1.0" + parse-json "^5.0.0" + path-type "^4.0.0" + +cosmiconfig@^7.0.0, cosmiconfig@^7.0.1: + version "7.1.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz#1443b9afa596b670082ea46cbd8f6a62b84635f6" + integrity sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.2.1" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.10.0" + +cosmiconfig@^8.0.0: + version "8.3.6" + 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" + js-yaml "^4.1.0" + parse-json "^5.2.0" + path-type "^4.0.0" + +cp-file@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/cp-file/-/cp-file-10.0.0.tgz#bbae9ecb9f505951b862880d2901e1f56de7a4dc" + integrity sha512-vy2Vi1r2epK5WqxOLnskeKeZkdZvTKfFZQCplE3XWsP+SUJyd5XAUFC9lFgTjjXJF2GMne/UML14iEmkAaDfFg== + dependencies: + graceful-fs "^4.2.10" + nested-error-stacks "^2.1.1" + p-event "^5.0.1" + +cp-file@^9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/cp-file/-/cp-file-9.1.0.tgz#e98e30db72d57d47b5b1d444deb70d05e5684921" + integrity sha512-3scnzFj/94eb7y4wyXRWwvzLFaQp87yyfTnChIjlfYrVqp5lVO3E2hIJMeQIltUT0K2ZAB3An1qXcBmwGyvuwA== + dependencies: + graceful-fs "^4.1.2" + make-dir "^3.0.0" + nested-error-stacks "^2.0.0" + p-event "^4.1.0" + +cpy@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/cpy/-/cpy-9.0.1.tgz#7f3ad0ad5bafe0bc70645c4bb567969927cadb9f" + integrity sha512-D9U0DR5FjTCN3oMTcFGktanHnAG5l020yvOCR1zKILmAyPP7I/9pl6NFgRbDcmSENtbK1sQLBz1p9HIOlroiNg== + dependencies: + arrify "^3.0.0" + cp-file "^9.1.0" + globby "^13.1.1" + junk "^4.0.0" + micromatch "^4.0.4" + nested-error-stacks "^2.1.0" + p-filter "^3.0.0" + p-map "^5.3.0" + +crc-32@^1.2.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.2.tgz#3cad35a934b8bf71f25ca524b6da51fb7eace2ff" + integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== + +crc32-stream@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-5.0.0.tgz#a97d3a802c8687f101c27cc17ca5253327354720" + integrity sha512-B0EPa1UK+qnpBZpG+7FgPCu0J2ETLpXq09o9BkLkEAhdB6Z61Qo4pJ3JYu0c+Qi+/SAL7QThqnzS06pmSSyZaw== + dependencies: + crc-32 "^1.2.0" + readable-stream "^3.4.0" + +create-ecdh@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" + integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== + dependencies: + bn.js "^4.1.0" + elliptic "^6.5.3" + +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" + 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" + +create-hmac@^1.1.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" + 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" + +create-require@^1.1.0, create-require@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + +cron-parser@4.8.1: + version "4.8.1" + resolved "https://registry.yarnpkg.com/cron-parser/-/cron-parser-4.8.1.tgz#47062ea63d21d78c10ddedb08ea4c5b6fc2750fb" + integrity sha512-jbokKWGcyU4gl6jAfX97E1gDpY12DJ1cLJZmoDzaAln/shZ+S3KBFBuA2Q6WeUN4gJf/8klnV1EfvhA2lK5IRQ== + dependencies: + luxon "^3.2.1" + +cron-parser@^4.1.0: + version "4.9.0" + resolved "https://registry.yarnpkg.com/cron-parser/-/cron-parser-4.9.0.tgz#0340694af3e46a0894978c6f52a6dbb5c0f11ad5" + integrity sha512-p0SaNjrHOnQeR8/VnfGbmg9te2kfyYSQ7Sc/j/6DtPL3JQvKxmjO9TSjNFpujqV3vEYYBvNNvXSxzyksBWAx1Q== + dependencies: + luxon "^3.2.1" + +cross-fetch@^2.1.0, cross-fetch@^2.1.1: + version "2.2.6" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-2.2.6.tgz#2ef0bb39a24ac034787965c457368a28730e220a" + integrity sha512-9JZz+vXCmfKUZ68zAptS7k4Nu8e2qcibe7WVZYps7sAgk5R8GYTc+T1WR0v1rlP9HxgARmOX1UTIJZFytajpNA== + dependencies: + node-fetch "^2.6.7" + whatwg-fetch "^2.0.4" + +cross-fetch@^3.1.4, cross-fetch@^3.1.5: + version "3.1.8" + 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.yarnpkg.com/cross-fetch/-/cross-fetch-4.0.0.tgz#f037aef1580bb3a1a35164ea2a848ba81b445983" + integrity sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g== + dependencies: + node-fetch "^2.6.12" + +cross-spawn@^6.0.5: + version "6.0.5" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== + 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.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +crypto-browserify@3.12.0, crypto-browserify@^3.11.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== + 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.1.1: + version "4.2.0" + resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.2.0.tgz#4d931639ecdfd12ff80e8186dba6af2c2e856631" + integrity sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q== + +crypto-random-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-4.0.0.tgz#5a3cc53d7dd86183df5da0312816ceeeb5bb1fc2" + integrity sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA== + dependencies: + type-fest "^1.0.1" + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +cssom@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.5.0.tgz#d254fa92cd8b6fbd83811b9fbaed34663cc17c36" + integrity sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw== + +cssom@~0.3.6: + version "0.3.8" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" + integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== + +cssstyle@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" + integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== + dependencies: + cssom "~0.3.6" + +csstype@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" + integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== + +cycle@1.0.x: + version "1.0.3" + resolved "https://registry.yarnpkg.com/cycle/-/cycle-1.0.3.tgz#21e80b2be8580f98b468f379430662b046c34ad2" + integrity sha512-TVF6svNzeQCOpjCqsy0/CSy8VgObG3wXusJ73xW2GbG5rGx7lC8zxDSURicsXI2UsGdi2L0QNRCi745/wUDvsA== + +cyclist@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.2.tgz#673b5f233bf34d8e602b949429f8171d9121bea3" + integrity sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA== + +d@1, d@^1.0.1: + version "1.0.1" + 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" + type "^1.0.1" + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== + dependencies: + assert-plus "^1.0.0" + +data-uri-to-buffer@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz#d8feb2b2881e6a4f58c2e08acfd0e2834e26222e" + integrity sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A== + +data-urls@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-3.0.2.tgz#9cf24a477ae22bcef5cd5f6f0bfbc1d2d3be9143" + integrity sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ== + dependencies: + abab "^2.0.6" + whatwg-mimetype "^3.0.0" + whatwg-url "^11.0.0" + +dataloader@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/dataloader/-/dataloader-2.2.2.tgz#216dc509b5abe39d43a9b9d97e6e5e473dfbe3e0" + integrity sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g== + +datastore-core@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/datastore-core/-/datastore-core-0.7.0.tgz#c5d3cded07f3c81ca49c5ee6f20e9a60cc03adf1" + integrity sha512-hj7YQCDW+N22k7PRQ1XIwFWv78cJ311OGKzqFlJb5Afe1ARx9T1lyDkzr19a6ejDpK+f5EcSumra0MwJ/Ee7mw== + dependencies: + debug "^4.1.1" + interface-datastore "~0.7.0" + +datastore-fs@~0.9.0, datastore-fs@~0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/datastore-fs/-/datastore-fs-0.9.1.tgz#8232bddf06877acc122ec699709d646ffe54d07b" + integrity sha512-clhkqbYzpe/L0mKVBjXB7hxBpzDbYkMOG2aBH5jepSpmKmouJhp01yzUrqB6zRz01hEN0u2r4kosTVKJ3K4sUA== + dependencies: + datastore-core "~0.7.0" + fast-write-atomic "~0.2.0" + glob "^7.1.3" + interface-datastore "~0.7.0" + mkdirp "~0.5.1" + +datastore-level@~0.12.1: + version "0.12.1" + resolved "https://registry.yarnpkg.com/datastore-level/-/datastore-level-0.12.1.tgz#253ba375f039438e2b8e03e2cfb2d09f83416dc2" + integrity sha512-PxUIrH/0ijuaJLypOx1XjOIvsZCZcN1qZ3HKyqXFhU8Wpkn01/Q/9nL/MM1tKK1EwOTFmgXKUtFbO27gf6LpcQ== + dependencies: + datastore-core "~0.7.0" + interface-datastore "~0.7.0" + level "^5.0.1" + +datastore-level@~0.14.0: + version "0.14.1" + resolved "https://registry.yarnpkg.com/datastore-level/-/datastore-level-0.14.1.tgz#a935ed6fecfba3acfffaee78b2a3dd7654086230" + integrity sha512-gAXD11GfxMfUWkhFr3GebZjGxnHabnz6pOgxFw/6MddAE3pOfHCbPPssYdGGSDv+nl0jwhNrsncGdlQ/FvPpcg== + dependencies: + datastore-core "~0.7.0" + interface-datastore "^0.8.0" + level "^5.0.1" + +date-fns@^1.27.2: + version "1.30.1" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c" + integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw== + +date-time@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/date-time/-/date-time-3.1.0.tgz#0d1e934d170579f481ed8df1e2b8ff70ee845e1e" + integrity sha512-uqCUKXE5q1PNBXjPqvwhwJf9SwMoAHBgWJ6DcrnS5o+W2JOiIILl0JEdVD8SGujrNS02GGxgwAg2PN2zONgtjg== + dependencies: + time-zone "^1.0.0" + +de-indent@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" + integrity sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg== + +debounce@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.1.tgz#38881d8f4166a5c5848020c11827b834bcb3e0a5" + integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug== + +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + 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== + dependencies: + ms "^2.1.1" + +debug@4, debug@4.3.4, debug@^4.0.0, debug@^4.0.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: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +debug@4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" + integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== + dependencies: + ms "2.1.2" + +debug@^3.1.0, debug@^3.2.6: + 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" + +decache@4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/decache/-/decache-4.6.2.tgz#c1df1325a2f36d53922e08f33380f083148199cd" + integrity sha512-2LPqkLeu8XWHU8qNCS3kcF6sCcb5zIzvWaAHYSvPfwhdd7mHuah29NssMzrTYyHN4F5oFy2ko9OBYxegtU0FEw== + dependencies: + callsite "^1.0.0" + +decamelize-keys@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.1.tgz#04a2d523b2f18d80d0158a43b895d56dff8d19d8" + integrity sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg== + dependencies: + decamelize "^1.1.0" + map-obj "^1.0.0" + +decamelize@^1.1.0, decamelize@^1.1.1, decamelize@^1.2.0: + version "1.2.0" + 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.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" + integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== + +decimal.js@^10.4.2: + version "10.4.3" + resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23" + integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA== + +decode-uri-component@^0.2.0, decode-uri-component@^0.2.2: + version "0.2.2" + 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.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.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.0.1, deep-eql@^4.1.3: + version "4.1.3" + 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-equal@~1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.2.tgz#78a561b7830eef3134c7f6f3a3d6af272a678761" + 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.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.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + +deepmerge@^4.2.2: + version "4.3.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== + +defaults@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" + integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== + dependencies: + clone "^1.0.2" + +defer-to-connect@^1.0.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" + integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== + +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" + 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" + integrity sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA== + dependencies: + abstract-leveldown "~2.6.0" + +deferred-leveldown@~4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/deferred-leveldown/-/deferred-leveldown-4.0.2.tgz#0b0570087827bf480a23494b398f04c128c19a20" + integrity sha512-5fMC8ek8alH16QiV0lTCis610D1Zt1+LA4MS4d63JgS32lrCjTFDUFz2ao09/j2I4Bqb5jL4FZYwu7Jz0XO1ww== + dependencies: + abstract-leveldown "~5.0.0" + inherits "^2.0.3" + +deferred-leveldown@~5.3.0: + version "5.3.0" + 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, 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-lazy-prop@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" + integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== + +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" + integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== + dependencies: + define-data-property "^1.0.1" + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + integrity sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA== + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + integrity sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA== + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +defined@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.1.tgz#c0b9db27bfaffd95d6f61399419b893df0f91ebf" + integrity sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q== + +defu@^6.1.2, defu@^6.1.3: + version "6.1.3" + resolved "https://registry.yarnpkg.com/defu/-/defu-6.1.3.tgz#6d7f56bc61668e844f9f593ace66fd67ef1205fd" + integrity sha512-Vy2wmG3NTkmHNg/kzpuvHhkqeIx3ODWqasgCRbKtbXEN0G+HpEEv9BtJLp7ZG1CZloFaC41Ah3ZFbq7aqCqMeQ== + +delay@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/delay/-/delay-5.0.0.tgz#137045ef1b96e5071060dd5be60bf9334436bd1d" + integrity sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw== + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== + +delimit-stream@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/delimit-stream/-/delimit-stream-0.1.0.tgz#9b8319477c0e5f8aeb3ce357ae305fc25ea1cd2b" + integrity sha512-a02fiQ7poS5CnjiJBAsjGLPp5EwVoGHNeu9sziBd9huppRfsAFIpv5zNLv0V1gbop53ilngAf5Kf331AwcoRBQ== + +denque@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/denque/-/denque-2.1.0.tgz#e93e1a6569fb5e66f16a3c2a2964617d349d6ab1" + integrity sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw== + +depd@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== + +dependency-graph@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/dependency-graph/-/dependency-graph-0.11.0.tgz#ac0ce7ed68a54da22165a85e97a01d53f5eb2e27" + integrity sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg== + +deprecation@^2.0.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" + integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== + +des.js@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.1.0.tgz#1d37f5766f3bbff4ee9638e871a8768c173b81da" + integrity sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg== + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +destr@^2.0.1, destr@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/destr/-/destr-2.0.2.tgz#8d3c0ee4ec0a76df54bc8b819bca215592a8c218" + integrity sha512-65AlobnZMiCET00KaFFjUefxDX0khFA/E4myqZ7a6Sq1yZtR8+FVIvilVX66vF2uobSumxooYZChiRPCKNqhmg== + +destroy@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== + +detect-browser@5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/detect-browser/-/detect-browser-5.3.0.tgz#9705ef2bddf46072d0f7265a1fe300e36fe7ceca" + integrity sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w== + +detect-indent@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" + integrity sha512-BDKtmHlOzwI7iRuEkhzsnPoi5ypEhWAJB5RvHWe1kMr06js3uK5B3734i3ui5Yd+wOJV1cpE4JnivPD283GU/A== + dependencies: + repeating "^2.0.0" + +detect-indent@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6" + integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== + +detect-libc@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== + +detect-libc@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.2.tgz#8ccf2ba9315350e1241b88d0ac3b0e1fbd99605d" + integrity sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw== + +detective-amd@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/detective-amd/-/detective-amd-5.0.2.tgz#579900f301c160efe037a6377ec7e937434b2793" + integrity sha512-XFd/VEQ76HSpym80zxM68ieB77unNuoMwopU2TFT/ErUk5n4KvUTwW4beafAVUugrjV48l4BmmR0rh2MglBaiA== + dependencies: + ast-module-types "^5.0.0" + escodegen "^2.0.0" + get-amd-module-type "^5.0.1" + node-source-walk "^6.0.1" + +detective-cjs@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/detective-cjs/-/detective-cjs-5.0.1.tgz#836ad51c6de4863efc7c419ec243694f760ff8b2" + integrity sha512-6nTvAZtpomyz/2pmEmGX1sXNjaqgMplhQkskq2MLrar0ZAIkHMrDhLXkRiK2mvbu9wSWr0V5/IfiTrZqAQMrmQ== + dependencies: + ast-module-types "^5.0.0" + node-source-walk "^6.0.0" + +detective-es6@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/detective-es6/-/detective-es6-4.0.1.tgz#38d5d49a6d966e992ef8f2d9bffcfe861a58a88a" + integrity sha512-k3Z5tB4LQ8UVHkuMrFOlvb3GgFWdJ9NqAa2YLUU/jTaWJIm+JJnEh4PsMc+6dfT223Y8ACKOaC0qcj7diIhBKw== + dependencies: + node-source-walk "^6.0.1" + +detective-postcss@^6.1.3: + version "6.1.3" + resolved "https://registry.yarnpkg.com/detective-postcss/-/detective-postcss-6.1.3.tgz#51a2d4419327ad85d0af071c7054c79fafca7e73" + integrity sha512-7BRVvE5pPEvk2ukUWNQ+H2XOq43xENWbH0LcdCE14mwgTBEAMoAx+Fc1rdp76SmyZ4Sp48HlV7VedUnP6GA1Tw== + dependencies: + is-url "^1.2.4" + postcss "^8.4.23" + postcss-values-parser "^6.0.2" + +detective-sass@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/detective-sass/-/detective-sass-5.0.3.tgz#63e54bc9b32f4bdbd9d5002308f9592a3d3a508f" + integrity sha512-YsYT2WuA8YIafp2RVF5CEfGhhyIVdPzlwQgxSjK+TUm3JoHP+Tcorbk3SfG0cNZ7D7+cYWa0ZBcvOaR0O8+LlA== + dependencies: + gonzales-pe "^4.3.0" + node-source-walk "^6.0.1" + +detective-scss@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/detective-scss/-/detective-scss-4.0.3.tgz#79758baa0158f72bfc4481eb7e21cc3b5f1ea6eb" + integrity sha512-VYI6cHcD0fLokwqqPFFtDQhhSnlFWvU614J42eY6G0s8c+MBhi9QAWycLwIOGxlmD8I/XvGSOUV1kIDhJ70ZPg== + dependencies: + gonzales-pe "^4.3.0" + node-source-walk "^6.0.1" + +detective-stylus@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/detective-stylus/-/detective-stylus-4.0.0.tgz#ce97b6499becdc291de7b3c11df8c352c1eee46e" + integrity sha512-TfPotjhszKLgFBzBhTOxNHDsutIxx9GTWjrL5Wh7Qx/ydxKhwUrlSFeLIn+ZaHPF+h0siVBkAQSuy6CADyTxgQ== + +detective-typescript@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/detective-typescript/-/detective-typescript-11.1.0.tgz#2deea5364cae1f0d9d3688bc596e662b049438cc" + integrity sha512-Mq8egjnW2NSCkzEb/Az15/JnBI/Ryyl6Po0Y+0mABTFvOS6DAyUGRZqz1nyhu4QJmWWe0zaGs/ITIBeWkvCkGw== + dependencies: + "@typescript-eslint/typescript-estree" "^5.59.5" + ast-module-types "^5.0.0" + node-source-walk "^6.0.1" + typescript "^5.0.4" + +didyoumean@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.2.tgz#989346ffe9e839b4555ecf5666edea0d3e8ad037" + integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw== + +diff@5.0.0: + version "5.0.0" + 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== + +diffie-hellman@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + +dijkstrajs@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/dijkstrajs/-/dijkstrajs-1.0.3.tgz#4c8dbdea1f0f6478bff94d9c49c784d623e4fc23" + integrity sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA== + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +dlv@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79" + integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== + +dns-over-http-resolver@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/dns-over-http-resolver/-/dns-over-http-resolver-1.2.3.tgz#194d5e140a42153f55bb79ac5a64dd2768c36af9" + integrity sha512-miDiVSI6KSNbi4SVifzO/reD8rMnxgrlnkrlkugOLQpWQTe2qMdHsZp5DmfKjxNE+/T3VAAYLQUZMv9SMr6+AA== + dependencies: + debug "^4.3.1" + native-fetch "^3.0.0" + receptacle "^1.3.2" + +docker-compose@0.23.19: + version "0.23.19" + resolved "https://registry.yarnpkg.com/docker-compose/-/docker-compose-0.23.19.tgz#9947726e2fe67bdfa9e8efe1ff15aa0de2e10eb8" + integrity sha512-v5vNLIdUqwj4my80wxFDkNH+4S85zsRuH29SO7dCWVWPCMt/ohZBsGN6g6KXWifT0pzQ7uOxqEKCYCDPJ8Vz4g== + dependencies: + yaml "^1.10.2" + +docker-modem@^1.0.8: + version "1.0.9" + resolved "https://registry.yarnpkg.com/docker-modem/-/docker-modem-1.0.9.tgz#a1f13e50e6afb6cf3431b2d5e7aac589db6aaba8" + integrity sha512-lVjqCSCIAUDZPAZIeyM125HXfNvOmYYInciphNrLrylUtKyW66meAjSPXWchKVzoIYZx69TPnAepVSSkeawoIw== + dependencies: + JSONStream "1.3.2" + debug "^3.2.6" + readable-stream "~1.0.26-4" + split-ca "^1.0.0" + +dockerode@2.5.8: + version "2.5.8" + resolved "https://registry.yarnpkg.com/dockerode/-/dockerode-2.5.8.tgz#1b661e36e1e4f860e25f56e0deabe9f87f1d0acc" + integrity sha512-+7iOUYBeDTScmOmQqpUYQaE7F4vvIt6+gIZNHWhqAQEI887tiPFB9OvXI/HzQYqfUNvukMK+9myLW63oTJPZpw== + dependencies: + concat-stream "~1.6.2" + docker-modem "^1.0.8" + tar-fs "~1.16.3" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +dom-walk@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" + integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== + +domain-browser@^4.22.0: + version "4.23.0" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-4.23.0.tgz#427ebb91efcb070f05cffdfb8a4e9a6c25f8c94b" + integrity sha512-ArzcM/II1wCCujdCNyQjXrAFwS4mrLh4C7DZWlaI8mdh7h3BfKdNd3bKXITfl2PT9FtfQqaGvhi1vPRQPimjGA== + +domexception@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-4.0.0.tgz#4ad1be56ccadc86fc76d033353999a8037d03673" + integrity sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw== + dependencies: + webidl-conversions "^7.0.0" + +dot-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" + integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +dot-object@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/dot-object/-/dot-object-2.1.4.tgz#c6c54e9fca510b4d0ea4d65acf33726963843b5f" + integrity sha512-7FXnyyCLFawNYJ+NhkqyP9Wd2yzuo+7n9pGiYpkmXCTYa8Ci2U0eUNDVg5OuO5Pm6aFXI2SWN8/N/w7SJWu1WA== + dependencies: + commander "^4.0.0" + glob "^7.1.5" + +dot-prop@7.2.0, dot-prop@^7.0.0, dot-prop@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-7.2.0.tgz#468172a3529779814d21a779c1ba2f6d76609809" + integrity sha512-Ol/IPXUARn9CSbkrdV4VJo7uCy1I3VuSiWCaFSg+8BdUOzF9n3jefIpcgAydvUZbTdEBZs2vEiTiS9m61ssiDA== + dependencies: + type-fest "^2.11.2" + +dot-prop@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-6.0.1.tgz#fc26b3cf142b9e59b74dbd39ed66ce620c681083" + integrity sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA== + dependencies: + is-obj "^2.0.0" + +dotenv@16.0.3: + version "16.0.3" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.3.tgz#115aec42bac5053db3c456db30cc243a5a836a07" + integrity sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ== + +dotenv@^16.0.0, dotenv@^16.3.1: + version "16.3.1" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.3.1.tgz#369034de7d7e5b120972693352a3bf112172cc3e" + integrity sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ== + +dotenv@^8.2.0: + version "8.6.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.6.0.tgz#061af664d19f7f4d8fc6e4ff9b584ce237adcb8b" + integrity sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g== + +dotignore@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/dotignore/-/dotignore-0.1.2.tgz#f942f2200d28c3a76fbdd6f0ee9f3257c8a2e905" + integrity sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw== + dependencies: + minimatch "^3.0.4" + +dset@^3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/dset/-/dset-3.1.3.tgz#c194147f159841148e8e34ca41f638556d9542d2" + integrity sha512-20TuZZHCEZ2O71q9/+8BwKwZ0QtD9D8ObhrihJPr+vLLYlSuAU3/zL4cSlgbfeoGHTjCSJBa7NGcrF9/Bx/WJQ== + +duplexer3@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.5.tgz#0b5e4d7bad5de8901ea4440624c8e1d20099217e" + integrity sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA== + +duplexify@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-4.1.2.tgz#18b4f8d28289132fa0b9573c898d9f903f81c7b0" + integrity sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw== + dependencies: + end-of-stream "^1.4.1" + inherits "^2.0.3" + readable-stream "^3.1.1" + stream-shift "^1.0.0" + +eastasianwidth@^0.2.0: + version "0.2.0" + 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.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +ecdsa-sig-formatter@1.0.11, ecdsa-sig-formatter@^1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" + integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== + dependencies: + safe-buffer "^5.0.1" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== + +ejs@^2.6.1: + version "2.7.4" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.7.4.tgz#48661287573dcc53e366c7a1ae52c3a120eec9ba" + integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA== + +ejs@^3.0.1, ejs@^3.1.6, ejs@^3.1.8: + version "3.1.9" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.9.tgz#03c9e8777fe12686a9effcef22303ca3d8eeb361" + integrity sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ== + dependencies: + jake "^10.8.5" + +electron-fetch@^1.7.2: + version "1.9.1" + resolved "https://registry.yarnpkg.com/electron-fetch/-/electron-fetch-1.9.1.tgz#e28bfe78d467de3f2dec884b1d72b8b05322f30f" + integrity sha512-M9qw6oUILGVrcENMSRRefE1MbHPIz0h79EKIeJWK9v563aT9Qkh8aEHPO1H5vi970wPirNY+jO9OpFoLiMsMGA== + dependencies: + encoding "^0.1.13" + +electron-to-chromium@^1.3.47, electron-to-chromium@^1.4.535: + version "1.4.594" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.594.tgz#f69f207fba80735a44a988df42f3f439115d0515" + integrity sha512-xT1HVAu5xFn7bDfkjGQi9dNpMqGchUkebwf1GL7cZN32NSwwlHRPMSDJ1KN6HkS0bWUtndbSQZqvpQftKG2uFQ== + +elegant-spinner@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" + integrity sha512-B+ZM+RXvRqQaAmkMlO/oSe5nMUOaUnyfGYCEHoR8wrXsZR2mA0XVibsxV1bvTwxdRWah1PkQqso2EzhILGHtEQ== + +elliptic@6.5.4, elliptic@^6.4.0, elliptic@^6.5.2, elliptic@^6.5.3, elliptic@^6.5.4: + version "6.5.4" + 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" + 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" + +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + 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" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + +enabled@2.0.x: + version "2.0.0" + resolved "https://registry.yarnpkg.com/enabled/-/enabled-2.0.0.tgz#f9dd92ec2d6f4bbc0d5d1e64e21d61cd4665e7c2" + integrity sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ== + +encode-utf8@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/encode-utf8/-/encode-utf8-1.0.3.tgz#f30fdd31da07fb596f281beb2f6b027851994cda" + integrity sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== + +encoding-down@5.0.4, encoding-down@~5.0.0: + version "5.0.4" + resolved "https://registry.yarnpkg.com/encoding-down/-/encoding-down-5.0.4.tgz#1e477da8e9e9d0f7c8293d320044f8b2cd8e9614" + integrity sha512-8CIZLDcSKxgzT+zX8ZVfgNbu8Md2wq/iqa1Y7zyVR18QBEAc0Nmzuvj/N5ykSKpfGzjM8qxbaFntLPwnVoUhZw== + 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-down@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/encoding-down/-/encoding-down-6.3.0.tgz#b1c4eb0e1728c146ecaef8e32963c549e76d082b" + integrity sha512-QKrV0iKR6MZVJV08QY0wp1e7vF6QbhnbQhb07bwpEyuz4uZiZgPlEGdkCROuFkUwdxlFaiPIhjyarH1ee/3vhw== + dependencies: + abstract-leveldown "^6.2.1" + inherits "^2.0.3" + level-codec "^9.0.0" + level-errors "^2.0.0" + +encoding@^0.1.11, encoding@^0.1.13: + version "0.1.13" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" + integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== + dependencies: + iconv-lite "^0.6.2" + +end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1: + version "1.4.4" + 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.4: + version "2.3.4" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.4.tgz#c608f2e1134c7f68c1c9ee056de13f9b31076de9" + integrity sha512-pkYrrDZumL2VS6VBGDhqbajCM2xpkUNLuKfGPjfKaSIBKYopQbqEFyrOkRMIb2HDR/rO1kGhEt/5twBwtzKBXw== + dependencies: + ansi-colors "^3.2.1" + +enquirer@^2.3.0, enquirer@^2.3.6: + version "2.4.1" + 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" + strip-ansi "^6.0.1" + +entities@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" + integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== + +entities@^4.4.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" + integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== + +entities@~3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/entities/-/entities-3.0.1.tgz#2b887ca62585e96db3903482d336c1006c3001d4" + integrity sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q== + +env-paths@3.0.0, env-paths@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-3.0.0.tgz#2f1e89c2f6dbd3408e1b1711dd82d62e317f58da" + integrity sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A== + +env-paths@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" + integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== + +envinfo@7.8.1: + version "7.8.1" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475" + integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw== + +err-code@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/err-code/-/err-code-1.1.2.tgz#06e0116d3028f6aef4806849eb0ea6a748ae6960" + integrity sha512-CJAN+O0/yA1CKfRn9SXOGctSpEM7DCon/r/5r2eXFMY2zCCJBasFhcM5I+1kh3Ap11FsQCX+vGHceNPvpWKhoA== + +err-code@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" + integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== + +err-code@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/err-code/-/err-code-3.0.1.tgz#a444c7b992705f2b120ee320b09972eef331c920" + integrity sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA== + +errno@~0.1.1: + version "0.1.8" + 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.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +error-stack-parser@^2.0.2, error-stack-parser@^2.0.3: + version "2.1.4" + resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.1.4.tgz#229cb01cdbfa84440bfa91876285b94680188286" + integrity sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ== + dependencies: + stackframe "^1.3.4" + +error@7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/error/-/error-7.0.2.tgz#a5f75fff4d9926126ddac0ea5dc38e689153cb02" + integrity sha512-UtVv4l5MhijsYUxPJo4390gzfZvAnTHreNnDjnTZaKIiZ/SemXxAhBkYSKtWa5RtBXbLP8tMgn/n0RUa/H7jXw== + dependencies: + string-template "~0.2.1" + xtend "~4.0.0" + +error@^7.0.0: + version "7.2.1" + resolved "https://registry.yarnpkg.com/error/-/error-7.2.1.tgz#eab21a4689b5f684fc83da84a0e390de82d94894" + integrity sha512-fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA== + dependencies: + string-template "~0.2.1" + +es-abstract@^1.22.1: + 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.5" + es-set-tostringtag "^2.0.1" + es-to-primitive "^1.2.1" + function.prototype.name "^1.1.6" + get-intrinsic "^1.2.2" + get-symbol-description "^1.0.0" + globalthis "^1.0.3" + gopd "^1.0.1" + 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" + 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.13.1" + 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.13" + +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" + integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== + +es-module-lexer@^1.0.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.4.1.tgz#41ea21b43908fe6a287ffcbe4300f790555331f5" + integrity sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w== + +es-set-tostringtag@^2.0.1: + 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.2.2" + has-tostringtag "^1.0.0" + hasown "^2.0.0" + +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" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +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" + integrity sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA== + dependencies: + es6-iterator "^2.0.3" + es6-symbol "^3.1.3" + next-tick "^1.1.0" + +es6-iterator@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + integrity sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g== + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-promise@^4.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" + integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== + +es6-promisify@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" + integrity sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ== + dependencies: + es6-promise "^4.0.3" + +es6-promisify@^6.0.0: + version "6.1.1" + resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-6.1.1.tgz#46837651b7b06bf6fff893d03f29393668d01621" + integrity sha512-HBL8I3mIki5C1Cc9QjKUenHtnG0A5/xA8Q/AllRcfiwl2CZFXGK7ddBiCoRwAix4i2KxcQfjtIVcrVbB3vbmwg== + +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" + integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== + dependencies: + d "^1.0.1" + ext "^1.1.2" + +esbuild@0.19.4: + version "0.19.4" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.4.tgz#cdf5c4c684956d550bc3c6d0c01dac7fef6c75b1" + integrity sha512-x7jL0tbRRpv4QUyuDMjONtWFciygUxWaUM1kMX2zWxI0X2YWOt7MSA0g4UdeSiHM8fcYVzpQhKYOycZwxTdZkA== + optionalDependencies: + "@esbuild/android-arm" "0.19.4" + "@esbuild/android-arm64" "0.19.4" + "@esbuild/android-x64" "0.19.4" + "@esbuild/darwin-arm64" "0.19.4" + "@esbuild/darwin-x64" "0.19.4" + "@esbuild/freebsd-arm64" "0.19.4" + "@esbuild/freebsd-x64" "0.19.4" + "@esbuild/linux-arm" "0.19.4" + "@esbuild/linux-arm64" "0.19.4" + "@esbuild/linux-ia32" "0.19.4" + "@esbuild/linux-loong64" "0.19.4" + "@esbuild/linux-mips64el" "0.19.4" + "@esbuild/linux-ppc64" "0.19.4" + "@esbuild/linux-riscv64" "0.19.4" + "@esbuild/linux-s390x" "0.19.4" + "@esbuild/linux-x64" "0.19.4" + "@esbuild/netbsd-x64" "0.19.4" + "@esbuild/openbsd-x64" "0.19.4" + "@esbuild/sunos-x64" "0.19.4" + "@esbuild/win32-arm64" "0.19.4" + "@esbuild/win32-ia32" "0.19.4" + "@esbuild/win32-x64" "0.19.4" + +esbuild@0.19.6: + version "0.19.6" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.6.tgz#baa0e8b6b9e655c54ffd57f1772e44677a7931cc" + integrity sha512-Xl7dntjA2OEIvpr9j0DVxxnog2fyTGnyVoQXAMQI6eR3mf9zCQds7VIKUDCotDgE/p4ncTgeRqgX8t5d6oP4Gw== + optionalDependencies: + "@esbuild/android-arm" "0.19.6" + "@esbuild/android-arm64" "0.19.6" + "@esbuild/android-x64" "0.19.6" + "@esbuild/darwin-arm64" "0.19.6" + "@esbuild/darwin-x64" "0.19.6" + "@esbuild/freebsd-arm64" "0.19.6" + "@esbuild/freebsd-x64" "0.19.6" + "@esbuild/linux-arm" "0.19.6" + "@esbuild/linux-arm64" "0.19.6" + "@esbuild/linux-ia32" "0.19.6" + "@esbuild/linux-loong64" "0.19.6" + "@esbuild/linux-mips64el" "0.19.6" + "@esbuild/linux-ppc64" "0.19.6" + "@esbuild/linux-riscv64" "0.19.6" + "@esbuild/linux-s390x" "0.19.6" + "@esbuild/linux-x64" "0.19.6" + "@esbuild/netbsd-x64" "0.19.6" + "@esbuild/openbsd-x64" "0.19.6" + "@esbuild/sunos-x64" "0.19.6" + "@esbuild/win32-arm64" "0.19.6" + "@esbuild/win32-ia32" "0.19.6" + "@esbuild/win32-x64" "0.19.6" + +esbuild@^0.18.10: + version "0.18.20" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.18.20.tgz#4709f5a34801b43b799ab7d6d82f7284a9b7a7a6" + integrity sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA== + optionalDependencies: + "@esbuild/android-arm" "0.18.20" + "@esbuild/android-arm64" "0.18.20" + "@esbuild/android-x64" "0.18.20" + "@esbuild/darwin-arm64" "0.18.20" + "@esbuild/darwin-x64" "0.18.20" + "@esbuild/freebsd-arm64" "0.18.20" + "@esbuild/freebsd-x64" "0.18.20" + "@esbuild/linux-arm" "0.18.20" + "@esbuild/linux-arm64" "0.18.20" + "@esbuild/linux-ia32" "0.18.20" + "@esbuild/linux-loong64" "0.18.20" + "@esbuild/linux-mips64el" "0.18.20" + "@esbuild/linux-ppc64" "0.18.20" + "@esbuild/linux-riscv64" "0.18.20" + "@esbuild/linux-s390x" "0.18.20" + "@esbuild/linux-x64" "0.18.20" + "@esbuild/netbsd-x64" "0.18.20" + "@esbuild/openbsd-x64" "0.18.20" + "@esbuild/sunos-x64" "0.18.20" + "@esbuild/win32-arm64" "0.18.20" + "@esbuild/win32-ia32" "0.18.20" + "@esbuild/win32-x64" "0.18.20" + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-goat@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-4.0.0.tgz#9424820331b510b0666b98f7873fe11ac4aa8081" + integrity sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg== + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + +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" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +escape-string-regexp@5.0.0, escape-string-regexp@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8" + integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== + +escape-string-regexp@^1.0.2, 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.1: + version "1.14.3" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" + integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== + dependencies: + esprima "^4.0.1" + estraverse "^4.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + +escodegen@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.1.0.tgz#ba93bbb7a43986d29d6041f99f5262da773e2e17" + integrity sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w== + dependencies: + esprima "^4.0.1" + estraverse "^5.2.0" + esutils "^2.0.2" + optionalDependencies: + source-map "~0.6.1" + +eslint-config-prettier@9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz#eb25485946dd0c66cd216a46232dc05451518d1f" + integrity sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw== + +eslint-config-prettier@^8.3.0, eslint-config-prettier@^8.5.0: + version "8.10.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz#3a06a662130807e2502fc3ff8b4143d8a0658e11" + integrity sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg== + +eslint-plugin-prettier@^4.0.0: + 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== + dependencies: + prettier-linter-helpers "^1.0.0" + +eslint-plugin-vue@^9.8.0: + version "9.18.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.18.1.tgz#73cf29df7450ce5913296465f8d1dc545344920c" + integrity sha512-7hZFlrEgg9NIzuVik2I9xSnJA5RsmOfueYgsUGUokEDLJ1LHtxO0Pl4duje1BriZ/jDWb+44tcIlC3yi0tdlZg== + dependencies: + "@eslint-community/eslint-utils" "^4.4.0" + natural-compare "^1.4.0" + nth-check "^2.1.1" + postcss-selector-parser "^6.0.13" + semver "^7.5.4" + vue-eslint-parser "^9.3.1" + xml-name-validator "^4.0.0" + +eslint-scope@^5.1.1: + version "5.1.1" + 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" + estraverse "^4.1.1" + +eslint-scope@^7.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" + integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== + dependencies: + esrecurse "^4.3.0" + estraverse "^5.2.0" + +eslint-utils@^2.1.0: + version "2.1.0" + 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, eslint-visitor-keys@^1.3.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@^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" + integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== + +eslint@8.48.0: + version "8.48.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.48.0.tgz#bf9998ba520063907ba7bfe4c480dc8be03c2155" + integrity sha512-sb6DLeIuRXxeM1YljSe1KEx9/YYeZFQWcV8Rq9HfigmdDEugjLEVEa1ozDjL6YDjBpQHPJxJzze+alxi4T3OLg== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.6.1" + "@eslint/eslintrc" "^2.1.2" + "@eslint/js" "8.48.0" + "@humanwhocodes/config-array" "^0.11.10" + "@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" + +eslint@^8.28.0, eslint@^8.31.0: + version "8.54.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.54.0.tgz#588e0dd4388af91a2e8fa37ea64924074c783537" + integrity sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.6.1" + "@eslint/eslintrc" "^2.1.3" + "@eslint/js" "8.54.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" + 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" + +espree@^6.0.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a" + integrity sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw== + dependencies: + acorn "^7.1.1" + acorn-jsx "^5.2.0" + eslint-visitor-keys "^1.1.0" + +espree@^9.3.1, espree@^9.6.0, espree@^9.6.1: + version "9.6.1" + 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@1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-1.2.2.tgz#76a0fd66fcfe154fd292667dc264019750b1657b" + integrity sha512-+JpPZam9w5DuJ3Q67SqsMGtiHKENSMRVoxvArfJZK01/BfLEObtZ6orJa/MtoGNR/rfMgp5837T41PAmTwAv/A== + +esprima@^4.0.0, esprima@^4.0.1, esprima@~4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.4.0, esquery@^1.4.2: + version "1.5.0" + 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.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1, estraverse@^4.2.0: + version "4.3.0" + 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.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +estree-walker@2.0.2, estree-walker@^2.0.1, estree-walker@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" + integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== + +esutils@^2.0.2, esutils@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@1.8.1, etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== + +eth-block-tracker@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/eth-block-tracker/-/eth-block-tracker-3.0.1.tgz#95cd5e763c7293e0b1b2790a2a39ac2ac188a5e1" + 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-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" + integrity sha512-VWEI1+KJfz4Km//dadyvBBoBeSQ0MHTXPvr8UIXiLW6IanxvAV+DmlZAijZwAyggqGUfwQBeHf7tc9wzc1piSw== + dependencies: + idna-uts46-hx "^2.3.1" + js-sha3 "^0.5.7" + +eth-json-rpc-infura@^3.1.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/eth-json-rpc-infura/-/eth-json-rpc-infura-3.2.1.tgz#26702a821067862b72d979c016fd611502c6057f" + 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-middleware@^1.5.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/eth-json-rpc-middleware/-/eth-json-rpc-middleware-1.6.0.tgz#5c9d4c28f745ccb01630f0300ba945f4bef9593f" + 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-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" + 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" + +eth-query@^2.0.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" + integrity sha512-srES0ZcvwkR/wd5OQBRA1bIJMww1skfGS0s8wlwK3/oNP4+wnds60krvu5R1QbpRQjMmpG5OMIWro5s7gvDPsA== + dependencies: + json-rpc-random-id "^1.0.0" + xtend "^4.0.1" + +eth-sig-util@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/eth-sig-util/-/eth-sig-util-3.0.0.tgz#75133b3d7c20a5731af0690c385e184ab942b97e" + integrity sha512-4eFkMOhpGbTxBQ3AMzVf0haUX2uTur7DpWiHzWyTURa28BVJJtOkcb9Ok5TV0YvEPG61DODPW7ZUATbJTslioQ== + 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-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" + integrity sha512-iNZ576iTOGcfllftB73cPB5AN+XUQAT/T8xzsILsghXC1o8gJUqe3RHlcDqagu+biFpYQ61KQrZZJza8eRSYqw== + dependencies: + ethereumjs-abi "git+https://github.com/ethereumjs/ethereumjs-abi.git" + ethereumjs-util "^5.1.1" + +eth-tx-summary@^3.1.2: + version "3.2.4" + resolved "https://registry.yarnpkg.com/eth-tx-summary/-/eth-tx-summary-3.2.4.tgz#e10eb95eb57cdfe549bf29f97f1e4f1db679035c" + 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" + resolved "https://registry.yarnpkg.com/ethashjs/-/ethashjs-0.0.8.tgz#227442f1bdee409a548fb04136e24c874f3aa6f9" + integrity sha512-/MSbf/r2/Ld8o0l15AymjOTlPqpN8Cr4ByUEA9GtR4x0yAh3TdtDzEg29zMjXCNPI7u6E5fOQdj/Cf9Tc7oVNw== + dependencies: + async "^2.1.2" + buffer-xor "^2.0.1" + ethereumjs-util "^7.0.2" + miller-rabin "^4.0.0" + +ethereum-blockies-base64@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/ethereum-blockies-base64/-/ethereum-blockies-base64-1.0.2.tgz#4aebca52142bf4d16a3144e6e2b59303e39ed2b3" + integrity sha512-Vg2HTm7slcWNKaRhCUl/L3b4KrB8ohQXdd5Pu3OI897EcR6tVRvUqdTwAyx+dnmoDzj8e2bwBLDQ50ByFmcz6w== + dependencies: + pnglib "0.0.1" + +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: + 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" + integrity sha512-EoltVQTRNg2Uy4o84qpa2aXymXDJhxm7eos/ACOg0DG4baAbMjhbdAEsx9GeE8sC3XCxnYvrrzZDH8D8MtA2iQ== + +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" + 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" + +ethereum-cryptography@^1.0.3, ethereum-cryptography@^1.1.2: + version "1.2.0" + 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" + "@noble/secp256k1" "1.7.1" + "@scure/bip32" "1.1.5" + "@scure/bip39" "1.1.1" + +ethereum-cryptography@^2.0.0, ethereum-cryptography@^2.1.2: + version "2.1.2" + 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" + "@noble/hashes" "1.3.1" + "@scure/bip32" "1.3.1" + "@scure/bip39" "1.2.1" + +ethereum-waffle@^3.4.4: + version "3.4.4" + resolved "https://registry.yarnpkg.com/ethereum-waffle/-/ethereum-waffle-3.4.4.tgz#1378b72040697857b7f5e8f473ca8f97a37b5840" + integrity sha512-PA9+jCjw4WC3Oc5ocSMBj5sXvueWQeAbvCA+hUlb6oFgwwKyq5ka3bWQ7QZcjzIX+TdFkxP4IbFmoY2D8Dkj9Q== + dependencies: + "@ethereum-waffle/chai" "^3.4.4" + "@ethereum-waffle/compiler" "^3.4.4" + "@ethereum-waffle/mock-contract" "^3.4.4" + "@ethereum-waffle/provider" "^3.4.4" + ethers "^5.0.1" + +ethereumjs-abi@0.6.5: + version "0.6.5" + resolved "https://registry.yarnpkg.com/ethereumjs-abi/-/ethereumjs-abi-0.6.5.tgz#5a637ef16ab43473fa72a29ad90871405b3f5241" + integrity sha512-rCjJZ/AE96c/AAZc6O3kaog4FhOsAViaysBxqJNy2+LHP0ttH0zkZ7nXdVHOAyt6lFwLO0nlCwWszysG/ao1+g== + dependencies: + bn.js "^4.10.0" + ethereumjs-util "^4.3.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": + version "0.6.8" + resolved "git+https://github.com/ethereumjs/ethereumjs-abi.git#ee3994657fa7a427238e6ba92a84d0b529bbcde0" + dependencies: + bn.js "^4.11.8" + ethereumjs-util "^6.0.0" + +ethereumjs-account@3.0.0, ethereumjs-account@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ethereumjs-account/-/ethereumjs-account-3.0.0.tgz#728f060c8e0c6e87f1e987f751d3da25422570a9" + integrity sha512-WP6BdscjiiPkQfF9PVfMcwx/rDvfZTjFKY0Uwc09zSQr9JfIVH87dYIJu0gNhBhpmovV4yq295fdllS925fnBA== + dependencies: + ethereumjs-util "^6.0.0" + rlp "^2.2.1" + safe-buffer "^5.1.1" + +ethereumjs-account@^2.0.3: + version "2.0.5" + resolved "https://registry.yarnpkg.com/ethereumjs-account/-/ethereumjs-account-2.0.5.tgz#eeafc62de544cb07b0ee44b10f572c9c49e00a84" + integrity sha512-bgDojnXGjhMwo6eXQC0bY6UK2liSFUSMwwylOmQvZbSl/D7NXQ3+vrGO46ZeOgjGfxXmgIeVNDIiHw7fNZM4VA== + dependencies: + ethereumjs-util "^5.0.0" + rlp "^2.0.0" + safe-buffer "^5.1.1" + +ethereumjs-block@2.2.2, ethereumjs-block@^2.2.2, ethereumjs-block@~2.2.0, ethereumjs-block@~2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz#c7654be7e22df489fda206139ecd63e2e9c04965" + 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-block@^1.2.2, ethereumjs-block@^1.4.1, ethereumjs-block@^1.6.0: + version "1.7.1" + resolved "https://registry.yarnpkg.com/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz#78b88e6cc56de29a6b4884ee75379b6860333c3f" + 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-blockchain@^4.0.3: + version "4.0.4" + resolved "https://registry.yarnpkg.com/ethereumjs-blockchain/-/ethereumjs-blockchain-4.0.4.tgz#30f2228dc35f6dcf94423692a6902604ae34960f" + integrity sha512-zCxaRMUOzzjvX78DTGiKjA+4h2/sF0OYL1QuPux0DHpyq8XiNoF5GYHtb++GUxVlMsMfZV7AVyzbtgcRdIcEPQ== + 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.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/ethereumjs-common/-/ethereumjs-common-1.5.0.tgz#d3e82fc7c47c0cef95047f431a99485abc9bb1cd" + integrity sha512-SZOjgK1356hIY7MRj3/ma5qtfr/4B5BL+G4rP/XSMYr2z1H5el4RX5GReYCKmQmYI/nSBmRnwrZ17IfHuG0viQ== + +ethereumjs-common@^1.1.0, ethereumjs-common@^1.3.2, ethereumjs-common@^1.5.0: + version "1.5.2" + resolved "https://registry.yarnpkg.com/ethereumjs-common/-/ethereumjs-common-1.5.2.tgz#2065dbe9214e850f2e955a80e650cb6999066979" + integrity sha512-hTfZjwGX52GS2jcVO6E2sx4YuFnf0Fhp5ylo4pEPhEffNln7vS59Hr5sLnp3/QCazFLluuBZ+FZ6J5HTp0EqCA== + +ethereumjs-tx@2.1.2, ethereumjs-tx@^2.1.1, ethereumjs-tx@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz#5dfe7688bf177b45c9a23f86cf9104d47ea35fed" + integrity sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw== + dependencies: + ethereumjs-common "^1.5.0" + ethereumjs-util "^6.0.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.yarnpkg.com/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz#88323a2d875b10549b8347e09f4862b546f3d89a" + integrity sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA== + dependencies: + ethereum-common "^0.0.18" + ethereumjs-util "^5.0.0" + +ethereumjs-util@6.2.1, 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.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz#fcb4e4dd5ceacb9d2305426ab1a5cd93e3163b69" + 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@^4.3.0: + version "4.5.1" + resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-4.5.1.tgz#f4bf9b3b515a484e3cc8781d61d9d980f7c83bd0" + integrity sha512-WrckOZ7uBnei4+AKimpuF1B3Fv25OmoRgmYCpGsP7u8PFxXAmAgiJSYT2kRWnt6fVIlKaQlZvuwXp7PIrmn3/w== + dependencies: + bn.js "^4.8.0" + create-hash "^1.1.2" + elliptic "^6.5.2" + ethereum-cryptography "^0.1.3" + rlp "^2.0.0" + +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.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz#a833f0e5fca7e5b361384dc76301a721f537bf65" + 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@^7.0.2, ethereumjs-util@^7.1.0, ethereumjs-util@^7.1.5: + version "7.1.5" + 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" + bn.js "^5.1.2" + create-hash "^1.1.2" + ethereum-cryptography "^0.1.3" + rlp "^2.2.4" + +ethereumjs-vm@4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/ethereumjs-vm/-/ethereumjs-vm-4.2.0.tgz#e885e861424e373dbc556278f7259ff3fca5edab" + integrity sha512-X6qqZbsY33p5FTuZqCnQ4+lo957iUJMM6Mpa6bL4UW0dxM6WmDSHuI4j/zOp1E2TDKImBGCJA9QPfc08PaNubA== + 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-vm@^2.1.0, ethereumjs-vm@^2.3.4, ethereumjs-vm@^2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz#76243ed8de031b408793ac33907fb3407fe400c6" + 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" + +ethereumjs-wallet@0.6.5: + version "0.6.5" + resolved "https://registry.yarnpkg.com/ethereumjs-wallet/-/ethereumjs-wallet-0.6.5.tgz#685e9091645cee230ad125c007658833991ed474" + integrity sha512-MDwjwB9VQVnpp/Dc1XzA6J1a3wgHQ4hSvA1uWNatdpOrtCbPVuQSKSyRnjLvS0a+KKMw2pvQ9Ybqpb3+eW8oNA== + 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@^5.0.1, ethers@^5.0.2, ethers@^5.0.3, ethers@^5.4.7, ethers@^5.5.1, ethers@^5.5.2, ethers@^5.7.1, ethers@^5.7.2: + version "5.7.2" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.2.tgz#3a7deeabbb8c030d4126b24f84e525466145872e" + integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg== + 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" + +ethjs-unit@0.1.6: + version "0.1.6" + 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.6, ethjs-util@^0.1.3, ethjs-util@^0.1.6: + version "0.1.6" + 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" + strip-hex-prefix "1.0.0" + +event-target-shim@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" + integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== + +eventemitter3@4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.4.tgz#b5463ace635a083d018bdc7c917b4c5f10a85384" + integrity sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ== + +eventemitter3@^4.0.0, eventemitter3@^4.0.4: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + +events@^3.0.0, events@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + 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" + safe-buffer "^5.1.1" + +execa@5.1.1, execa@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + +execa@^3.0.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-3.4.0.tgz#c08ed4550ef65d858fac269ffc8572446f37eb89" + integrity sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + p-finally "^2.0.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + +execa@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-6.1.0.tgz#cea16dee211ff011246556388effa0818394fb20" + integrity sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.1" + human-signals "^3.0.1" + is-stream "^3.0.0" + merge-stream "^2.0.0" + npm-run-path "^5.1.0" + onetime "^6.0.0" + signal-exit "^3.0.7" + strip-final-newline "^3.0.0" + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + integrity sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA== + 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-logging@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/express-logging/-/express-logging-1.1.1.tgz#62839618cbab5bb3610f1a1c1485352fe9d26c2a" + integrity sha512-1KboYwxxCG5kwkJHR5LjFDTD1Mgl8n4PIMcCuhhd/1OqaxlC68P3QKbvvAbZVUtVgtlxEdTgSUwf6yxwzRCuuA== + dependencies: + on-headers "^1.0.0" + +express@4.18.2, express@^4.14.0: + version "4.18.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" + 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" + +ext-list@^2.0.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/ext-list/-/ext-list-2.2.2.tgz#0b98e64ed82f5acf0f2931babf69212ef52ddd37" + integrity sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA== + dependencies: + mime-db "^1.28.0" + +ext-name@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ext-name/-/ext-name-5.0.0.tgz#70781981d183ee15d13993c8822045c506c8f0a6" + integrity sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ== + dependencies: + ext-list "^2.0.0" + sort-keys-length "^1.0.0" + +ext@^1.1.2: + version "1.7.0" + resolved "https://registry.yarnpkg.com/ext/-/ext-1.7.0.tgz#0ea4383c0103d60e70be99e9a7f11027a33c4f5f" + integrity sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw== + dependencies: + type "^2.7.2" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug== + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + integrity sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q== + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extend@^3.0.2, extend@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +external-editor@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== + 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" + +extract-files@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/extract-files/-/extract-files-11.0.0.tgz#b72d428712f787eef1f5193aff8ab5351ca8469a" + integrity sha512-FuoE1qtbJ4bBVvv94CC7s0oTnKUGvQs+Rjf1L2SJFfS+HTVVjhPFtehPdQ0JiGPqVNfSSZvL5yzHHQq2Z4WNhQ== + +extract-files@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/extract-files/-/extract-files-9.0.0.tgz#8a7744f2437f81f5ed3250ed9f1550de902fe54a" + integrity sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ== + +extract-zip@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" + integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== + dependencies: + debug "^4.1.1" + get-stream "^5.1.0" + yauzl "^2.10.0" + optionalDependencies: + "@types/yauzl" "^2.9.1" + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + 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== + +eyes@0.1.x, eyes@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0" + integrity sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ== + +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" + integrity sha512-Tgq37lkc9pUIgIKw5uitNUKcgcYL3R6JvXtKQbOf/ZSavXbidsksgp/pAY6p//uhw0I4yoMsvTSovvVIsk/qxA== + dependencies: + checkpoint-store "^1.1.0" + +fast-content-type-parse@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fast-content-type-parse/-/fast-content-type-parse-1.1.0.tgz#4087162bf5af3294d4726ff29b334f72e3a1092c" + integrity sha512-fBHHqSTFLVnR61C+gltJuE5GkVQMV0S2nqUO8TJ+5Z3qAKG8vAx4FKai1s5jq/inV1+sREynIWSuQ6HgoSXpDQ== + +fast-decode-uri-component@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz#46f8b6c22b30ff7a81357d4f59abfae938202543" + integrity sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg== + +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" + 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" + integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== + +fast-equals@^3.0.1: + version "3.0.3" + resolved "https://registry.yarnpkg.com/fast-equals/-/fast-equals-3.0.3.tgz#8e6cb4e51ca1018d87dd41982ef92758b3e4197f" + integrity sha512-NCe8qxnZFARSHGztGMZOO/PC1qa5MIFB5Hp66WdzbCRAz8U8US3bx1UTgLS49efBQPcUtO9gf5oVEY8o7y/7Kg== + +fast-fifo@^1.0.0, fast-fifo@^1.1.0, fast-fifo@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/fast-fifo/-/fast-fifo-1.3.2.tgz#286e31de96eb96d38a97899815740ba2a4f3640c" + integrity sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ== + +fast-glob@^3.2.12, fast-glob@^3.2.5, fast-glob@^3.2.9, fast-glob@^3.3.0: + 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" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +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" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-json-stringify@^5.7.0: + version "5.9.1" + resolved "https://registry.yarnpkg.com/fast-json-stringify/-/fast-json-stringify-5.9.1.tgz#c304b9dd4e5c84a62510246b7ba9f99ac4656ea5" + integrity sha512-NMrf+uU9UJnTzfxaumMDXK1NWqtPCfGoM9DYIE+ESlaTQqjlANFBy0VAbsm6FB88Mx0nceyi18zTo5kIEUlzxg== + dependencies: + "@fastify/deepmerge" "^1.0.0" + ajv "^8.10.0" + ajv-formats "^2.1.1" + fast-deep-equal "^3.1.3" + fast-uri "^2.1.0" + json-schema-ref-resolver "^1.0.1" + rfdc "^1.2.0" + +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" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + +fast-querystring@^1.0.0, fast-querystring@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/fast-querystring/-/fast-querystring-1.1.2.tgz#a6d24937b4fc6f791b4ee31dcb6f53aeafb89f53" + integrity sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg== + dependencies: + fast-decode-uri-component "^1.0.1" + +fast-redact@^3.0.0, fast-redact@^3.1.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-3.3.0.tgz#7c83ce3a7be4898241a46560d51de10f653f7634" + integrity sha512-6T5V1QK1u4oF+ATxs1lWUmlEk6P2T9HqJG3e2DnHOdVgZy2rFJBoEnrIedcTXlkAHU/zKC+7KETJ+KGGKwxgMQ== + +fast-safe-stringify@^2.0.7, fast-safe-stringify@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" + integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== + +fast-text-encoding@^1.0.0: + version "1.0.6" + resolved "https://registry.yarnpkg.com/fast-text-encoding/-/fast-text-encoding-1.0.6.tgz#0aa25f7f638222e3396d72bf936afcf1d42d6867" + integrity sha512-VhXlQgj9ioXCqGstD37E/HBeqEGV/qOD/kmbVG8h5xKBYvM1L3lR1Zn4555cQ8GkYbJa8aJSipLPndE1k6zK2w== + +fast-uri@^2.0.0, fast-uri@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-2.3.0.tgz#bdae493942483d299e7285dcb4627767d42e2793" + integrity sha512-eel5UKGn369gGEWOqBShmFJWfq/xSJvsgDzgLYC845GneayWvXBf0lJCBn5qTABfewy1ZDPoaR5OZCP+kssfuw== + +fast-url-parser@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/fast-url-parser/-/fast-url-parser-1.1.3.tgz#f4af3ea9f34d8a271cf58ad2b3759f431f0b318d" + integrity sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ== + dependencies: + punycode "^1.3.2" + +fast-write-atomic@~0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fast-write-atomic/-/fast-write-atomic-0.2.1.tgz#7ee8ef0ce3c1f531043c09ae8e5143361ab17ede" + integrity sha512-WvJe06IfNYlr+6cO3uQkdKdy3Cb1LlCJSF8zRs2eT8yuhdbSlR9nIt+TgQ92RUxiRrQm+/S7RARnMfCs5iuAjw== + +fastest-levenshtein@1.0.16: + version "1.0.16" + resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5" + integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== + +fastfile@0.0.18: + version "0.0.18" + resolved "https://registry.yarnpkg.com/fastfile/-/fastfile-0.0.18.tgz#2b69bbbfd2fcccc9bc8099c27de1379b89756a4b" + integrity sha512-q03PTKc+wptis4WmuFOwPNQx2p5myFUrl/dMgRlW9mymc1Egyc14JPHgiGnWK+sJ0+dBl2Vwtfh5GfSQltYOpw== + +fastfile@0.0.19: + version "0.0.19" + resolved "https://registry.yarnpkg.com/fastfile/-/fastfile-0.0.19.tgz#02cef9ade123b0a74adb794f4a1abcfa5719fd46" + integrity sha512-tz9nWR5KYb6eR2odFQ7oxqEkx8F3YQZ6NBJoJR92YEG3DqYOqyxMck8PKvTVNKx3uwvOqGnLXNScnqpdHRdHGQ== + +fastfile@0.0.20: + version "0.0.20" + resolved "https://registry.yarnpkg.com/fastfile/-/fastfile-0.0.20.tgz#794a143d58cfda2e24c298e5ef619c748c8a1879" + integrity sha512-r5ZDbgImvVWCP0lA/cGNgQcZqR+aYdFx3u+CtJqUE510pBUVGMn4ulL/iRTI4tACTYsNJ736uzFxEBXesPAktA== + +fastify-plugin@^4.0.0: + version "4.5.1" + resolved "https://registry.yarnpkg.com/fastify-plugin/-/fastify-plugin-4.5.1.tgz#44dc6a3cc2cce0988bc09e13f160120bbd91dbee" + integrity sha512-stRHYGeuqpEZTL1Ef0Ovr2ltazUT9g844X5z/zEBFLG8RYlpDiOCIG+ATvYEp+/zmc7sN29mcIMp8gvYplYPIQ== + +fastify@4.17.0: + version "4.17.0" + resolved "https://registry.yarnpkg.com/fastify/-/fastify-4.17.0.tgz#b2c8245e572edef0b02a167d2d411a3c8a46d01a" + integrity sha512-tzuY1tgWJo2Y6qEKwmLhFvACUmr68Io2pqP/sDKU71KRM6A6R3DrCDqLGqANbeLZcKUfdfY58ut35CGqemcTgg== + dependencies: + "@fastify/ajv-compiler" "^3.5.0" + "@fastify/error" "^3.0.0" + "@fastify/fast-json-stringify-compiler" "^4.3.0" + abstract-logging "^2.0.1" + avvio "^8.2.0" + fast-content-type-parse "^1.0.0" + fast-json-stringify "^5.7.0" + find-my-way "^7.6.0" + light-my-request "^5.6.1" + pino "^8.5.0" + process-warning "^2.0.0" + proxy-addr "^2.0.7" + rfdc "^1.3.0" + secure-json-parse "^2.5.0" + semver "^7.3.7" + tiny-lru "^11.0.1" + +fastq@^1.6.0, fastq@^1.6.1: + version "1.15.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" + integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== + dependencies: + reusify "^1.0.4" + +fb-watchman@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" + integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== + dependencies: + bser "2.1.1" + +fbjs-css-vars@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz#216551136ae02fe255932c3ec8775f18e2c078b8" + integrity sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ== + +fbjs@^3.0.0: + version "3.0.5" + resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-3.0.5.tgz#aa0edb7d5caa6340011790bd9249dbef8a81128d" + integrity sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg== + dependencies: + cross-fetch "^3.1.5" + fbjs-css-vars "^1.0.0" + loose-envify "^1.0.0" + object-assign "^4.1.0" + promise "^7.1.1" + setimmediate "^1.0.5" + ua-parser-js "^1.0.35" + +fd-slicer@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" + integrity sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g== + dependencies: + pend "~1.2.0" + +fdir@^6.0.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.1.1.tgz#316b58145a05223b75c8b371e80bb3bad8f1441e" + integrity sha512-QfKBVg453Dyn3mr0Q0O+Tkr1r79lOTAKSi9f/Ot4+qVEwxWhav2Z+SudrG9vQjM2aYRMQQZ2/Q1zdA8ACM1pDg== + +fecha@^4.2.0: + version "4.2.3" + resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.3.tgz#4d9ccdbc61e8629b259fdca67e65891448d569fd" + integrity sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw== + +fetch-blob@^3.1.2, fetch-blob@^3.1.4: + version "3.2.0" + resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9" + integrity sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ== + dependencies: + node-domexception "^1.0.0" + web-streams-polyfill "^3.0.3" + +fetch-node-website@^7.3.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/fetch-node-website/-/fetch-node-website-7.3.0.tgz#89823c96087935eeb2e80ce0e7a6557d27761bb7" + integrity sha512-/wayUHbdVUWrD72aqRNNrr6+MHnCkumZgNugN0RfiWJpbNJUdAkMk4Z18MGayGZVVqYXR1RWrV+bIFEt5HuBZg== + dependencies: + cli-progress "^3.11.2" + colors-option "^4.4.0" + figures "^5.0.0" + got "^12.3.1" + is-plain-obj "^4.1.0" + +fetch-ponyfill@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/fetch-ponyfill/-/fetch-ponyfill-4.1.0.tgz#ae3ce5f732c645eab87e4ae8793414709b239893" + integrity sha512-knK9sGskIg2T7OnYLdZ2hZXn0CtDrAIBxYQLpmEf0BqfdWnwmM1weccUl5+4EdA44tzNSFAuxITPbXtPehUB3g== + dependencies: + node-fetch "~1.7.1" + +ffiasm@0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/ffiasm/-/ffiasm-0.1.1.tgz#34ca6a00a875b5a926f66fd46e79530194e9c312" + integrity sha512-irMMHiR9JJ7BVBrAhtliUawxVdPYSdyl81taUYJ4C1mJ0iw2ueThE/qtr0J8B83tsIY8HJvh0lg5F+6ClK4xpA== + dependencies: + big-integer "^1.6.48" + ejs "^3.0.1" + yargs "^15.3.1" + +ffiasm@0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/ffiasm/-/ffiasm-0.1.3.tgz#9d636448e31ce676c0e6684102d4d44bcf58c71f" + integrity sha512-/+rZrpKO98W5BSqy2E6vxVaNh63MnRPA+1H7ufmpOrbZjG2pIEPCYbn5g7q2AXaX+75IMKasi4IOFrwPkxJXVg== + dependencies: + big-integer "^1.6.48" + ejs "^3.0.1" + yargs "^15.3.1" + +ffjavascript@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/ffjavascript/-/ffjavascript-0.1.0.tgz#456256c259654cc1ce864c6762b0e76ee1714100" + integrity sha512-dmKlUasSfvUcxBm8nCSKl2x7EFJsXA7OVP8XLFA03T2+6mAc3IiVLC2ambEVOcMOhyhl0vJfVZjM9f9d38D1rw== + dependencies: + big-integer "^1.6.48" + +ffjavascript@0.2.22: + version "0.2.22" + resolved "https://registry.yarnpkg.com/ffjavascript/-/ffjavascript-0.2.22.tgz#101f33db330b0f6a0c10dec22ebf5725618a8a7d" + integrity sha512-EsVqap2Txm17bKW0z/jXCX3M7rQ++nQUAJY8alWDpyhjRj90xjl6GLeVSKZQ8rOFDQ/SFFXcEB8w9X8Boxid+w== + dependencies: + big-integer "^1.6.48" + wasmcurves "0.0.12" + worker-threads "^1.0.0" + +ffjavascript@0.2.34: + version "0.2.34" + resolved "https://registry.yarnpkg.com/ffjavascript/-/ffjavascript-0.2.34.tgz#e0607d1635ad06e8519268af475bc90deac60fbd" + integrity sha512-fq/qfJluC4spiOD1lp5jfckZVnS0o0kI5eKXVLw7UKwIwbNr+NBMBveBVcidSfMizF87T6wb7NBtLSdckQiAnQ== + dependencies: + big-integer "^1.6.48" + mocha "^8.2.1" + wasmcurves "0.0.14" + worker-threads "^1.0.0" + +ffjavascript@0.2.35: + version "0.2.35" + resolved "https://registry.yarnpkg.com/ffjavascript/-/ffjavascript-0.2.35.tgz#9166d95173b1c0a743b455bb03a72b581922a42e" + integrity sha512-xnC51tWbi0ah4SH+02jEfJyO+P+NiZWnxQrLDLtBYY1Dv3QM5ydxzd+gxnLEfWdT8i1bMM5pIh5P25l6fNCaVQ== + dependencies: + big-integer "^1.6.48" + wasmcurves "0.0.14" + web-worker "^1.0.0" + +ffjavascript@0.2.37: + version "0.2.37" + resolved "https://registry.yarnpkg.com/ffjavascript/-/ffjavascript-0.2.37.tgz#13b93c0104013f99d8959e159430d6aa76bd9a6c" + integrity sha512-wWOkQB07d6eKFRMMtryTVsWrMsR4ImdikhEuu6ZcFYaxufJaBKUiQHYxsPzZEScPa+okkHzf1/2YVPU7xUIHMQ== + dependencies: + big-integer "^1.6.48" + wasmcurves "0.0.14" + web-worker "^1.0.0" + +ffjavascript@0.2.56: + version "0.2.56" + resolved "https://registry.yarnpkg.com/ffjavascript/-/ffjavascript-0.2.56.tgz#3509f98fcbd3e44ea93cd23519071b76d6eae433" + integrity sha512-em6G5Lrj7ucIqj4TYEgyoHs/j99Urwwqa4+YxEVY2hggnpRimVj+noX5pZQTxI1pvtiekZI4rG65JBf0xraXrg== + dependencies: + wasmbuilder "0.0.16" + wasmcurves "0.2.0" + web-worker "^1.2.0" + +ffjavascript@0.2.60: + version "0.2.60" + resolved "https://registry.yarnpkg.com/ffjavascript/-/ffjavascript-0.2.60.tgz#4d8ae613d6bf4e98b3cc29ba10c626f5853854cf" + integrity sha512-T/9bnEL5xAZRDbQoEMf+pM9nrhK+C3JyZNmqiWub26EQorW7Jt+jR54gpqDhceA4Nj0YctPQwYnl8xa52/A26A== + dependencies: + wasmbuilder "0.0.16" + wasmcurves "0.2.2" + web-worker "^1.2.0" + +ffjavascript@^0.2.30, ffjavascript@^0.2.38, ffjavascript@^0.2.39, ffjavascript@^0.2.45, ffjavascript@^0.2.48, ffjavascript@^0.2.62: + version "0.2.62" + resolved "https://registry.yarnpkg.com/ffjavascript/-/ffjavascript-0.2.62.tgz#f508dfe662a70181598ec5eb8ce5127eb342f624" + integrity sha512-uJ7MTrdzhX/3f+hxn0XhdXbJCqYZJSBB6y2/ui4t21vKYVjyTMlU80pPXu40ir6qpqbrdzUeKdlOdJ0aFG9UNA== + dependencies: + wasmbuilder "0.0.16" + wasmcurves "0.2.2" + web-worker "^1.2.0" + +ffwasm@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/ffwasm/-/ffwasm-0.0.7.tgz#23bb9a3537ecc87c0f24fcfb3a9ddd0e86855fff" + integrity sha512-17cTLzv7HHAKqZbX8MvHxjSrR0yDdn1sh4TVsTbAvO9e6klhFicnyoVXc/sCuViV/M8g65sCmVrAmoPCZp1YkQ== + dependencies: + big-integer "^1.6.48" + wasmbuilder "0.0.10" + +figures@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" + integrity sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ== + dependencies: + escape-string-regexp "^1.0.5" + object-assign "^4.1.0" + +figures@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" + integrity sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA== + dependencies: + escape-string-regexp "^1.0.5" + +figures@^3.0.0, figures@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" + integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== + dependencies: + escape-string-regexp "^1.0.5" + +figures@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/figures/-/figures-4.0.1.tgz#27b26609907bc888b3e3b0ef5403643f80aa2518" + integrity sha512-rElJwkA/xS04Vfg+CaZodpso7VqBknOYbzi6I76hI4X80RUjkSxO2oAyPmGbuXUppywjqndOrQDl817hDnI++w== + dependencies: + escape-string-regexp "^5.0.0" + is-unicode-supported "^1.2.0" + +figures@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-5.0.0.tgz#126cd055052dea699f8a54e8c9450e6ecfc44d5f" + integrity sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg== + dependencies: + escape-string-regexp "^5.0.0" + is-unicode-supported "^1.2.0" + +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" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + +file-type@^18.5.0: + version "18.7.0" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-18.7.0.tgz#cddb16f184d6b94106cfc4bb56978726b25cb2a2" + integrity sha512-ihHtXRzXEziMrQ56VSgU7wkxh55iNchFkosu7Y9/S+tXHdKyrGjVK0ujbqNnsxzea+78MaLhN6PGmfYSAv1ACw== + dependencies: + readable-web-to-node-stream "^3.0.2" + strtok3 "^7.0.0" + token-types "^5.0.1" + +file-uri-to-path@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== + +filelist@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5" + integrity sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q== + dependencies: + minimatch "^5.0.1" + +filename-reserved-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/filename-reserved-regex/-/filename-reserved-regex-3.0.0.tgz#3d5dd6d4e2d73a3fed2ebc4cd0b3448869a081f7" + integrity sha512-hn4cQfU6GOT/7cFHXBqeBg2TbrMBgdD0kcjLhvSQYYwm3s4B6cjvBfb7nBALJLAXqmU5xajSa7X2NnUud/VCdw== + +filenamify@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/filenamify/-/filenamify-5.1.1.tgz#a1ccc5ae678a5e34f578afcb9b72898264d166d2" + integrity sha512-M45CbrJLGACfrPOkrTp3j2EcO9OBkKUYME0eiqOCa7i2poaklU0jhlIaMlr8ijLorT0uLAzrn3qXOp5684CkfA== + dependencies: + filename-reserved-regex "^3.0.0" + strip-outer "^2.0.0" + trim-repeated "^2.0.0" + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + integrity sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ== + 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.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +filter-obj@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/filter-obj/-/filter-obj-1.1.0.tgz#9b311112bc6c6127a16e016c6c5d7f19e0805c5b" + integrity sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ== + +filter-obj@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/filter-obj/-/filter-obj-3.0.0.tgz#dba2f9e64e921758ed9a51028ca2ed02d4cccbcf" + integrity sha512-oQZM+QmVni8MsYzcq9lgTHD/qeLqaG8XaOPOW7dzuSafVxSUlH1+1ZDefj2OD9f2XsmG5lFl2Euc9NI4jgwFWg== + +filter-obj@^5.0.0, filter-obj@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/filter-obj/-/filter-obj-5.1.0.tgz#5bd89676000a713d7db2e197f660274428e524ed" + integrity sha512-qWeTREPoT7I0bifpPUXtxkZJ1XJzxWtfoWWkdVGqa+eCr3SHW/Ocp89o8vLvbUuQnadybJpjOKu4V+RwO6sGng== + +finalhandler@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" + 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" + +find-my-way@^7.6.0: + version "7.7.0" + resolved "https://registry.yarnpkg.com/find-my-way/-/find-my-way-7.7.0.tgz#d7b51ca6046782bcddd5a8435e99ad057e5a8876" + integrity sha512-+SrHpvQ52Q6W9f3wJoJBbAQULJuNEEQwBvlvYwACDhBTLOTMiQ0HYWh4+vC3OivGP2ENcTI1oKlFA2OepJNjhQ== + dependencies: + fast-deep-equal "^3.1.3" + fast-querystring "^1.0.0" + safe-regex2 "^2.0.0" + +find-replace@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/find-replace/-/find-replace-1.0.3.tgz#b88e7364d2d9c959559f388c66670d6130441fa0" + integrity sha512-KrUnjzDCD9426YnCP56zGYy/eieTnhtK6Vn++j+JJzmlsWWwEkDnsyVF575spT6HJ6Ow9tlbT3TQTDsa+O4UWA== + dependencies: + array-back "^1.0.4" + test-value "^2.1.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@6.3.0, find-up@^6.0.0, find-up@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-6.3.0.tgz#2abab3d3280b2dc7ac10199ef324c4e002c8c790" + integrity sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw== + dependencies: + locate-path "^7.1.0" + path-exists "^5.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" + integrity sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA== + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.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" + 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.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + 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" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +find-yarn-workspace-root@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/find-yarn-workspace-root/-/find-yarn-workspace-root-1.2.1.tgz#40eb8e6e7c2502ddfaa2577c176f221422f860db" + integrity sha512-dVtfb0WuQG+8Ag2uWkbG79hOUzEsRrhBzgfn86g2sJPkzmcpGdghbNTfUKGTxymFrY/tLIodDzLoW9nOJ4FY8Q== + dependencies: + fs-extra "^4.0.3" + micromatch "^3.1.4" + +find-yarn-workspace-root@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz#f47fb8d239c900eb78179aa81b66673eac88f7bd" + integrity sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ== + dependencies: + micromatch "^4.0.2" + +flat-cache@^3.0.4: + 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.9" + keyv "^4.5.3" + rimraf "^3.0.2" + +flat@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" + integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== + +flatted@^3.2.9: + version "3.2.9" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf" + integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== + +floating-vue@^2.0.0-beta.20: + version "2.0.0-beta.24" + resolved "https://registry.yarnpkg.com/floating-vue/-/floating-vue-2.0.0-beta.24.tgz#ad4775c55581f8a3c219cf614d8e24a6ae4846e0" + integrity sha512-URSzP6YXaF4u1oZ9XGL8Sn8puuM7ivp5jkOUrpy5Q1mfo9BfGppJOn+ierTmsSUfJEeHBae8KT7r5DeI3vQIEw== + dependencies: + "@floating-ui/dom" "~1.1.1" + vue-resize "^2.0.0-alpha.1" + +flow-stoplight@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/flow-stoplight/-/flow-stoplight-1.0.0.tgz#4a292c5bcff8b39fa6cc0cb1a853d86f27eeff7b" + integrity sha512-rDjbZUKpN8OYhB0IE/vY/I8UWO/602IIJEU/76Tv4LvYnwHCk0BCsvz4eRr9n+FQcri7L5cyaXOo0+/Kh4HisA== + +flush-write-stream@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-2.0.0.tgz#6f58e776154f5eefacff92a6e5a681c88ac50f7c" + integrity sha512-uXClqPxT4xW0lcdSBheb2ObVU+kuqUk3Jk64EwieirEXZx9XUrVwp/JuBfKAWaM4T5Td/VL7QLDWPXp/MvGm/g== + dependencies: + inherits "^2.0.3" + readable-stream "^3.1.1" + +fn.name@1.x.x: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fn.name/-/fn.name-1.1.0.tgz#26cad8017967aea8731bc42961d04a3d5988accc" + integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw== + +fnv-plus@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/fnv-plus/-/fnv-plus-1.3.1.tgz#c34cb4572565434acb08ba257e4044ce2b006d67" + integrity sha512-Gz1EvfOneuFfk4yG458dJ3TLJ7gV19q3OM/vVvvHf7eT02Hm1DleB4edsia6ahbKgAYxO9gvyQ1ioWZR+a00Yw== + +focus-trap@^7.5.4: + version "7.5.4" + resolved "https://registry.yarnpkg.com/focus-trap/-/focus-trap-7.5.4.tgz#6c4e342fe1dae6add9c2aa332a6e7a0bbd495ba2" + integrity sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w== + dependencies: + tabbable "^6.2.0" + +folder-walker@3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/folder-walker/-/folder-walker-3.2.0.tgz#98e00e59773f43416a6dcf0926d4c9436f65121d" + integrity sha512-VjAQdSLsl6AkpZNyrQJfO7BXLo4chnStqb055bumZMbRUPpVuPN3a4ktsnRCmrFZjtMlYLkyXiR5rAs4WOpC4Q== + dependencies: + from2 "^2.1.0" + +follow-redirects@^1.0.0, follow-redirects@^1.12.1, follow-redirects@^1.14.0, follow-redirects@^1.15.0: + version "1.15.3" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.3.tgz#fe2f3ef2690afce7e82ed0b44db08165b207123a" + integrity sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q== + +for-each@^0.3.3, for-each@~0.3.3: + version "0.3.3" + 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" + +for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ== + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + 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" + integrity sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg== + +form-data-encoder@^2.1.2: + version "2.1.4" + resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-2.1.4.tgz#261ea35d2a70d48d30ec7a9603130fa5515e9cd5" + integrity sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw== + +form-data@^2.2.0: + version "2.5.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.1.tgz#f2cbec57b5e59e23716e128fe44d4e5dd23895f4" + integrity sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +form-data@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" + integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +form-data@^4.0.0: + version "4.0.0" + 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" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +form-data@~2.3.2: + version "2.3.3" + 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" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +formdata-polyfill@^4.0.10: + version "4.0.10" + resolved "https://registry.yarnpkg.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz#24807c31c9d402e002ab3d8c720144ceb8848423" + integrity sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g== + dependencies: + fetch-blob "^3.1.2" + +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +fp-ts@1.19.3: + version "1.19.3" + 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== + +fraction.js@^4.3.6: + version "4.3.7" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7" + integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA== + dependencies: + map-cache "^0.2.2" + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== + +from2-array@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/from2-array/-/from2-array-0.0.4.tgz#eafc16b65f6e2719bcd57fdc1869005ac1332cd6" + integrity sha512-0G0cAp7sYLobH7ALsr835x98PU/YeVF7wlwxdWbCUaea7wsa7lJfKZUAo6p2YZGZ8F94luCuqHZS3JtFER6uPg== + dependencies: + from2 "^2.0.3" + +from2@^2.0.3, from2@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + integrity sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g== + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.0" + +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + +fs-extra@9.1.0, fs-extra@^9.0.0, fs-extra@^9.1.0: + version "9.1.0" + 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" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-extra@^0.30.0: + version "0.30.0" + 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" + jsonfile "^2.1.0" + klaw "^1.0.0" + path-is-absolute "^1.0.0" + rimraf "^2.2.8" + +fs-extra@^4.0.2, fs-extra@^4.0.3: + version "4.0.3" + 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" + 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.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" + integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@^8.1.0: + version "8.1.0" + 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" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-jetpack@^2.2.2: + version "2.4.0" + resolved "https://registry.yarnpkg.com/fs-jetpack/-/fs-jetpack-2.4.0.tgz#6080c4ab464a019d37a404baeb47f32af8835026" + integrity sha512-S/o9Dd7K9A7gicVU32eT8G0kHcmSu0rCVdP79P0MWInKFb8XpTc8Syhoo66k9no+HDshtlh4pUJTws8X+8fdFQ== + dependencies: + minimatch "^3.0.2" + rimraf "^2.6.3" + +fs-minipass@^1.2.7: + version "1.2.7" + 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-minipass@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== + dependencies: + minipass "^3.0.0" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@~2.3.1, fsevents@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + +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.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" + define-properties "^1.2.0" + es-abstract "^1.22.1" + functions-have-names "^1.2.3" + +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" + 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" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + +fuzzy@0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/fuzzy/-/fuzzy-0.1.3.tgz#4c76ec2ff0ac1a36a9dccf9a00df8623078d4ed8" + integrity sha512-/gZffu4ykarLrCiP3Ygsa86UAo1E5vEVlvTrpkKywXSbP9Xhln3oSp9QSV57gEq3JFFpGJ4GZ+5zdEp3FcUh4w== + +ganache-core@^2.13.2, ganache-core@^2.7.0: + version "2.13.2" + resolved "https://registry.yarnpkg.com/ganache-core/-/ganache-core-2.13.2.tgz#27e6fc5417c10e6e76e2e646671869d7665814a3" + 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" + +gauge@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-3.0.2.tgz#03bf4441c044383908bcfa0656ad91803259b395" + integrity sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q== + dependencies: + aproba "^1.0.3 || ^2.0.0" + color-support "^1.1.2" + console-control-strings "^1.0.0" + has-unicode "^2.0.1" + object-assign "^4.1.1" + signal-exit "^3.0.0" + string-width "^4.2.3" + strip-ansi "^6.0.1" + wide-align "^1.1.2" + +gaxios@^4.0.0: + version "4.3.3" + resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-4.3.3.tgz#d44bdefe52d34b6435cc41214fdb160b64abfc22" + integrity sha512-gSaYYIO1Y3wUtdfHmjDUZ8LWaxJQpiavzbF5Kq53akSzvmVg0RfyOcFDbO1KJ/KCGRFz2qG+lS81F0nkr7cRJA== + dependencies: + abort-controller "^3.0.0" + extend "^3.0.2" + https-proxy-agent "^5.0.0" + is-stream "^2.0.0" + node-fetch "^2.6.7" + +gcp-metadata@^4.2.0: + version "4.3.1" + resolved "https://registry.yarnpkg.com/gcp-metadata/-/gcp-metadata-4.3.1.tgz#fb205fe6a90fef2fd9c85e6ba06e5559ee1eefa9" + integrity sha512-x850LS5N7V1F3UcV7PoupzGsyD6iVwTVvsh3tbXfkctZnBnjW5yu5z1/3k3SehF7TyoTIe78rJs02GMMy+LF+A== + dependencies: + gaxios "^4.0.0" + json-bigint "^1.0.0" + +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-amd-module-type@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/get-amd-module-type/-/get-amd-module-type-5.0.1.tgz#bef38ea3674e1aa1bda9c59c8b0da598582f73f2" + integrity sha512-jb65zDeHyDjFR1loOVk0HQGM5WNwoGB8aLWy3LKCieMKol0/ProHkhO2X1JxojuN10vbz1qNn09MJ7tNp7qMzw== + dependencies: + ast-module-types "^5.0.0" + node-source-walk "^6.0.1" + +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" + 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" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +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, 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.2" + has-proto "^1.0.1" + has-symbols "^1.0.3" + hasown "^2.0.0" + +get-iterator@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/get-iterator/-/get-iterator-1.0.2.tgz#cd747c02b4c084461fac14f48f6b45a80ed25c82" + integrity sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg== + +get-own-enumerable-property-symbols@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" + integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== + +get-package-name@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/get-package-name/-/get-package-name-2.2.0.tgz#34d8438b5aa8b887a7c54cdf09854471cc8836de" + integrity sha512-LmCKVxioe63Fy6KDAQ/mmCSOSSRUE/x4zdrMD+7dU8quF3bGpzvP8mOmq4Dgce3nzU9AgkVDotucNOOg7c27BQ== + +get-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + +get-port-please@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/get-port-please/-/get-port-please-3.1.1.tgz#2556623cddb4801d823c0a6a15eec038abb483be" + integrity sha512-3UBAyM3u4ZBVYDsxOQfJDxEa6XTbpBDrOjp4mf7ExFRt5BKs/QywQQiJsh2B+hxcZLSapWqCRvElUe8DnKcFHA== + +get-port@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/get-port/-/get-port-5.1.1.tgz#0469ed07563479de6efb986baf053dcd7d4e3193" + integrity sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ== + +get-port@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/get-port/-/get-port-3.2.0.tgz#dd7ce7de187c06c8bf353796ac71e099f0980ebc" + integrity sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg== + +get-port@^6.1.2: + version "6.1.2" + resolved "https://registry.yarnpkg.com/get-port/-/get-port-6.1.2.tgz#c1228abb67ba0e17fb346da33b15187833b9c08a" + integrity sha512-BrGGraKm2uPqurfGVj/z97/zv8dPleC6x9JBNRTrDNtCkkRF4rPwrQXFgL7+I+q8QSdU4ntLQX2D7KIxSy8nGw== + +get-stream@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + +get-stream@^5.0.0, get-stream@^5.1.0: + version "5.2.0" + 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.0, get-stream@^6.0.1: + version "6.0.1" + 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.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" + integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + integrity sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA== + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== + dependencies: + assert-plus "^1.0.0" + +gh-release-fetch@4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/gh-release-fetch/-/gh-release-fetch-4.0.3.tgz#258b6f6f247af68228510c89140751f38bd4e7a5" + integrity sha512-TOiP1nwLsH5shG85Yt6v6Kjq5JU/44jXyEpbcfPgmj3C829yeXIlx9nAEwQRaxtRF3SJinn2lz7XUkfG9W/U4g== + dependencies: + "@xhmikosr/downloader" "^13.0.0" + node-fetch "^3.3.1" + semver "^7.5.3" + +git-repo-info@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/git-repo-info/-/git-repo-info-2.1.1.tgz#220ffed8cbae74ef8a80e3052f2ccb5179aed058" + integrity sha512-8aCohiDo4jwjOwma4FmYFd3i97urZulL8XL24nIPxuE+GZnfsAyy/g2Shqx6OjUiFKUXZM+Yy+KHnOmmA3FVcg== + +gitconfiglocal@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/gitconfiglocal/-/gitconfiglocal-2.1.0.tgz#07c28685c55cc5338b27b5acbcfe34aeb92e43d1" + integrity sha512-qoerOEliJn3z+Zyn1HW2F6eoYJqKwS6MgC9cztTLUB/xLWX8gD/6T60pKn4+t/d6tP7JlybI7Z3z+I572CR/Vg== + dependencies: + ini "^1.3.2" + +glob-parent@^5.1.2, glob-parent@~5.1.0, glob-parent@~5.1.2: + version "5.1.2" + 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.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.6: + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + 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@9.3.4: + version "9.3.4" + resolved "https://registry.yarnpkg.com/glob/-/glob-9.3.4.tgz#e75dee24891a80c25cc7ee1dd327e126b98679af" + integrity sha512-qaSc49hojMOv1EPM4EuyITjDSgSKI0rthoHnvE81tcOi1SCVndHko7auqxdQ14eiQG2NDBJBE86+2xIrbIvrbA== + dependencies: + fs.realpath "^1.0.0" + minimatch "^8.0.2" + minipass "^4.2.4" + path-scurry "^1.6.1" + +glob@^7.0.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.5, glob@~7.2.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.0, glob@^8.0.1, 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" + +global-cache-dir@^4.3.1: + version "4.4.0" + resolved "https://registry.yarnpkg.com/global-cache-dir/-/global-cache-dir-4.4.0.tgz#8921295d32abe0f7768e96acdf7f40a9874050b7" + integrity sha512-bk0gI6IbbphRjAaCJJn5H+T/CcEck5B3a5KBO2BXSDzjFSV+API17w8GA7YPJ6IXJiasW8M0VsEIig1PCHdfOQ== + dependencies: + cachedir "^2.3.0" + path-exists "^5.0.0" + +global-dirs@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.1.tgz#0c488971f066baceda21447aecb1a8b911d22485" + integrity sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA== + dependencies: + ini "2.0.0" + +global@~4.4.0: + version "4.4.0" + 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.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globals@^13.19.0: + version "13.23.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.23.0.tgz#ef31673c926a0976e1f61dab4dca57e0c0a8af02" + integrity sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA== + dependencies: + type-fest "^0.20.2" + +globals@^9.18.0: + version "9.18.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" + integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== + +globalthis@^1.0.3: + version "1.0.3" + 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@^11.0.3, globby@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + 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" + +globby@^13.0.0, globby@^13.1.1: + version "13.2.2" + resolved "https://registry.yarnpkg.com/globby/-/globby-13.2.2.tgz#63b90b1bf68619c2135475cbd4e71e66aa090592" + integrity sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w== + dependencies: + dir-glob "^3.0.1" + fast-glob "^3.3.0" + ignore "^5.2.4" + merge2 "^1.4.1" + slash "^4.0.0" + +"gluegun@git+https://github.com/edgeandnode/gluegun.git#v4.3.1-pin-colors-dep": + version "4.3.1" + resolved "git+https://github.com/edgeandnode/gluegun.git#b34b9003d7bf556836da41b57ef36eb21570620a" + dependencies: + apisauce "^1.0.1" + app-module-path "^2.2.0" + cli-table3 "~0.5.0" + colors "1.3.3" + cosmiconfig "6.0.0" + cross-spawn "^7.0.0" + ejs "^2.6.1" + enquirer "2.3.4" + execa "^3.0.0" + fs-jetpack "^2.2.2" + lodash.camelcase "^4.3.0" + lodash.kebabcase "^4.1.1" + lodash.lowercase "^4.3.0" + lodash.lowerfirst "^4.3.1" + lodash.pad "^4.5.1" + lodash.padend "^4.6.1" + lodash.padstart "^4.6.1" + lodash.repeat "^4.1.0" + lodash.snakecase "^4.1.1" + lodash.startcase "^4.4.0" + lodash.trim "^4.5.1" + lodash.trimend "^4.5.1" + lodash.trimstart "^4.5.1" + lodash.uppercase "^4.3.0" + lodash.upperfirst "^4.3.1" + ora "^4.0.0" + pluralize "^8.0.0" + ramdasauce "^2.1.0" + semver "^7.0.0" + which "^2.0.0" + yargs-parser "^16.1.0" + +gonzales-pe@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/gonzales-pe/-/gonzales-pe-4.3.0.tgz#fe9dec5f3c557eead09ff868c65826be54d067b3" + integrity sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ== + dependencies: + minimist "^1.2.5" + +google-auth-library@^6.1.3: + version "6.1.6" + resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-6.1.6.tgz#deacdcdb883d9ed6bac78bb5d79a078877fdf572" + integrity sha512-Q+ZjUEvLQj/lrVHF/IQwRo6p3s8Nc44Zk/DALsN+ac3T4HY/g/3rrufkgtl+nZ1TW7DNAw5cTChdVp4apUXVgQ== + dependencies: + arrify "^2.0.0" + base64-js "^1.3.0" + ecdsa-sig-formatter "^1.0.11" + fast-text-encoding "^1.0.0" + gaxios "^4.0.0" + gcp-metadata "^4.2.0" + gtoken "^5.0.4" + jws "^4.0.0" + lru-cache "^6.0.0" + +google-p12-pem@^3.1.3: + version "3.1.4" + resolved "https://registry.yarnpkg.com/google-p12-pem/-/google-p12-pem-3.1.4.tgz#123f7b40da204de4ed1fbf2fd5be12c047fc8b3b" + integrity sha512-HHuHmkLgwjdmVRngf5+gSmpkyaRI6QmOg77J8tkNBHhNEI62sGHyw4/+UkgyZEI7h84NbWprXDJ+sa3xOYFvTg== + dependencies: + node-forge "^1.3.1" + +google-spreadsheet@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/google-spreadsheet/-/google-spreadsheet-3.3.0.tgz#725aecf9ea67ff8b8c45ddaf714f78f3e99db6a1" + integrity sha512-ahmRNh14s1i3phfvbF2mxen1lohWJpUaFWgsU6P6bXu7QrmxMaim1Ys/7BU4W5yucWCzphoIrHMbrbeIR5K9mw== + dependencies: + axios "^0.21.4" + google-auth-library "^6.1.3" + lodash "^4.17.21" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +got@12.1.0: + version "12.1.0" + resolved "https://registry.yarnpkg.com/got/-/got-12.1.0.tgz#099f3815305c682be4fd6b0ee0726d8e4c6b0af4" + 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" + +got@9.6.0: + version "9.6.0" + resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" + integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== + 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" + +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" + +got@^12.0.0, got@^12.1.0, got@^12.3.1, got@^12.6.1: + version "12.6.1" + resolved "https://registry.yarnpkg.com/got/-/got-12.6.1.tgz#8869560d1383353204b5a9435f782df9c091f549" + integrity sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ== + dependencies: + "@sindresorhus/is" "^5.2.0" + "@szmarczak/http-timer" "^5.0.1" + cacheable-lookup "^7.0.0" + cacheable-request "^10.2.8" + decompress-response "^6.0.0" + form-data-encoder "^2.1.2" + get-stream "^6.0.1" + http2-wrapper "^2.1.10" + lowercase-keys "^3.0.0" + p-cancelable "^3.0.0" + responselike "^3.0.0" + +graceful-fs@4.2.10: + version "4.2.10" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== + +graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.10, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: + version "4.2.11" + 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.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== + +graphql-config@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/graphql-config/-/graphql-config-4.5.0.tgz#257c2338950b8dce295a27f75c5f6c39f8f777b2" + integrity sha512-x6D0/cftpLUJ0Ch1e5sj1TZn6Wcxx4oMfmhaG9shM0DKajA9iR+j1z86GSTQ19fShbGvrSSvbIQsHku6aQ6BBw== + dependencies: + "@graphql-tools/graphql-file-loader" "^7.3.7" + "@graphql-tools/json-file-loader" "^7.3.7" + "@graphql-tools/load" "^7.5.5" + "@graphql-tools/merge" "^8.2.6" + "@graphql-tools/url-loader" "^7.9.7" + "@graphql-tools/utils" "^9.0.0" + cosmiconfig "8.0.0" + jiti "1.17.1" + minimatch "4.2.3" + string-env-interpolation "1.0.1" + tslib "^2.4.0" + +graphql-import-node@^0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/graphql-import-node/-/graphql-import-node-0.0.5.tgz#caf76a6cece10858b14f27cce935655398fc1bf0" + integrity sha512-OXbou9fqh9/Lm7vwXT0XoRN9J5+WCYKnbiTalgFDvkQERITRmcfncZs6aVABedd5B85yQU5EULS4a5pnbpuI0Q== + +graphql-request@5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/graphql-request/-/graphql-request-5.1.0.tgz#dbc8feee27d21b993cd5da2d3af67821827b240a" + integrity sha512-0OeRVYigVwIiXhNmqnPDt+JhMzsjinxHE7TVy3Lm6jUzav0guVcL0lfSbi6jVTRAxcbwgyr6yrZioSHxf9gHzw== + dependencies: + "@graphql-typed-document-node/core" "^3.1.1" + cross-fetch "^3.1.5" + extract-files "^9.0.0" + form-data "^3.0.0" + +graphql-request@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/graphql-request/-/graphql-request-6.1.0.tgz#f4eb2107967af3c7a5907eb3131c671eac89be4f" + integrity sha512-p+XPfS4q7aIpKVcgmnZKhMNqhltk20hfXtkaIkTfjjmiKMJ5xrt5c743cL03y/K7y1rg3WrIC49xGiEQ4mxdNw== + dependencies: + "@graphql-typed-document-node/core" "^3.2.0" + cross-fetch "^3.1.5" + +graphql-tag@^2.11.0, graphql-tag@^2.12.6: + version "2.12.6" + resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.12.6.tgz#d441a569c1d2537ef10ca3d1633b48725329b5f1" + integrity sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg== + dependencies: + tslib "^2.1.0" + +graphql-ws@5.12.1: + version "5.12.1" + resolved "https://registry.yarnpkg.com/graphql-ws/-/graphql-ws-5.12.1.tgz#c62d5ac54dbd409cc6520b0b39de374b3d59d0dd" + integrity sha512-umt4f5NnMK46ChM2coO36PTFhHouBrK9stWWBczERguwYrGnPNxJ9dimU6IyOBfOkC6Izhkg4H8+F51W/8CYDg== + +graphql@15.5.0: + version "15.5.0" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.5.0.tgz#39d19494dbe69d1ea719915b578bf920344a69d5" + integrity sha512-OmaM7y0kaK31NKG31q4YbD2beNYa6jBBKtMFT6gLYJljHLJr42IqJ8KX08u3Li/0ifzTU5HjmoOOrwa5BRLeDA== + +graphql@^16.6.0: + version "16.8.1" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.8.1.tgz#1930a965bef1170603702acdb68aedd3f3cf6f07" + integrity sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw== + +growl@1.10.5: + version "1.10.5" + resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" + integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== + +gtoken@^5.0.4: + version "5.3.2" + resolved "https://registry.yarnpkg.com/gtoken/-/gtoken-5.3.2.tgz#deb7dc876abe002178e0515e383382ea9446d58f" + integrity sha512-gkvEKREW7dXWF8NV8pVrKfW7WqReAmjjkMBh6lNCCGOM4ucS0r0YyXXl0r/9Yj8wcW/32ISkfc8h5mPTDbtifQ== + dependencies: + gaxios "^4.0.0" + google-p12-pem "^3.1.3" + jws "^4.0.0" + +h3@^1.8.1, h3@^1.8.2: + version "1.9.0" + resolved "https://registry.yarnpkg.com/h3/-/h3-1.9.0.tgz#c5f512a93026df9837db6f30c9ef51135dd46752" + integrity sha512-+F3ZqrNV/CFXXfZ2lXBINHi+rM4Xw3CDC5z2CDK3NMPocjonKipGLLDSkrqY9DOrioZNPTIdDMWfQKm//3X2DA== + dependencies: + cookie-es "^1.0.0" + defu "^6.1.3" + destr "^2.0.2" + iron-webcrypto "^1.0.0" + radix3 "^1.1.0" + ufo "^1.3.2" + uncrypto "^0.1.3" + unenv "^1.7.4" + +hamt-sharding@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hamt-sharding/-/hamt-sharding-1.0.0.tgz#8c7cccb068cd871d721c21e6f09219e5e66383d1" + integrity sha512-jDk8N1U8qprvSt3KopOrrP46zUogxeZY+znDHP196MLBQKldld0TQFTneT1bxOFDw8vttbAQy1bG7L3/pzYorg== + dependencies: + sparse-array "^1.3.1" + +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" + +hard-rejection@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" + integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== + +hardhat-artifactor@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/hardhat-artifactor/-/hardhat-artifactor-0.2.0.tgz#940c82500653a2623ed89f7dd24dc3bd76de6bb9" + integrity sha512-034c0Ye3PjnPbBz6Adz7bNZ7T4LdPTSkjnzsBxToJKiqU4f4CwowFOqwSS0RqO2t9A7w/aWR49pLwbNzpVuDgQ== + +hardhat-contract-sizer@^2.10.0, hardhat-contract-sizer@^2.6.1: + version "2.10.0" + resolved "https://registry.yarnpkg.com/hardhat-contract-sizer/-/hardhat-contract-sizer-2.10.0.tgz#72646f43bfe50e9a5702c9720c9bc3e77d93a2c9" + integrity sha512-QiinUgBD5MqJZJh1hl1jc9dNnpJg7eE/w4/4GEnrcmZJJTDbVFNe3+/3Ep24XqISSkYxRz36czcPHKHd/a0dwA== + dependencies: + chalk "^4.0.0" + cli-table3 "^0.6.0" + strip-ansi "^6.0.0" + +hardhat@^2.12.6, hardhat@^2.19.1: + version "2.19.1" + resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.19.1.tgz#5e09e8070ecfc6109ba9d3a4a117ec2b0643032a" + integrity sha512-bsWa63g1GB78ZyMN08WLhFElLPA+J+pShuKD1BFO2+88g3l+BL3R07vj9deIi9dMbssxgE714Gof1dBEDGqnCw== + 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" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + 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.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + +has-flag@^3.0.0: + version "3.0.0" + 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.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-own-prop@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-own-prop/-/has-own-prop-2.0.0.tgz#f0f95d58f65804f5d218db32563bb85b8e0417af" + integrity sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ== + +has-property-descriptors@^1.0.0: + 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.2.2" + +has-proto@^1.0.1: + version "1.0.1" + 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.2, has-symbols@^1.0.3: + version "1.0.3" + 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.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" + +has-unicode@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + integrity sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q== + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + integrity sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw== + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + integrity sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ== + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + integrity sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ== + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +has-yarn@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-3.0.0.tgz#c3c21e559730d1d3b57e28af1f30d06fac38147d" + integrity sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA== + +has@~1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.4.tgz#2eb2860e000011dae4f1406a86fe80e530fb2ec6" + integrity sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ== + +hasbin@1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/hasbin/-/hasbin-1.2.3.tgz#78c5926893c80215c2b568ae1fd3fcab7a2696b0" + integrity sha512-CCd8e/w2w28G8DyZvKgiHnQJ/5XXDz6qiUHnthvtag/6T5acUeN5lqq+HMoBqcmgWueWDhiCplrw0Kb1zDACRg== + dependencies: + async "~1.5" + +hash-base@^3.0.0: + version "3.1.0" + 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.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" + +hasha@5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/hasha/-/hasha-5.2.2.tgz#a48477989b3b327aea3c04f53096d816d97522a1" + integrity sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ== + dependencies: + is-stream "^2.0.0" + type-fest "^0.8.0" + +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: + function-bind "^1.1.2" + +hat@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/hat/-/hat-0.0.3.tgz#bb014a9e64b3788aed8005917413d4ff3d502d8a" + integrity sha512-zpImx2GoKXy42fVDSEad2BPKuSQdLcqsCYa48K3zHSzM/ugWuYjLDr8IXxpVuL7uCLHw56eaiLxCRthhOzf5ug== + +he@1.2.0, he@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +header-case@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/header-case/-/header-case-2.0.4.tgz#5a42e63b55177349cf405beb8d775acabb92c063" + integrity sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q== + dependencies: + capital-case "^1.0.4" + tslib "^2.0.3" + +heap@0.2.6: + version "0.2.6" + resolved "https://registry.yarnpkg.com/heap/-/heap-0.2.6.tgz#087e1f10b046932fc8594dd9e6d378afc9d1e5ac" + integrity sha512-MzzWcnfB1e4EG2vHi3dXHoBupmuXNZzx6pY6HldVS55JKKBoq3xOyzfSaZRkJp37HIhEYC78knabHff3zc4dQQ== + +hexer@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/hexer/-/hexer-1.5.0.tgz#b86ce808598e8a9d1892c571f3cedd86fc9f0653" + integrity sha512-dyrPC8KzBzUJ19QTIo1gXNqIISRXQ0NwteW6OeQHRN4ZuZeHkdODfj0zHBdOlHbRY8GqbqK57C9oWSvQZizFsg== + dependencies: + ansi-color "^0.2.1" + minimist "^1.1.0" + process "^0.10.0" + xtend "^4.0.0" + +hey-listen@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/hey-listen/-/hey-listen-1.0.8.tgz#8e59561ff724908de1aa924ed6ecc84a56a9aa68" + integrity sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q== + +hmac-drbg@^1.0.1: + version "1.0.1" + 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" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +home-or-tmp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" + integrity sha512-ycURW7oUxE2sNiPVw1HVEFsW+ecOpJ5zaj7eC0RlwhibhRBod20muUN8qu/gzx956YrLolVvs1MTXwKgC2rVEg== + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.1" + +hoopy@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d" + integrity sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ== + +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" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== + +hosted-git-info@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224" + integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA== + dependencies: + lru-cache "^6.0.0" + +hot-shots@10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/hot-shots/-/hot-shots-10.0.0.tgz#d360f9dd252da78297aca1cb08fd84a8936739c2" + integrity sha512-uy/uGpuJk7yuyiKRfZMBNkF1GAOX5O2ifO9rDCaX9jw8fu6eW9QeWC7WRPDI+O98frW1HQgV3+xwjWsZPECIzQ== + optionalDependencies: + unix-dgram "2.x" + +html-encoding-sniffer@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz#2cb1a8cf0db52414776e5b2a7a04d5dd98158de9" + integrity sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA== + dependencies: + whatwg-encoding "^2.0.0" + +http-basic@^8.1.1: + version "8.1.3" + 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" + concat-stream "^1.6.2" + http-response-object "^3.0.1" + parse-cache-control "^1.0.1" + +http-cache-semantics@^4.0.0, http-cache-semantics@^4.1.1: + version "4.1.1" + 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.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" + 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" + +http-errors@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.1.tgz#7c3f28577cbc8a207388455dbd62295ed07bd68c" + integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.1" + +http-https@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/http-https/-/http-https-1.0.0.tgz#2f908dd5f1db4068c058cd6e6d4ce392c913389b" + integrity sha512-o0PWwVCSp3O0wS6FvNr6xfBCHgt0m1tvPLFOCc2iFDKTRAXhB7m8klDf7ErowFH8POa6dVdGatKU5I1YYwzUyg== + +http-proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43" + integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w== + dependencies: + "@tootallnate/once" "2" + agent-base "6" + debug "4" + +http-proxy-agent@^6.0.0: + version "6.1.1" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-6.1.1.tgz#dc04f1a84e09511740cfbd984a56f86cc42e4277" + integrity sha512-JRCz+4Whs6yrrIoIlrH+ZTmhrRwtMnmOHsHn8GFEn9O2sVfSE+DAZ3oyyGIKF8tjJEeSJmP89j7aTjVsSqsU0g== + dependencies: + agent-base "^7.1.0" + debug "^4.3.4" + +http-proxy-middleware@2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz#e1a4dd6979572c7ab5a4e4b55095d1f32a74963f" + integrity sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw== + dependencies: + "@types/http-proxy" "^1.17.8" + http-proxy "^1.18.1" + is-glob "^4.0.1" + is-plain-obj "^3.0.0" + micromatch "^4.0.2" + +http-proxy@1.18.1, http-proxy@^1.18.1: + version "1.18.1" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" + integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== + dependencies: + eventemitter3 "^4.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" + +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" + integrity sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA== + dependencies: + "@types/node" "^10.0.3" + +http-shutdown@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/http-shutdown/-/http-shutdown-1.2.2.tgz#41bc78fc767637c4c95179bc492f312c0ae64c5f" + integrity sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw== + +http-signature@~1.2.0: + version "1.2.0" + 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" + jsprim "^1.2.2" + sshpk "^1.7.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" + 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.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-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" + integrity sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg== + +https-proxy-agent@5.0.1, https-proxy-agent@^5.0.0, https-proxy-agent@^5.0.1: + version "5.0.1" + 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" + debug "4" + +https-proxy-agent@^6.0.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-6.2.1.tgz#0965ab47371b3e531cf6794d1eb148710a992ba7" + integrity sha512-ONsE3+yfZF2caH5+bJlcddtWqNI3Gvs5A38+ngvljxaBiRXRswym2c7yf8UAeFpRFKjFNHIFEHqR/OLAWJzyiA== + dependencies: + agent-base "^7.0.2" + debug "4" + +human-signals@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" + integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== + +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + +human-signals@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-3.0.1.tgz#c740920859dafa50e5a3222da9d3bf4bb0e5eef5" + integrity sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ== + +humanize-duration@^3.27.3: + version "3.31.0" + resolved "https://registry.yarnpkg.com/humanize-duration/-/humanize-duration-3.31.0.tgz#a0384d22555024cd17e6e9f8561540d37756bf4c" + integrity sha512-fRrehgBG26NNZysRlTq1S+HPtDpp3u+Jzdc/d5A4cEzOD86YLAkDaJyJg8krSdCi7CJ+s7ht3fwRj8Dl+Btd0w== + +husky@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/husky/-/husky-6.0.0.tgz#810f11869adf51604c32ea577edbc377d7f9319e" + integrity sha512-SQS2gDTB7tBN486QSoKPKQItZw97BMOd+Kdb6ghfpBc0yXyzrddI0oDV5MkDAbuB4X2mO3/nj60TRMcYxwzZeQ== + +hyperlinker@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hyperlinker/-/hyperlinker-1.0.0.tgz#23dc9e38a206b208ee49bc2d6c8ef47027df0c0e" + integrity sha512-Ty8UblRWFEcfSuIaajM34LdPXIhbs1ajEX/BBPv24J+enSVaEVY63xQ6lTO9VRYS5LAoghIG0IDJ+p+IPzKUQQ== + +iconv-lite@0.4.24, iconv-lite@^0.4.24: + version "0.4.24" + 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" + +iconv-lite@0.6.3, iconv-lite@^0.6.2: + version "0.6.3" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +idb-keyval@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/idb-keyval/-/idb-keyval-6.2.1.tgz#94516d625346d16f56f3b33855da11bfded2db33" + integrity sha512-8Sb3veuYCyrZL+VBt9LJfZjLUPWVvqn8tG28VqYNFCo43KHcKuq+b4EiXGeuaLAQWL2YmyDgMp2aSpH9JHsEQg== + +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" + 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" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +ignore@^5.2.0, ignore@^5.2.4: + 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.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.yarnpkg.com/immediate/-/immediate-3.2.3.tgz#d140fa8f614659bd6541233097ddaac25cdd991c" + integrity sha512-RrGCXRm/fRVqMIhqXrGEX9rRADavPiDFSoMb/k64i9XMk8uH4r/Omi5Ctierj6XzNecwDbO4WuFbDD1zmpl3Tg== + +immutable@4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.2.1.tgz#8a4025691018c560a40c67e43d698f816edc44d4" + integrity sha512-7WYV7Q5BTs0nlQm7tl92rDYYoyELLKHoDMBKhrxEoiV4mrfVdRz8hzPiYOzH7yWjzoVEamxRuAqhxL2PLRwZYQ== + +immutable@^4.0.0, immutable@^4.0.0-rc.12: + version "4.3.4" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.4.tgz#2e07b33837b4bb7662f288c244d1ced1ef65a78f" + integrity sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA== + +immutable@~3.7.6: + version "3.7.6" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.7.6.tgz#13b4d3cb12befa15482a26fe1b2ebae640071e4b" + integrity sha512-AizQPcaofEtO11RZhPPHBOJRdo/20MKQF9mBLnVkBoyHi1/zXK8fzVdnEpSV9gxqtnh6Qomfp3F0xT5qP/vThw== + +import-fresh@^3.1.0, 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" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-from@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/import-from/-/import-from-4.0.0.tgz#2710b8d66817d232e16f4166e319248d3d5492e2" + integrity sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ== + +import-lazy@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-4.0.0.tgz#e8eb627483a0a43da3c03f3e35548be5cb0cc153" + integrity sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw== + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +indent-string@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" + integrity sha512-BYqTHXTGUIvg7t1r4sJNKcbDZkL92nkXA8YtRpbjFHRHGDL/NtUeiBJMeE60kIFN/Mg8ESaWQvftaYMGJzQZCQ== + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +indent-string@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-5.0.0.tgz#4fd2980fccaf8622d14c64d694f4cf33c81951a5" + integrity sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg== + +inflight@^1.0.4: + version "1.0.6" + 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, 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: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +ini@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" + integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== + +ini@^1.3.2, ini@^1.3.4, ini@~1.3.0: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +inquirer-autocomplete-prompt@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/inquirer-autocomplete-prompt/-/inquirer-autocomplete-prompt-1.4.0.tgz#e767592f747e3d5bb6336fe71fb4094352e4c317" + integrity sha512-qHgHyJmbULt4hI+kCmwX92MnSxDs/Yhdt4wPA30qnoa01OF6uTXV8yvH4hKXgdaTNmkZ9D01MHjqKYEuJN+ONw== + dependencies: + ansi-escapes "^4.3.1" + chalk "^4.0.0" + figures "^3.2.0" + run-async "^2.4.0" + rxjs "^6.6.2" + +inquirer@6.5.2, inquirer@^6.0.0: + version "6.5.2" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" + integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ== + dependencies: + ansi-escapes "^3.2.0" + chalk "^2.4.2" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^3.0.3" + figures "^2.0.0" + lodash "^4.17.12" + mute-stream "0.0.7" + run-async "^2.2.0" + rxjs "^6.4.0" + string-width "^2.1.0" + strip-ansi "^5.1.0" + through "^2.3.6" + +inquirer@^8.0.0: + version "8.2.6" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.6.tgz#733b74888195d8d400a67ac332011b5fae5ea562" + integrity sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg== + dependencies: + ansi-escapes "^4.2.1" + chalk "^4.1.1" + cli-cursor "^3.1.0" + cli-width "^3.0.0" + external-editor "^3.0.3" + figures "^3.0.0" + lodash "^4.17.21" + mute-stream "0.0.8" + ora "^5.4.1" + run-async "^2.4.0" + rxjs "^7.5.5" + string-width "^4.1.0" + strip-ansi "^6.0.0" + through "^2.3.6" + wrap-ansi "^6.0.1" + +inspect-with-kind@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/inspect-with-kind/-/inspect-with-kind-1.0.5.tgz#fce151d4ce89722c82ca8e9860bb96f9167c316c" + integrity sha512-MAQUJuIo7Xqk8EVNP+6d3CKq9c80hi4tjIbIAT6lmGW9W6WzlHiu9PS8uSuUYU+Do+j1baiFp3H25XEVxDIG2g== + dependencies: + kind-of "^6.0.2" + +interface-datastore@^0.8.0, interface-datastore@~0.8.0: + version "0.8.3" + resolved "https://registry.yarnpkg.com/interface-datastore/-/interface-datastore-0.8.3.tgz#1b948d9f8231edbaaec763a75a339e70e5f48883" + integrity sha512-0boeaQbqRUV+7edgdkDDNl8/m0bzFbBEfM3tC0Prro2ZE7N9dtcIDh/cW812P/22Gjhlj1J7KIn0mPzbO4HjPQ== + dependencies: + buffer "^5.5.0" + class-is "^1.1.0" + err-code "^2.0.0" + ipfs-utils "^1.2.3" + iso-random-stream "^1.1.1" + nanoid "^3.0.2" + +interface-datastore@^6.0.2: + version "6.1.1" + resolved "https://registry.yarnpkg.com/interface-datastore/-/interface-datastore-6.1.1.tgz#5150a00de2e7513eaadba58bcafd059cb50004c1" + integrity sha512-AmCS+9CT34pp2u0QQVXjKztkuq3y5T+BIciuiHDDtDZucZD8VudosnSdUyXJV6IsRkN5jc4RFDhCk1O6Q3Gxjg== + dependencies: + interface-store "^2.0.2" + nanoid "^3.0.2" + uint8arrays "^3.0.0" + +interface-datastore@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/interface-datastore/-/interface-datastore-0.7.0.tgz#3ab43d21089c03ac7d65651ed1e7e4d81397f4f4" + integrity sha512-TfwzBe7iInnakxjWDQn8GQHRDSgmVXRylBo9Z6ONjtaIXB1aJFYpvW1mt+Kbnql/xpTxD2LsQKRBS9+EiTVmhA== + dependencies: + class-is "^1.1.0" + err-code "^1.1.2" + uuid "^3.2.2" + +interface-store@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/interface-store/-/interface-store-2.0.2.tgz#83175fd2b0c501585ed96db54bb8ba9d55fce34c" + integrity sha512-rScRlhDcz6k199EkHqT8NpM87ebN89ICOzILoBHgaG36/WX50N32BnU/kpZgCGPLhARRAWUUX5/cyaIjt7Kipg== + +internal-slot@^1.0.5: + 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.2" + hasown "^2.0.0" + side-channel "^1.0.4" + +interpret@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" + integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== + +invariant@^2.2.2, invariant@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + dependencies: + loose-envify "^1.0.0" + +invert-kv@^1.0.0: + version "1.0.0" + 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.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" + +ioredis@^5.3.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-5.3.2.tgz#9139f596f62fc9c72d873353ac5395bcf05709f7" + integrity sha512-1DKMMzlIHM02eBBVOFQ1+AolGjs6+xEcM4PDL7NqOS6szq7H9jSaEkIUH6/a5Hl241LzW6JLSiAbNvTQjUupUA== + dependencies: + "@ioredis/commands" "^1.1.1" + cluster-key-slot "^1.1.0" + debug "^4.3.4" + denque "^2.1.0" + lodash.defaults "^4.2.0" + lodash.isarguments "^3.1.0" + redis-errors "^1.2.0" + redis-parser "^3.0.0" + standard-as-callback "^2.1.0" + +ip-regex@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-4.3.0.tgz#687275ab0f57fa76978ff8f4dddc8a23d5990db5" + integrity sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q== + +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +ipfs-block-service@^0.16.0: + version "0.16.0" + resolved "https://registry.yarnpkg.com/ipfs-block-service/-/ipfs-block-service-0.16.0.tgz#bca30c6c04ce10f78790ee6ade3c4eb333add38e" + integrity sha512-cSITuhI8Bizrmks8rC6SmFcSbtUf9bIUPbpHetwb7T3raSseODx80Wy51JKXFkMyLAuWYHOfDie0J/kf5csGKw== + dependencies: + streaming-iterables "^4.1.0" + +ipfs-block@~0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/ipfs-block/-/ipfs-block-0.8.1.tgz#05e1068832775e8f1c2da5b64106cc837fd2acb9" + integrity sha512-0FaCpmij+jZBoUYhjoB5ptjdl9QzvrdRIoBmUU5JiBnK2GA+4YM/ifklaB8ePRhA/rRzhd+KYBjvMFMAL4NrVQ== + dependencies: + cids "~0.7.0" + class-is "^1.1.0" + +ipfs-core-types@^0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/ipfs-core-types/-/ipfs-core-types-0.9.0.tgz#cb201ff7a9470651ba14c4e7fae56661a55bf37e" + integrity sha512-VJ8vJSHvI1Zm7/SxsZo03T+zzpsg8pkgiIi5hfwSJlsrJ1E2v68QPlnLshGHUSYw89Oxq0IbETYl2pGTFHTWfg== + dependencies: + interface-datastore "^6.0.2" + multiaddr "^10.0.0" + multiformats "^9.4.13" + +ipfs-core-utils@^0.13.0: + version "0.13.0" + resolved "https://registry.yarnpkg.com/ipfs-core-utils/-/ipfs-core-utils-0.13.0.tgz#8f0ec9aaa7c24f6f307e6e76e7bdc1cefd829894" + integrity sha512-HP5EafxU4/dLW3U13CFsgqVO5Ika8N4sRSIb/dTg16NjLOozMH31TXV0Grtu2ZWo1T10ahTzMvrfT5f4mhioXw== + dependencies: + any-signal "^2.1.2" + blob-to-it "^1.0.1" + browser-readablestream-to-it "^1.0.1" + debug "^4.1.1" + err-code "^3.0.1" + ipfs-core-types "^0.9.0" + ipfs-unixfs "^6.0.3" + ipfs-utils "^9.0.2" + it-all "^1.0.4" + it-map "^1.0.4" + it-peekable "^1.0.2" + it-to-stream "^1.0.0" + merge-options "^3.0.4" + multiaddr "^10.0.0" + multiaddr-to-uri "^8.0.0" + multiformats "^9.4.13" + nanoid "^3.1.23" + parse-duration "^1.0.0" + timeout-abort-controller "^2.0.0" + uint8arrays "^3.0.0" + +ipfs-http-client@55.0.0: + version "55.0.0" + resolved "https://registry.yarnpkg.com/ipfs-http-client/-/ipfs-http-client-55.0.0.tgz#8b713c5fa318e873b7d7ad099a4eb14320a5b0ce" + integrity sha512-GpvEs7C7WL9M6fN/kZbjeh4Y8YN7rY8b18tVWZnKxRsVwM25cIFrRI8CwNt3Ugin9yShieI3i9sPyzYGMrLNnQ== + dependencies: + "@ipld/dag-cbor" "^7.0.0" + "@ipld/dag-json" "^8.0.1" + "@ipld/dag-pb" "^2.1.3" + abort-controller "^3.0.0" + any-signal "^2.1.2" + debug "^4.1.1" + err-code "^3.0.1" + ipfs-core-types "^0.9.0" + ipfs-core-utils "^0.13.0" + ipfs-utils "^9.0.2" + it-first "^1.0.6" + it-last "^1.0.4" + merge-options "^3.0.4" + multiaddr "^10.0.0" + multiformats "^9.4.13" + native-abort-controller "^1.0.3" + parse-duration "^1.0.0" + stream-to-it "^0.2.2" + uint8arrays "^3.0.0" + +ipfs-only-hash@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/ipfs-only-hash/-/ipfs-only-hash-2.1.0.tgz#548a9c1bce03894bfe79b6dc37154d82f7706843" + integrity sha512-S9XCQOqGXsHy6XshHOxGy6sP5bkpvgBoelAiZ47fwV32luxQe8ZLZDnZ+0SEF6RlRyVyY1zKGb/VmFgHrM6H+g== + dependencies: + ipfs-unixfs-importer "^0.44.1" + ipld "^0.25.3" + ipld-in-memory "^3.0.2" + meow "^9.0.0" + +ipfs-repo-migrations@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/ipfs-repo-migrations/-/ipfs-repo-migrations-0.1.1.tgz#63443c35f047dab1ec6079f8fe38615026eb1b4a" + integrity sha512-Id8K32l7bEqMt0YxfDUAAiMFkfFr9pslOT0xg3EqTrPc0AeXQ5sZu6y69p5TI7N+A28PhrGgMU40R7IQ8Mb7sg== + dependencies: + chalk "^2.4.2" + datastore-fs "~0.9.1" + datastore-level "~0.12.1" + debug "^4.1.0" + interface-datastore "~0.8.0" + proper-lockfile "^4.1.1" + yargs "^14.2.0" + yargs-promise "^1.1.0" + +ipfs-repo@^0.30.1: + version "0.30.1" + resolved "https://registry.yarnpkg.com/ipfs-repo/-/ipfs-repo-0.30.1.tgz#28e43cf608f4409fb873557e2ee4d5ac8919f2f4" + integrity sha512-t/RG/agHGRJ1yyzrwaFRDUyTZgJcdhSGFoeRIrCJuxxApjrXQZMee58SZL9al+jArRu+5sbZqcepLwwdIV95PA== + dependencies: + base32.js "~0.1.0" + bignumber.js "^9.0.0" + bytes "^3.1.0" + cids "~0.7.0" + datastore-core "~0.7.0" + datastore-fs "~0.9.0" + datastore-level "~0.14.0" + debug "^4.1.0" + err-code "^2.0.0" + interface-datastore "^0.8.0" + ipfs-block "~0.8.1" + ipfs-repo-migrations "~0.1.0" + just-safe-get "^2.0.0" + just-safe-set "^2.1.0" + lodash.has "^4.5.2" + p-queue "^6.0.0" + proper-lockfile "^4.0.0" + sort-keys "^4.0.0" + +ipfs-unixfs-importer@^0.44.1: + version "0.44.1" + resolved "https://registry.yarnpkg.com/ipfs-unixfs-importer/-/ipfs-unixfs-importer-0.44.1.tgz#f2597f1c2134ec5f1a907a2e51edf9c576137818" + integrity sha512-DeQ7BQl6DedHTrbFyPghbheXM40sD/Ik7wPVA2+kkfi0t/oggYbyYcWBnUKz+y2fVMWNeQ95ASiQeHGhYdo2sg== + dependencies: + bl "^4.0.0" + err-code "^2.0.0" + hamt-sharding "^1.0.0" + ipfs-unixfs "^0.3.0" + ipld-dag-pb "^0.18.0" + it-all "^1.0.1" + it-batch "^1.0.3" + it-first "^1.0.1" + it-parallel-batch "^1.0.3" + merge-options "^2.0.0" + multicodec "^1.0.0" + multihashing-async "^0.8.0" + rabin-wasm "~0.0.8" + +ipfs-unixfs@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/ipfs-unixfs/-/ipfs-unixfs-0.3.0.tgz#8cb0c8031c50f4d4c01d844b4877a5fde5fd23df" + integrity sha512-0lyU0V7dMh9JAN9NPUrsT6Bf8nHpH5YPAbXByrf3snZzY5J5wuvKd9CIBgYAq1eIgTRmJIqfXGFtbD8RDchuoA== + dependencies: + err-code "^2.0.0" + protons "^1.1.0" + +ipfs-unixfs@^6.0.3: + version "6.0.9" + resolved "https://registry.yarnpkg.com/ipfs-unixfs/-/ipfs-unixfs-6.0.9.tgz#f6613b8e081d83faa43ed96e016a694c615a9374" + integrity sha512-0DQ7p0/9dRB6XCb0mVCTli33GzIzSVx5udpJuVM47tGcD+W+Bl4LsnoLswd3ggNnNEakMv1FdoFITiEnchXDqQ== + dependencies: + err-code "^3.0.1" + protobufjs "^6.10.2" + +ipfs-utils@^1.2.3: + version "1.2.4" + resolved "https://registry.yarnpkg.com/ipfs-utils/-/ipfs-utils-1.2.4.tgz#209845db3f6493dbd185333eb09c5e9ee345ddc9" + integrity sha512-xUP7SmOAb50OHL8D2KasRHRBOtRdyHHerfCEJBmS9+qpe6wzpbhftdsZJ2UD2v7HXgi7IH9eTps5uPXKUd2aVg== + dependencies: + abort-controller "^3.0.0" + buffer "^5.4.2" + err-code "^2.0.0" + fs-extra "^9.0.0" + is-electron "^2.2.0" + iso-url "^0.4.7" + it-glob "0.0.7" + merge-options "^2.0.0" + nanoid "^2.1.11" + node-fetch "^2.6.0" + stream-to-it "^0.2.0" + +ipfs-utils@^9.0.2: + version "9.0.14" + resolved "https://registry.yarnpkg.com/ipfs-utils/-/ipfs-utils-9.0.14.tgz#24f5fda1f4567685eb32bca2543d518f95fd8704" + integrity sha512-zIaiEGX18QATxgaS0/EOQNoo33W0islREABAcxXE8n7y2MGAlB+hdsxXn4J0hGZge8IqVQhW8sWIb+oJz2yEvg== + dependencies: + any-signal "^3.0.0" + browser-readablestream-to-it "^1.0.0" + buffer "^6.0.1" + electron-fetch "^1.7.2" + err-code "^3.0.1" + is-electron "^2.2.0" + iso-url "^1.1.5" + it-all "^1.0.4" + it-glob "^1.0.1" + it-to-stream "^1.0.0" + merge-options "^3.0.4" + nanoid "^3.1.20" + native-fetch "^3.0.0" + node-fetch "^2.6.8" + react-native-fetch-api "^3.0.0" + stream-to-it "^0.2.2" + +ipld-dag-cbor@~0.15.0: + version "0.15.3" + resolved "https://registry.yarnpkg.com/ipld-dag-cbor/-/ipld-dag-cbor-0.15.3.tgz#283afdb81d5b07db8e4fff7a10ef5e517e87f299" + integrity sha512-m23nG7ZyoVFnkK55/bLAErc7EfiMgaEQlqHWDTGzPI+O5r6bPfp+qbL5zTVSIT8tpbHmu174dwerVtLoVgeVyA== + dependencies: + borc "^2.1.2" + buffer "^5.5.0" + cids "~0.8.0" + is-circular "^1.0.2" + multicodec "^1.0.0" + multihashing-async "~0.8.0" + +ipld-dag-pb@^0.18.0, ipld-dag-pb@~0.18.1: + version "0.18.5" + resolved "https://registry.yarnpkg.com/ipld-dag-pb/-/ipld-dag-pb-0.18.5.tgz#29e736dcdab10a4dffbef9dec27723e2e56be962" + integrity sha512-8IAPZrkRjgTpkxV9JOwXSBe0GXNxd4B2lubPgbifTGL92rZOEKWutpijsWsWvjXOltDFHKMQIIIhkgLC5RPqbA== + dependencies: + buffer "^5.6.0" + cids "~0.8.0" + class-is "^1.1.0" + multicodec "^1.0.1" + multihashing-async "~0.8.1" + protons "^1.0.2" + stable "^0.1.8" + +ipld-in-memory@^3.0.2: + version "3.0.4" + resolved "https://registry.yarnpkg.com/ipld-in-memory/-/ipld-in-memory-3.0.4.tgz#9571e38f48faca54484c0f0cddcabb7a60935e01" + integrity sha512-eYh+QtB5hKSnkPIFEEDh/hu2CnVMtUmm1obEwB7x1zR0SSvakVWAuOkhx7SFBmTxI7YcV4jMoxtuOjvYvPrz1A== + dependencies: + hat "0.0.3" + interface-datastore "^0.8.0" + ipfs-block-service "^0.16.0" + ipfs-repo "^0.30.1" + +ipld-raw@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/ipld-raw/-/ipld-raw-4.0.1.tgz#49a6f58cdfece5a4d581925b19ee19255be2a29d" + integrity sha512-WjIdtZ06jJEar8zh+BHB84tE6ZdbS/XNa7+XCArOYfmeJ/c01T9VQpeMwdJQYn5c3s5UvvCu7y4VIi3vk2g1bA== + dependencies: + cids "~0.7.0" + multicodec "^1.0.0" + multihashing-async "~0.8.0" + +ipld@^0.25.3: + version "0.25.5" + resolved "https://registry.yarnpkg.com/ipld/-/ipld-0.25.5.tgz#dc18f7d9458ac4428f69ae669cb784e5966eb2f5" + integrity sha512-9t5qh/ROQyj2Denl4KbOd3SmNLTGvh33ZYbt5P8Jury8EdDoZhBvknFq4maK6GZMjEeAiXphMGg/YaKTrim5Ew== + dependencies: + cids "~0.8.0" + ipfs-block "~0.8.1" + ipld-dag-cbor "~0.15.0" + ipld-dag-pb "~0.18.1" + ipld-raw "^4.0.0" + merge-options "^2.0.0" + multicodec "^1.0.0" + typical "^6.0.0" + +iron-webcrypto@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/iron-webcrypto/-/iron-webcrypto-1.0.0.tgz#e3b689c0c61b434a0a4cb82d0aeabbc8b672a867" + integrity sha512-anOK1Mktt8U1Xi7fCM3RELTuYbnFikQY5VtrDj7kPgpejV7d43tWKhzgioO0zpkazLEL/j/iayRqnJhrGfqUsg== + +is-absolute@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" + integrity sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA== + dependencies: + is-relative "^1.0.0" + is-windows "^1.0.1" + +is-accessor-descriptor@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz#3223b10628354644b86260db29b3e693f5ceedd4" + integrity sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA== + dependencies: + hasown "^2.0.0" + +is-arguments@^1.0.4, is-arguments@^1.1.1: + version "1.1.1" + 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" + has-tostringtag "^1.0.0" + +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" + integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.0" + is-typed-array "^1.1.10" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + +is-bigint@^1.0.1: + version "1.0.4" + 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.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.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@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-buffer@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" + integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== + +is-builtin-module@^3.1.0: + 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.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + +is-ci@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== + dependencies: + ci-info "^2.0.0" + +is-ci@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.1.tgz#db6ecbed1bd659c43dac0f45661e7674103d1867" + integrity sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ== + dependencies: + ci-info "^3.2.0" + +is-circular@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-circular/-/is-circular-1.0.2.tgz#2e0ab4e9835f4c6b0ea2b9855a84acd501b8366c" + integrity sha512-YttjnrswnUYRVJvxCvu8z+PGMUSzC2JttP0OEXezlAEdp3EXzhf7IZ3j0gRAybJBQupedIZFhY61Tga6E0qASA== + +is-core-module@^2.13.0, is-core-module@^2.5.0: + 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: + hasown "^2.0.0" + +is-data-descriptor@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz#2109164426166d32ea38c405c1e0945d9e6a4eeb" + integrity sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw== + dependencies: + hasown "^2.0.0" + +is-date-object@^1.0.1, is-date-object@^1.0.5: + version "1.0.5" + 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-descriptor@^0.1.0: + version "0.1.7" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.7.tgz#2727eb61fd789dcd5bdf0ed4569f551d2fe3be33" + integrity sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg== + dependencies: + is-accessor-descriptor "^1.0.1" + is-data-descriptor "^1.0.1" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.3.tgz#92d27cb3cd311c4977a4db47df457234a13cb306" + integrity sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw== + dependencies: + is-accessor-descriptor "^1.0.1" + is-data-descriptor "^1.0.1" + +is-docker@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200" + integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== + +is-docker@^2.0.0, is-docker@^2.1.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== + +is-electron@^2.2.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/is-electron/-/is-electron-2.2.2.tgz#3778902a2044d76de98036f5dc58089ac4d80bb9" + integrity sha512-FO/Rhvz5tuw4MCWkpMzHFKWD2LsfHzIb7i6MdPYZ/KW7AlxawyLkqdy+jPZP1WubqEADE3O4FUENlJHDfQASRg== + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== + dependencies: + is-plain-object "^2.0.4" + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-finite@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3" + integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w== + +is-fn@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fn/-/is-fn-1.0.0.tgz#9543d5de7bcf5b08a22ec8a20bae6e286d510d8c" + 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" + 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" + 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" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-fullwidth-code-point@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz#fae3167c729e7463f8461ce512b080a49268aa88" + integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ== + +is-function@^1.0.1: + version "1.0.2" + 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.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.3, 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" + 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" + integrity sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA== + +is-installed-globally@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" + integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ== + dependencies: + global-dirs "^3.0.0" + is-path-inside "^3.0.2" + +is-interactive@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" + integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== + +is-interactive@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-2.0.0.tgz#40c57614593826da1100ade6059778d597f16e90" + integrity sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ== + +is-ip@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-ip/-/is-ip-3.1.0.tgz#2ae5ddfafaf05cb8008a62093cf29734f657c5d8" + integrity sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q== + dependencies: + ip-regex "^4.0.0" + +is-lower-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-lower-case/-/is-lower-case-2.0.2.tgz#1c0884d3012c841556243483aa5d522f47396d2a" + integrity sha512-bVcMJy4X5Og6VZfdOZstSexlEy20Sr0k/p/b2IlQJlfdKAQuMpiv5w2Ccxb8sKdRUNAG1PnHVHjFSdRDVS6NlQ== + dependencies: + tslib "^2.0.3" + +is-nan@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/is-nan/-/is-nan-1.3.2.tgz#043a54adea31748b55b6cd4e09aadafa69bd9e1d" + integrity sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + +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" + integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== + +is-npm@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-6.0.0.tgz#b59e75e8915543ca5d881ecff864077cba095261" + integrity sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ== + +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" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== + dependencies: + has-tostringtag "^1.0.0" + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + integrity sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg== + dependencies: + kind-of "^3.0.2" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + integrity sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg== + +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + +is-observable@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-1.1.0.tgz#b3e986c8f44de950867cab5403f5a3465005975e" + integrity sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA== + dependencies: + symbol-observable "^1.1.0" + +is-path-inside@^3.0.2, 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" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + +is-path-inside@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-4.0.0.tgz#805aeb62c47c1b12fc3fd13bfb3ed1e7430071db" + integrity sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA== + +is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== + +is-plain-obj@^2.0.0, 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" + integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== + +is-plain-obj@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" + integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== + +is-plain-obj@^4.0.0, is-plain-obj@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz#d65025edec3657ce032fd7db63c97883eaed71f0" + integrity sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg== + +is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-plain-object@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" + integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== + +is-potential-custom-element-name@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" + integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== + +is-promise@^2.1.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" + integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== + +is-regex@^1.1.4, is-regex@~1.1.4: + version "1.1.4" + 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" + has-tostringtag "^1.0.0" + +is-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" + integrity sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA== + +is-relative@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d" + integrity sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA== + dependencies: + is-unc-path "^1.0.0" + +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" + integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== + dependencies: + call-bind "^1.0.2" + +is-stream@3.0.0, is-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" + integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== + +is-stream@^1.0.1, is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ== + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +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" + 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" + 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" + 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" + integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== + +is-unc-path@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-1.0.0.tgz#d731e8898ed090a12c352ad2eaed5095ad322c9d" + integrity sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ== + dependencies: + unc-path-regex "^0.1.2" + +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" + integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== + +is-unicode-supported@^1.1.0, is-unicode-supported@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz#d824984b616c292a2e198207d4a609983842f714" + integrity sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ== + +is-upper-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-upper-case/-/is-upper-case-2.0.2.tgz#f1105ced1fe4de906a5f39553e7d3803fd804649" + integrity sha512-44pxmxAvnnAOwBg4tHPnkfvgjPwbc5QIsSstNU+YcJ1ovxVzCWpSGosPJOZh/a1tdl81fbgnLc9LLv+x2ywbPQ== + dependencies: + tslib "^2.0.3" + +is-url-superb@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-url-superb/-/is-url-superb-4.0.0.tgz#b54d1d2499bb16792748ac967aa3ecb41a33a8c2" + integrity sha512-GI+WjezhPPcbM+tqE9LnmsY5qqjwHzTvjJ36wxYX5ujNXefSUJ/T17r5bqDV8yLhcgB59KTPNOc9O9cmHTPWsA== + +is-url@^1.2.4: + version "1.2.4" + 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.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + integrity sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q== + +is-valid-glob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-1.0.0.tgz#29bf3eff701be2d4d315dbacc39bc39fe8f601aa" + integrity sha512-AhiROmoEFDSsjx8hW+5sGwgKVIORcXnrlAx/R0ZSeaPw70Vw0CqkGBBhHGL58Uox2eXnU1AnvXJl1XlyedO5bA== + +is-weakref@^1.0.2: + version "1.0.2" + 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" + +is-windows@^1.0.1, is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + +is-wsl@2.2.0, is-wsl@^2.1.1, is-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + +is-yarn-global@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.4.1.tgz#b312d902b313f81e4eaf98b6361ba2b45cd694bb" + integrity sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ== + +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@1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + +iserror@0.0.2, iserror@^0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/iserror/-/iserror-0.0.2.tgz#bd53451fe2f668b9f2402c1966787aaa2c7c0bf5" + integrity sha512-oKGGrFVaWwETimP3SiWwjDeY27ovZoyZPHtxblC4hCq9fXxed/jasx+ATWFFjCVSRZng8VTMsN1nDnGo6zMBSw== + +isexe@2.0.0, isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +iso-random-stream@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/iso-random-stream/-/iso-random-stream-1.1.2.tgz#c703da2c518db573277c5678cc43c5298283d64c" + integrity sha512-7y0tsBBgQs544iTYjyrMp5xvgrbYR8b+plQq1Bryp+03p0LssrxC9C1M0oHv4QESDt7d95c74XvMk/yawKqX+A== + dependencies: + buffer "^6.0.3" + readable-stream "^3.4.0" + +iso-url@^0.4.7, iso-url@~0.4.7: + version "0.4.7" + resolved "https://registry.yarnpkg.com/iso-url/-/iso-url-0.4.7.tgz#de7e48120dae46921079fe78f325ac9e9217a385" + integrity sha512-27fFRDnPAMnHGLq36bWTpKET+eiXct3ENlCcdcMdk+mjXrb2kw3mhBUg1B7ewAC0kVzlOPhADzQgz1SE6Tglog== + +iso-url@^1.1.5: + version "1.2.1" + resolved "https://registry.yarnpkg.com/iso-url/-/iso-url-1.2.1.tgz#db96a49d8d9a64a1c889fc07cc525d093afb1811" + integrity sha512-9JPDgCN4B7QPkLtYAAOrEuAWvP9rWvR5offAr0/SeF046wIkglqH3VXgYYP6NcsKslH80UIVgmPqNe3j7tG2ng== + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA== + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== + +isomorphic-timers-promises@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/isomorphic-timers-promises/-/isomorphic-timers-promises-1.0.1.tgz#e4137c24dbc54892de8abae3a4b5c1ffff381598" + integrity sha512-u4sej9B1LPSxTGKB/HiuzvEQnXH0ECYkSVQU39koSwmFAxhlEAFl9RdTvLv4TOTQUgBS5O3O5fwUxk6byBZ+IQ== + +isomorphic-ws@5.0.0, isomorphic-ws@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz#e5529148912ecb9b451b46ed44d53dae1ce04bbf" + integrity sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw== + +isomorphic-ws@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz#55fd4cd6c5e6491e76dc125938dd863f5cd4f2dc" + integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== + +isstream@0.1.x, isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== + +it-all@^1.0.1, it-all@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/it-all/-/it-all-1.0.6.tgz#852557355367606295c4c3b7eff0136f07749335" + integrity sha512-3cmCc6Heqe3uWi3CVM/k51fa/XbMFpQVzFoDsV0IZNHSQDyAXl3c4MjHkFX5kF3922OGj7Myv1nSEUgRtcuM1A== + +it-batch@^1.0.3, it-batch@^1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/it-batch/-/it-batch-1.0.9.tgz#7e95aaacb3f9b1b8ca6c8b8367892171d6a5b37f" + integrity sha512-7Q7HXewMhNFltTsAMdSz6luNhyhkhEtGGbYek/8Xb/GiqYMtwUmopE1ocPSiJKKp3rM4Dt045sNFoUu+KZGNyA== + +it-first@^1.0.1, it-first@^1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/it-first/-/it-first-1.0.7.tgz#a4bef40da8be21667f7d23e44dae652f5ccd7ab1" + integrity sha512-nvJKZoBpZD/6Rtde6FXqwDqDZGF1sCADmr2Zoc0hZsIvnE449gRFnGctxDf09Bzc/FWnHXAdaHVIetY6lrE0/g== + +it-glob@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/it-glob/-/it-glob-0.0.7.tgz#6ed5c0a6fae6ad687fdec83256260cbe7fcbb2d7" + integrity sha512-XfbziJs4fi0MfdEGTLkZXeqo2EorF2baFXxFn1E2dGbgYMhFTZlZ2Yn/mx5CkpuLWVJvO1DwtTOVW2mzRyVK8w== + dependencies: + fs-extra "^8.1.0" + minimatch "^3.0.4" + +it-glob@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/it-glob/-/it-glob-1.0.2.tgz#bab9b04d6aaac42884502f3a0bfee84c7a29e15e" + integrity sha512-Ch2Dzhw4URfB9L/0ZHyY+uqOnKvBNeS/SMcRiPmJfpHiM0TsUZn+GkpcZxAoF3dJVdPm/PuIk3A4wlV7SUo23Q== + dependencies: + "@types/minimatch" "^3.0.4" + minimatch "^3.0.4" + +it-last@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/it-last/-/it-last-1.0.6.tgz#4106232e5905ec11e16de15a0e9f7037eaecfc45" + integrity sha512-aFGeibeiX/lM4bX3JY0OkVCFkAw8+n9lkukkLNivbJRvNz8lI3YXv5xcqhFUV2lDJiraEK3OXRDbGuevnnR67Q== + +it-map@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/it-map/-/it-map-1.0.6.tgz#6aa547e363eedcf8d4f69d8484b450bc13c9882c" + integrity sha512-XT4/RM6UHIFG9IobGlQPFQUrlEKkU4eBUFG3qhWhfAdh1JfF2x11ShCrKCdmZ0OiZppPfoLuzcfA4cey6q3UAQ== + +it-parallel-batch@^1.0.3: + version "1.0.11" + resolved "https://registry.yarnpkg.com/it-parallel-batch/-/it-parallel-batch-1.0.11.tgz#f889b4e1c7a62ef24111dbafbaaa010b33d00f69" + integrity sha512-UWsWHv/kqBpMRmyZJzlmZeoAMA0F3SZr08FBdbhtbe+MtoEBgr/ZUAKrnenhXCBrsopy76QjRH2K/V8kNdupbQ== + dependencies: + it-batch "^1.0.9" + +it-peekable@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/it-peekable/-/it-peekable-1.0.3.tgz#8ebe933767d9c5aa0ae4ef8e9cb3a47389bced8c" + integrity sha512-5+8zemFS+wSfIkSZyf0Zh5kNN+iGyccN02914BY4w/Dj+uoFEoPSvj5vaWn8pNZJNSxzjW0zHRxC3LUb2KWJTQ== + +it-to-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/it-to-stream/-/it-to-stream-1.0.0.tgz#6c47f91d5b5df28bda9334c52782ef8e97fe3a4a" + integrity sha512-pLULMZMAB/+vbdvbZtebC0nWBTbG581lk6w8P7DfIIIKUfa8FbY7Oi0FxZcFPbxvISs7A9E+cMpLDBc1XhpAOA== + dependencies: + buffer "^6.0.3" + fast-fifo "^1.0.0" + get-iterator "^1.0.2" + p-defer "^3.0.0" + p-fifo "^1.0.0" + readable-stream "^3.6.0" + +jaeger-client@^3.15.0: + version "3.19.0" + resolved "https://registry.yarnpkg.com/jaeger-client/-/jaeger-client-3.19.0.tgz#9b5bd818ebd24e818616ee0f5cffe1722a53ae6e" + integrity sha512-M0c7cKHmdyEUtjemnJyx/y9uX16XHocL46yQvyqDlPdvAcwPDbHrIbKjQdBqtiE4apQ/9dmr+ZLJYYPGnurgpw== + dependencies: + node-int64 "^0.4.0" + opentracing "^0.14.4" + thriftrw "^3.5.0" + uuid "^8.3.2" + xorshift "^1.1.1" + +jake@^10.8.5: + version "10.8.7" + resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.7.tgz#63a32821177940c33f356e0ba44ff9d34e1c7d8f" + integrity sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w== + dependencies: + async "^3.2.3" + chalk "^4.0.2" + filelist "^1.0.4" + minimatch "^3.1.2" + +jayson@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jayson/-/jayson-4.0.0.tgz#145a0ced46f900934c9b307e1332bcb0c7dbdb17" + integrity sha512-v2RNpDCMu45fnLzSk47vx7I+QUaOsox6f5X0CUlabAFwxoP+8MfAY0NQRFwOEYXIxm8Ih5y6OaEa5KYiQMkyAA== + dependencies: + "@types/connect" "^3.4.33" + "@types/node" "^12.12.54" + "@types/ws" "^7.4.4" + JSONStream "^1.3.5" + commander "^2.20.3" + delay "^5.0.0" + es6-promisify "^5.0.0" + eyes "^0.1.8" + isomorphic-ws "^4.0.1" + json-stringify-safe "^5.0.1" + uuid "^8.3.2" + ws "^7.4.5" + +jest-get-type@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.5.1.tgz#3cd613c507b0f7ace013df407a1c1cd578bcb4f1" + integrity sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw== + +jest-validate@^27.3.1, jest-validate@^27.4.2: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.5.1.tgz#9197d54dc0bdb52260b8db40b46ae668e04df067" + integrity sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ== + dependencies: + "@jest/types" "^27.5.1" + camelcase "^6.2.0" + chalk "^4.0.0" + jest-get-type "^27.5.1" + leven "^3.1.0" + pretty-format "^27.5.1" + +jiti@1.17.1: + version "1.17.1" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.17.1.tgz#264daa43ee89a03e8be28c3d712ccc4eb9f1e8ed" + integrity sha512-NZIITw8uZQFuzQimqjUxIrIcEdxYDFIe/0xYfIlVXTkiBjjyBEvgasj5bb0/cHtPRD/NziPbT312sFrkI5ALpw== + +jiti@^1.17.1, jiti@^1.19.1, jiti@^1.20.0: + version "1.21.0" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.0.tgz#7c97f8fe045724e136a397f7340475244156105d" + integrity sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q== + +jose@^4.11.4: + version "4.15.4" + resolved "https://registry.yarnpkg.com/jose/-/jose-4.15.4.tgz#02a9a763803e3872cf55f29ecef0dfdcc218cc03" + integrity sha512-W+oqK4H+r5sITxfxpSU+MMdr/YSWGvgZMQDIsNoBDGGy4i7GBPTtvFKibQzW06n3U3TqHjhvBJsirShsEJ6eeQ== + +js-sdsl@^4.1.4: + version "4.4.2" + resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.4.2.tgz#2e3c031b1f47d3aca8b775532e3ebb0818e7f847" + integrity sha512-dwXFwByc/ajSV6m5bcKAPwe4yDDF6D614pxmIi5odytzxRlwqF6nwoiCek80Ixc7Cvma5awClxrzFtxCQvcM8w== + +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-sha3@^0.5.7: + version "0.5.7" + resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.5.7.tgz#0d4ffd8002d5333aabaf4a23eed2f6374c9f28e7" + integrity sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g== + +js-string-escape@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/js-string-escape/-/js-string-escape-1.0.1.tgz#e2625badbc0d67c7533e9edc1068c587ae4137ef" + integrity sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg== + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-tokens@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" + integrity sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg== + +js-yaml@3.14.1, js-yaml@^3.14.1: + version "3.14.1" + 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.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.0.0.tgz#f426bc0ff4b4051926cd588c71113183409a121f" + integrity sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q== + dependencies: + argparse "^2.0.1" + +js-yaml@4.1.0, js-yaml@^4.0.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" + integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== + +jsdom@^20.0.3: + version "20.0.3" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-20.0.3.tgz#886a41ba1d4726f67a8858028c99489fed6ad4db" + integrity sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ== + dependencies: + abab "^2.0.6" + acorn "^8.8.1" + acorn-globals "^7.0.0" + cssom "^0.5.0" + cssstyle "^2.3.0" + data-urls "^3.0.2" + decimal.js "^10.4.2" + domexception "^4.0.0" + escodegen "^2.0.0" + form-data "^4.0.0" + html-encoding-sniffer "^3.0.0" + http-proxy-agent "^5.0.0" + https-proxy-agent "^5.0.1" + is-potential-custom-element-name "^1.0.1" + nwsapi "^2.2.2" + parse5 "^7.1.1" + saxes "^6.0.0" + symbol-tree "^3.2.4" + tough-cookie "^4.1.2" + w3c-xmlserializer "^4.0.0" + webidl-conversions "^7.0.0" + whatwg-encoding "^2.0.0" + whatwg-mimetype "^3.0.0" + whatwg-url "^11.0.0" + ws "^8.11.0" + xml-name-validator "^4.0.0" + +jsesc@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" + integrity sha512-Mke0DA0QjUWuJlhsE0ZPPhYiJkRap642SmI/4ztCFaUs6V2AiH1sfecc+57NgaryfAA2VR3v6O+CSjC1jZJKOA== + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== + +json-bigint@^1.0.0: + version "1.0.0" + 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.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" + integrity sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ== + +json-buffer@3.0.1: + version "3.0.1" + 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.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@^3.4.0, json-rpc-engine@^3.6.0: + version "3.8.0" + resolved "https://registry.yarnpkg.com/json-rpc-engine/-/json-rpc-engine-3.8.0.tgz#9d4ff447241792e1d0a232f6ef927302bb0c62a9" + 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-error@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/json-rpc-error/-/json-rpc-error-2.0.0.tgz#a7af9c202838b5e905c7250e547f1aff77258a02" + integrity sha512-EwUeWP+KgAZ/xqFpaP6YDAXMtCJi+o/QQpCQFIYyxr01AdADi2y413eM8hSqJcoQym9WMePAJWoaODEJufC4Ug== + dependencies: + inherits "^2.0.1" + +json-rpc-random-id@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-rpc-random-id/-/json-rpc-random-id-1.0.1.tgz#ba49d96aded1444dbb8da3d203748acbbcdec8c8" + integrity sha512-RJ9YYNCkhVDBuP4zN5BBtYAzEl03yq/jIIsyif0JY9qyJuQQZNeDK7anAPKKlyEtLSj2s8h6hNh2F8zO5q7ScA== + +json-schema-ref-resolver@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-schema-ref-resolver/-/json-schema-ref-resolver-1.0.1.tgz#6586f483b76254784fc1d2120f717bdc9f0a99bf" + integrity sha512-EJAj1pgHc1hxF6vo2Z3s69fMjO1INq6eGHXZ8Z6wCQeldCuwxGK9Sxf4/cScGn3FZubCVUehfWtcDM/PLteCQw== + dependencies: + fast-deep-equal "^3.1.3" + +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" + 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" + 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" + 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" + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== + +json-stable-stringify@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.1.0.tgz#43d39c7c8da34bfaf785a61a56808b0def9f747d" + integrity sha512-zfA+5SuwYN2VWqN1/5HZaDzQKLJHaBVMZIIM+wuYjdptkaQsqzDdqjqf+lZZJUuJq1aanHiY8LhH8LmH+qBYJA== + dependencies: + call-bind "^1.0.5" + isarray "^2.0.5" + jsonify "^0.0.1" + object-keys "^1.1.1" + +json-stringify-safe@^5.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" + integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== + +json-text-sequence@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/json-text-sequence/-/json-text-sequence-0.1.1.tgz#a72f217dc4afc4629fff5feb304dc1bd51a2f3d2" + integrity sha512-L3mEegEWHRekSHjc7+sc8eJhba9Clq1PZ8kMkzf8OxElhXc8O4TS5MwcVlj9aEbm5dr81N90WHC5nAz3UO971w== + dependencies: + delimit-stream "0.1.0" + +json-to-pretty-yaml@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/json-to-pretty-yaml/-/json-to-pretty-yaml-1.2.2.tgz#f4cd0bd0a5e8fe1df25aaf5ba118b099fd992d5b" + integrity sha512-rvm6hunfCcqegwYaG5T4yKJWxc9FXFgBVrcTZ4XfSVRwa5HA/Xs+vB/Eo9treYYHCeNM0nrSUr82V/M31Urc7A== + dependencies: + remedial "^1.0.7" + remove-trailing-spaces "^1.0.6" + +json5@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + integrity sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw== + +json5@^2.2.0, json5@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + +jsonc-eslint-parser@^1.0.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsonc-eslint-parser/-/jsonc-eslint-parser-1.4.1.tgz#8cbe99f6f5199acbc5a823c4c0b6135411027fa6" + integrity sha512-hXBrvsR1rdjmB2kQmUjf1rEIa+TqHBGMge8pwi++C+Si1ad7EjZrJcpgwym+QGK/pqTx+K7keFAtLlVNdLRJOg== + dependencies: + acorn "^7.4.1" + eslint-utils "^2.1.0" + eslint-visitor-keys "^1.3.0" + espree "^6.0.0" + semver "^6.3.0" + +jsonc-parser@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz#31ff3f4c2b9793f89c67212627c51c6394f88e76" + integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w== + +jsonfile@^2.1.0: + version "2.4.0" + 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.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.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.yarnpkg.com/jsonify/-/jsonify-0.0.1.tgz#2aa3111dae3d34a0f151c63f3a45d995d9420978" + integrity sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg== + +jsonparse@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" + integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== + +jsonpath@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/jsonpath/-/jsonpath-1.1.1.tgz#0ca1ed8fb65bb3309248cc9d5466d12d5b0b9901" + integrity sha512-l6Cg7jRpixfbgoWgkrl77dgEj8RPvND0wMH6TwQmi9Qs4TFfS9u5cUFnbeKTwj5ga5Y3BTGGNI28k117LJ009w== + dependencies: + esprima "1.2.2" + static-eval "2.0.2" + underscore "1.12.1" + +jsonpointer@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-5.0.1.tgz#2110e0af0900fd37467b5907ecd13a7884a1b559" + integrity sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ== + +jsonwebtoken@9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-9.0.1.tgz#81d8c901c112c24e497a55daf6b2be1225b40145" + integrity sha512-K8wx7eJ5TPvEjuiVSkv167EVboBDv9PZdDoF7BgeQnBLVvZWW9clr2PsQHVJDTKaEIH5JBIwHujGcHp7GgI2eg== + dependencies: + jws "^3.2.2" + lodash "^4.17.21" + ms "^2.1.1" + semver "^7.3.8" + +jsprim@^1.2.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" + integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.4.0" + verror "1.10.0" + +junk@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/junk/-/junk-4.0.1.tgz#7ee31f876388c05177fe36529ee714b07b50fbed" + integrity sha512-Qush0uP+G8ZScpGMZvHUiRfI0YBWuB3gVBYlI0v0vvOJt5FLicco+IkP0a50LqTTQhmts/m6tP5SWE+USyIvcQ== + +just-safe-get@^2.0.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/just-safe-get/-/just-safe-get-2.1.2.tgz#82c2df6bbb929bf4de8d46c06ef79e1a4dd98918" + integrity sha512-DPWEh00QFgJNyfULPwgc9rTvdiPYVyt69hcgjWbN3lzKMmISW43Hwc+nlRAIo+su6PLVqUOMEUJNYR1xFog7xQ== + +just-safe-set@^2.1.0: + version "2.2.3" + resolved "https://registry.yarnpkg.com/just-safe-set/-/just-safe-set-2.2.3.tgz#b717b71a7237ff9f4b9d1220128a576001a11535" + integrity sha512-6zAkfGKRjB766zXv/UVSGOFKSAqakhwLQDyIR9bmIhJ/e6jS3Ci1VxYTqaiooYZZUw3VLg0sZva8PE6JX/iu2w== + +jwa@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a" + integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA== + dependencies: + buffer-equal-constant-time "1.0.1" + ecdsa-sig-formatter "1.0.11" + safe-buffer "^5.0.1" + +jwa@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/jwa/-/jwa-2.0.0.tgz#a7e9c3f29dae94027ebcaf49975c9345593410fc" + integrity sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA== + dependencies: + buffer-equal-constant-time "1.0.1" + ecdsa-sig-formatter "1.0.11" + safe-buffer "^5.0.1" + +jws@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304" + integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA== + dependencies: + jwa "^1.4.1" + safe-buffer "^5.0.1" + +jws@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jws/-/jws-4.0.0.tgz#2d4e8cf6a318ffaa12615e9dec7e86e6c97310f4" + integrity sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg== + dependencies: + jwa "^2.0.0" + safe-buffer "^5.0.1" + +jwt-decode@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/jwt-decode/-/jwt-decode-3.1.2.tgz#3fb319f3675a2df0c2895c8f5e9fa4b67b04ed59" + integrity sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A== + +keccak@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.1.tgz#ae30a0e94dbe43414f741375cff6d64c8bea0bff" + integrity sha512-epq90L9jlFWCW7+pQa6JOnKn2Xgl2mtI664seYR6MHskvI9agt7AnDqmAlp9TqU4/caMYbA08Hi5DMZAl5zdkA== + dependencies: + node-addon-api "^2.0.0" + node-gyp-build "^4.2.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" + +keep-func-props@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/keep-func-props/-/keep-func-props-4.0.1.tgz#3a9ab077a1bcc7f98771fd534940826d44cd5df1" + integrity sha512-87ftOIICfdww3SxR5P1veq3ThBNyRPG0JGL//oaR08v0k2yTicEIHd7s0GqSJfQvlb+ybC3GiDepOweo0LDhvw== + dependencies: + mimic-fn "^4.0.0" + +keyv@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" + integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== + dependencies: + json-buffer "3.0.0" + +keyv@^4.0.0, keyv@^4.5.3: + 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" + +keyvaluestorage-interface@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/keyvaluestorage-interface/-/keyvaluestorage-interface-1.0.0.tgz#13ebdf71f5284ad54be94bd1ad9ed79adad515ff" + integrity sha512-8t6Q3TclQ4uZynJY9IGr2+SsIGwK9JHcO6ootkHCGA0CrQCRy+VkouYNO2xicET6b9al7QKzpebNow+gkpCL8g== + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ== + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + integrity sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw== + dependencies: + is-buffer "^1.1.5" + +kind-of@^6.0.2, kind-of@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +klaw-sync@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/klaw-sync/-/klaw-sync-6.0.0.tgz#1fd2cfd56ebb6250181114f0a581167099c2b28c" + integrity sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ== + dependencies: + graceful-fs "^4.1.11" + +klaw@^1.0.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" + integrity sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw== + optionalDependencies: + graceful-fs "^4.1.9" + +kuler@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/kuler/-/kuler-2.0.0.tgz#e2c570a3800388fb44407e851531c1d670b061b3" + integrity sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A== + +lambda-local@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/lambda-local/-/lambda-local-2.1.2.tgz#22b0ecdc15ae400841e268991402e87566ba0554" + integrity sha512-nGTJn2JxZWcLGpNwXFmXC7UEXL7QCLieQWDiXs46vIv9y/gSPm/uHygEMCaym+HIziniAw0XIm+1VTrXCvG1Zw== + dependencies: + commander "^10.0.1" + dotenv "^16.3.1" + winston "^3.10.0" + +latest-version@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-7.0.0.tgz#843201591ea81a4d404932eeb61240fe04e9e5da" + integrity sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg== + dependencies: + package-json "^8.1.0" + +lazystream@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.1.tgz#494c831062f1f9408251ec44db1cba29242a2638" + integrity sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw== + dependencies: + readable-stream "^2.0.5" + +lcid@^1.0.0: + version "1.0.0" + 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.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.yarnpkg.com/level-codec/-/level-codec-7.0.1.tgz#341f22f907ce0f16763f24bddd681e395a0fb8a7" + integrity sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ== + +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" + 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== + 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" + 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@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/level-iterator-stream/-/level-iterator-stream-2.0.3.tgz#ccfff7c046dcf47955ae9a86f46dfa06a31688b4" + integrity sha512-I6Heg70nfF+e5Y3/qfthJFexhRw/Gi3bIymCoXAlijZdAcLaPuWSJs3KXyTYf23ID6g0o2QF62Yh+grOXY3Rig== + 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.yarnpkg.com/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz#e43b78b1a8143e6fa97a4f485eb8ea530352f2ed" + 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@~3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/level-iterator-stream/-/level-iterator-stream-3.0.1.tgz#2c98a4f8820d87cdacab3132506815419077c730" + integrity sha512-nEIQvxEED9yRThxvOrq8Aqziy4EGzrxSZK+QzEFAVuJvQ8glfyZ96GB6BoI4sBbLfjMXm2w4vu3Tkcm9obcY0g== + 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.yarnpkg.com/level-iterator-stream/-/level-iterator-stream-4.0.2.tgz#7ceba69b713b0d7e22fcc0d1f128ccdc8a24f79c" + integrity sha512-ZSthfEqzGSOMWoUGhTXdX9jv26d32XJuHz/5YnuHZzH6wldfWMOVwI9TBtKcya4BKTyTt3XVA0A3cF3q5CY30Q== + dependencies: + inherits "^2.0.4" + readable-stream "^3.4.0" + xtend "^4.0.2" + +level-js@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/level-js/-/level-js-4.0.2.tgz#fa51527fa38b87c4d111b0d0334de47fcda38f21" + integrity sha512-PeGjZsyMG4O89KHiez1zoMJxStnkM+oBIqgACjoo5PJqFiSUUm3GNod/KcbqN5ktyZa8jkG7I1T0P2u6HN9lIg== + dependencies: + abstract-leveldown "~6.0.1" + immediate "~3.2.3" + inherits "^2.0.3" + ltgt "^2.1.2" + typedarray-to-buffer "~3.1.5" + +level-mem@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/level-mem/-/level-mem-3.0.1.tgz#7ce8cf256eac40f716eb6489654726247f5a89e5" + integrity sha512-LbtfK9+3Ug1UmvvhR2DqLqXiPW1OJ5jEh0a3m9ZgAipiwpSxGj/qaVVy54RG5vAQN1nCuXqjvprCuKSCxcJHBg== + dependencies: + level-packager "~4.0.0" + memdown "~3.0.0" + +level-packager@^5.0.0: + version "5.1.1" + 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" + levelup "^4.3.2" + +level-packager@~4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/level-packager/-/level-packager-4.0.1.tgz#7e7d3016af005be0869bc5fa8de93d2a7f56ffe6" + integrity sha512-svCRKfYLn9/4CoFfi+d8krOtrp6RoX8+xm0Na5cgXMqSyRru0AnDYdLl+YI8u1FyS6gGZ94ILLZDE5dh2but3Q== + dependencies: + encoding-down "~5.0.0" + levelup "^3.0.0" + +level-post@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/level-post/-/level-post-1.0.7.tgz#19ccca9441a7cc527879a0635000f06d5e8f27d0" + integrity sha512-PWYqG4Q00asOrLhX7BejSajByB4EmG2GaKHfj3h5UmmZ2duciXLPGYWIjBzLECFWUGOZWlm5B20h/n3Gs3HKew== + dependencies: + ltgt "^2.1.2" + +level-sublevel@6.6.4: + version "6.6.4" + resolved "https://registry.yarnpkg.com/level-sublevel/-/level-sublevel-6.6.4.tgz#f7844ae893919cd9d69ae19d7159499afd5352ba" + integrity sha512-pcCrTUOiO48+Kp6F1+UAzF/OtWqLcQVTVF39HLdZ3RO8XBoXt+XVPKZO1vVr1aUoxHZA9OtD2e1v7G+3S5KFDA== + 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@^4.0.0: + version "4.0.1" + 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.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.yarnpkg.com/level-transcoder/-/level-transcoder-1.0.1.tgz#f8cef5990c4f1283d4c86d949e73631b0bc8ba9c" + 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@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/level-ws/-/level-ws-1.0.0.tgz#19a22d2d4ac57b18cc7c6ecc4bd23d899d8f603b" + integrity sha512-RXEfCmkd6WWFlArh3X8ONvQPm8jNpfA0s/36M4QzLqrLEIt1iJE9WBHLZ5vZJK6haMjJPJGJCQWfjMNnRcq/9Q== + dependencies: + inherits "^2.0.3" + readable-stream "^2.2.8" + xtend "^4.0.1" + +level@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/level/-/level-5.0.1.tgz#8528cc1ee37ac413270129a1eab938c610be3ccb" + integrity sha512-wcak5OQeA4rURGacqS62R/xNHjCYnJSQDBOlm4KNUGJVE9bWv2B04TclqReYejN+oD65PzD4FsqeWoI5wNC5Lg== + dependencies: + level-js "^4.0.0" + level-packager "^5.0.0" + leveldown "^5.0.0" + opencollective-postinstall "^2.0.0" + +level@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/level/-/level-8.0.0.tgz#41b4c515dabe28212a3e881b61c161ffead14394" + integrity sha512-ypf0jjAk2BWI33yzEaaotpq7fkOPALKAgDBxggO6Q9HGX2MRXn0wbP1Jn/tJv1gtL867+YOjOB49WaUF3UoJNQ== + dependencies: + browser-level "^1.0.1" + classic-level "^1.2.0" + +leveldown@^5.0.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/leveldown/-/leveldown-5.6.0.tgz#16ba937bb2991c6094e13ac5a6898ee66d3eee98" + integrity sha512-iB8O/7Db9lPaITU1aA2txU/cBEXAt4vWwKQRrrWuS6XDgbP4QZGj9BL2aNbwb002atoQ/lIotJkfyzz+ygQnUQ== + dependencies: + abstract-leveldown "~6.2.1" + napi-macros "~2.0.0" + node-gyp-build "~4.1.0" + +levelup@3.1.1, levelup@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/levelup/-/levelup-3.1.1.tgz#c2c0b3be2b4dc316647c53b42e2f559e232d2189" + integrity sha512-9N10xRkUU4dShSRRFTBdNaBxofz+PGaIZO962ckboJZiNmLuhVT6FZ6ZKAsICKfUBO76ySaYU6fJWX/jnj3Lcg== + dependencies: + deferred-leveldown "~4.0.0" + level-errors "~2.0.0" + level-iterator-stream "~3.0.0" + xtend "~4.0.0" + +levelup@^1.2.1: + version "1.3.9" + resolved "https://registry.yarnpkg.com/levelup/-/levelup-1.3.9.tgz#2dbcae845b2bb2b6bea84df334c475533bbd82ab" + 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.yarnpkg.com/levelup/-/levelup-4.4.0.tgz#f89da3a228c38deb49c48f88a70fb71f01cafed6" + integrity sha512-94++VFO3qN95cM/d6eBXvd894oJE0w3cInq9USsyQzzoJxmiYzPAocNcuGCPGGjoXqDVJcr3C1jzt1TSjyaiLQ== + 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" + +leven@^3.1.0, "leven@^3.1.0 < 4": + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +levn@^0.4.1: + version "0.4.1" + 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" + type-check "~0.4.0" + +levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +light-my-request@^5.6.1: + version "5.11.0" + resolved "https://registry.yarnpkg.com/light-my-request/-/light-my-request-5.11.0.tgz#90e446c303b3a47b59df38406d5f5c2cf224f2d1" + integrity sha512-qkFCeloXCOMpmEdZ/MV91P8AT4fjwFXWaAFz3lUeStM8RcoM1ks4J/F8r1b3r6y/H4u3ACEJ1T+Gv5bopj7oDA== + dependencies: + cookie "^0.5.0" + process-warning "^2.0.0" + set-cookie-parser "^2.4.1" + +lilconfig@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" + integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== + +lilconfig@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.0.0.tgz#f8067feb033b5b74dab4602a5f5029420be749bc" + integrity sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g== + +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" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +linkify-it@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-4.0.1.tgz#01f1d5e508190d06669982ba31a7d9f56a5751ec" + integrity sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw== + dependencies: + uc.micro "^1.0.1" + +lint-staged@^11.0.0: + version "11.2.6" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-11.2.6.tgz#f477b1af0294db054e5937f171679df63baa4c43" + integrity sha512-Vti55pUnpvPE0J9936lKl0ngVeTdSZpEdTNhASbkaWX7J5R9OEifo1INBGQuGW4zmy6OG+TcWPJ3m5yuy5Q8Tg== + dependencies: + cli-truncate "2.1.0" + colorette "^1.4.0" + commander "^8.2.0" + cosmiconfig "^7.0.1" + debug "^4.3.2" + enquirer "^2.3.6" + execa "^5.1.1" + listr2 "^3.12.2" + micromatch "^4.0.4" + normalize-path "^3.0.0" + please-upgrade-node "^3.2.0" + string-argv "0.3.1" + stringify-object "3.3.0" + supports-color "8.1.1" + +listhen@^1.5.5: + version "1.5.5" + resolved "https://registry.yarnpkg.com/listhen/-/listhen-1.5.5.tgz#58915512af70f770aa3e9fb19367adf479bb58c4" + integrity sha512-LXe8Xlyh3gnxdv4tSjTjscD1vpr/2PRpzq8YIaMJgyKzRG8wdISlWVWnGThJfHnlJ6hmLt2wq1yeeix0TEbuoA== + dependencies: + "@parcel/watcher" "^2.3.0" + "@parcel/watcher-wasm" "2.3.0" + citty "^0.1.4" + clipboardy "^3.0.0" + consola "^3.2.3" + defu "^6.1.2" + get-port-please "^3.1.1" + h3 "^1.8.1" + http-shutdown "^1.2.2" + jiti "^1.20.0" + mlly "^1.4.2" + node-forge "^1.3.1" + pathe "^1.1.1" + std-env "^3.4.3" + ufo "^1.3.0" + untun "^0.1.2" + uqr "^0.1.2" + +listr-silent-renderer@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e" + integrity sha512-L26cIFm7/oZeSNVhWB6faeorXhMg4HNlb/dS/7jHhr708jxlXrtrBWo4YUxZQkc6dGoxEAe6J/D3juTRBUzjtA== + +listr-update-renderer@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz#4ea8368548a7b8aecb7e06d8c95cb45ae2ede6a2" + integrity sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA== + dependencies: + chalk "^1.1.3" + cli-truncate "^0.2.1" + elegant-spinner "^1.0.1" + figures "^1.7.0" + indent-string "^3.0.0" + log-symbols "^1.0.2" + log-update "^2.3.0" + strip-ansi "^3.0.1" + +listr-verbose-renderer@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz#f1132167535ea4c1261102b9f28dac7cba1e03db" + integrity sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw== + dependencies: + chalk "^2.4.1" + cli-cursor "^2.1.0" + date-fns "^1.27.2" + figures "^2.0.0" + +listr2@^3.12.2: + version "3.14.0" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.14.0.tgz#23101cc62e1375fd5836b248276d1d2b51fdbe9e" + integrity sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g== + dependencies: + cli-truncate "^2.1.0" + colorette "^2.0.16" + log-update "^4.0.0" + p-map "^4.0.0" + rfdc "^1.3.0" + rxjs "^7.5.1" + through "^2.3.8" + wrap-ansi "^7.0.0" + +listr2@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-4.0.5.tgz#9dcc50221583e8b4c71c43f9c7dfd0ef546b75d5" + integrity sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA== + dependencies: + cli-truncate "^2.1.0" + colorette "^2.0.16" + log-update "^4.0.0" + p-map "^4.0.0" + rfdc "^1.3.0" + rxjs "^7.5.5" + through "^2.3.8" + wrap-ansi "^7.0.0" + +listr@0.14.3: + version "0.14.3" + resolved "https://registry.yarnpkg.com/listr/-/listr-0.14.3.tgz#2fea909604e434be464c50bddba0d496928fa586" + integrity sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA== + dependencies: + "@samverschueren/stream-to-observable" "^0.3.0" + is-observable "^1.1.0" + is-promise "^2.1.0" + is-stream "^1.1.0" + listr-silent-renderer "^1.1.1" + listr-update-renderer "^0.5.0" + listr-verbose-renderer "^0.5.0" + p-map "^2.0.0" + rxjs "^6.3.3" + +lit-element@^3.3.0: + version "3.3.3" + resolved "https://registry.yarnpkg.com/lit-element/-/lit-element-3.3.3.tgz#10bc19702b96ef5416cf7a70177255bfb17b3209" + integrity sha512-XbeRxmTHubXENkV4h8RIPyr8lXc+Ff28rkcQzw3G6up2xg5E8Zu1IgOWIwBLEQsu3cOVFqdYwiVi0hv0SlpqUA== + dependencies: + "@lit-labs/ssr-dom-shim" "^1.1.0" + "@lit/reactive-element" "^1.3.0" + lit-html "^2.8.0" + +lit-html@^2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/lit-html/-/lit-html-2.8.0.tgz#96456a4bb4ee717b9a7d2f94562a16509d39bffa" + integrity sha512-o9t+MQM3P4y7M7yNzqAyjp7z+mQGa4NS4CxiyLqFPyFWyc4O+nodLrkrxSaCTrla6M5YOLaT3RpbbqjszB5g3Q== + dependencies: + "@types/trusted-types" "^2.0.2" + +lit@2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/lit/-/lit-2.8.0.tgz#4d838ae03059bf9cafa06e5c61d8acc0081e974e" + integrity sha512-4Sc3OFX9QHOJaHbmTMk28SYgVxLN3ePDjg7hofEft2zWlehFL3LiAuapWc4U/kYwMYJSh2hTCPZ6/LIC7ii0MA== + dependencies: + "@lit/reactive-element" "^1.6.0" + lit-element "^3.3.0" + lit-html "^2.8.0" + +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" + integrity sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A== + 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" + +local-pkg@^0.4.2, local-pkg@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.4.3.tgz#0ff361ab3ae7f1c19113d9bb97b98b905dbc4963" + integrity sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g== + +locate-path@7.2.0, locate-path@^7.0.0, locate-path@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-7.2.0.tgz#69cb1779bd90b35ab1e771e1f2f89a202c2a8a8a" + integrity sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA== + dependencies: + p-locate "^6.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" + 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.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + 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.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.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +lodash-es@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" + integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== + +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" + 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" + integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== + +lodash.defaults@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" + integrity sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ== + +lodash.has@^4.5.2: + version "4.5.2" + resolved "https://registry.yarnpkg.com/lodash.has/-/lodash.has-4.5.2.tgz#d19f4dc1095058cccbe2b0cdf4ee0fe4aa37c862" + integrity sha512-rnYUdIo6xRCJnQmbVFEwcxF144erlD+M3YcJUVesflU9paQaE8p+fJDcIQrlMYbxoANFL+AB9hZrzSBBk5PL+g== + +lodash.isarguments@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" + integrity sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg== + +lodash.isempty@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.isempty/-/lodash.isempty-4.4.0.tgz#6f86cbedd8be4ec987be9aaf33c9684db1b31e7e" + integrity sha512-oKMuF3xEeqDltrGMfDxAPGIVMSSRv8tbRSODbrs4KGsRRLEhrW8N8Rd4DRgB2+621hY8A8XwwrTVhXWpxFvMzg== + +lodash.isequal@4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" + integrity sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ== + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== + +lodash.kebabcase@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" + integrity sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g== + +lodash.lowercase@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.lowercase/-/lodash.lowercase-4.3.0.tgz#46515aced4acb0b7093133333af068e4c3b14e9d" + integrity sha512-UcvP1IZYyDKyEL64mmrwoA1AbFu5ahojhTtkOUr1K9dbuxzS9ev8i4TxMMGCqRC9TE8uDaSoufNAXxRPNTseVA== + +lodash.lowerfirst@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/lodash.lowerfirst/-/lodash.lowerfirst-4.3.1.tgz#de3c7b12e02c6524a0059c2f6cb7c5c52655a13d" + integrity sha512-UUKX7VhP1/JL54NXg2aq/E1Sfnjjes8fNYTNkPU8ZmsaVeBvPHKdbNaN79Re5XRL01u6wbq3j0cbYZj71Fcu5w== + +lodash.merge@4.6.2, lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash.pad@^4.5.1: + version "4.5.1" + resolved "https://registry.yarnpkg.com/lodash.pad/-/lodash.pad-4.5.1.tgz#4330949a833a7c8da22cc20f6a26c4d59debba70" + integrity sha512-mvUHifnLqM+03YNzeTBS1/Gr6JRFjd3rRx88FHWUvamVaT9k2O/kXha3yBSOwB9/DTQrSTLJNHvLBBt2FdX7Mg== + +lodash.padend@^4.6.1: + version "4.6.1" + resolved "https://registry.yarnpkg.com/lodash.padend/-/lodash.padend-4.6.1.tgz#53ccba047d06e158d311f45da625f4e49e6f166e" + integrity sha512-sOQs2aqGpbl27tmCS1QNZA09Uqp01ZzWfDUoD+xzTii0E7dSQfRKcRetFwa+uXaxaqL+TKm7CgD2JdKP7aZBSw== + +lodash.padstart@^4.6.1: + version "4.6.1" + resolved "https://registry.yarnpkg.com/lodash.padstart/-/lodash.padstart-4.6.1.tgz#d2e3eebff0d9d39ad50f5cbd1b52a7bce6bb611b" + integrity sha512-sW73O6S8+Tg66eY56DBk85aQzzUJDtpoXFBgELMd5P/SotAguo+1kYO6RuYgXxA4HJH3LFTFPASX6ET6bjfriw== + +lodash.repeat@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/lodash.repeat/-/lodash.repeat-4.1.0.tgz#fc7de8131d8c8ac07e4b49f74ffe829d1f2bec44" + integrity sha512-eWsgQW89IewS95ZOcr15HHCX6FVDxq3f2PNUIng3fyzsPev9imFQxIYdFZ6crl8L56UR6ZlGDLcEb3RZsCSSqw== + +lodash.snakecase@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz#39d714a35357147837aefd64b5dcbb16becd8f8d" + integrity sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw== + +lodash.startcase@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.startcase/-/lodash.startcase-4.4.0.tgz#9436e34ed26093ed7ffae1936144350915d9add8" + integrity sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg== + +lodash.transform@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.transform/-/lodash.transform-4.6.0.tgz#12306422f63324aed8483d3f38332b5f670547a0" + integrity sha512-LO37ZnhmBVx0GvOU/caQuipEh4GN82TcWv3yHlebGDgOxbxiwwzW5Pcx2AcvpIv2WmvmSMoC492yQFNhy/l/UQ== + +lodash.trim@^4.5.1: + version "4.5.1" + resolved "https://registry.yarnpkg.com/lodash.trim/-/lodash.trim-4.5.1.tgz#36425e7ee90be4aa5e27bcebb85b7d11ea47aa57" + integrity sha512-nJAlRl/K+eiOehWKDzoBVrSMhK0K3A3YQsUNXHQa5yIrKBAhsZgSu3KoAFoFT+mEgiyBHddZ0pRk1ITpIp90Wg== + +lodash.trimend@^4.5.1: + version "4.5.1" + resolved "https://registry.yarnpkg.com/lodash.trimend/-/lodash.trimend-4.5.1.tgz#12804437286b98cad8996b79414e11300114082f" + integrity sha512-lsD+k73XztDsMBKPKvzHXRKFNMohTjoTKIIo4ADLn5dA65LZ1BqlAvSXhR2rPEC3BgAUQnzMnorqDtqn2z4IHA== + +lodash.trimstart@^4.5.1: + version "4.5.1" + resolved "https://registry.yarnpkg.com/lodash.trimstart/-/lodash.trimstart-4.5.1.tgz#8ff4dec532d82486af59573c39445914e944a7f1" + integrity sha512-b/+D6La8tU76L/61/aN0jULWHkT0EeJCmVstPBn/K9MtD2qBW83AsBNrr63dKuWYwVMO7ucv13QNO/Ek/2RKaQ== + +lodash.truncate@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" + integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== + +lodash.uppercase@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.uppercase/-/lodash.uppercase-4.3.0.tgz#c404abfd1469f93931f9bb24cf6cc7d57059bc73" + integrity sha512-+Nbnxkj7s8K5U8z6KnEYPGUOGp3woZbB7Ecs7v3LkkjLQSm2kP9SKIILitN1ktn2mB/tmM9oSlku06I+/lH7QA== + +lodash.upperfirst@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz#1365edf431480481ef0d1c68957a5ed99d49f7ce" + integrity sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg== + +lodash@4.17.20: + version "4.17.20" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" + integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== + +lodash@4.17.21, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@~4.17.0: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +log-process-errors@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/log-process-errors/-/log-process-errors-8.0.0.tgz#f88a9556e4914037ad97ceee24b148dc1b566dfd" + integrity sha512-+SNGqNC1gCMJfhwYzAHr/YgNT/ZJc+V2nCkvtPnjrENMeCe+B/jgShBW0lmWoh6uVV2edFAPc/IUOkDdsjTbTg== + dependencies: + colors-option "^3.0.0" + figures "^4.0.0" + filter-obj "^3.0.0" + jest-validate "^27.4.2" + map-obj "^5.0.0" + moize "^6.1.0" + semver "^7.3.5" + +log-symbols@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920" + integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA== + dependencies: + chalk "^4.0.0" + +log-symbols@4.1.0, log-symbols@^4.0.0, log-symbols@^4.1.0: + version "4.1.0" + 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" + +log-symbols@5.1.0, log-symbols@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-5.1.0.tgz#a20e3b9a5f53fac6aeb8e2bb22c07cf2c8f16d93" + integrity sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA== + dependencies: + chalk "^5.0.0" + is-unicode-supported "^1.1.0" + +log-symbols@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" + integrity sha512-mmPrW0Fh2fxOzdBbFv4g1m6pR72haFLPJ2G5SJEELf1y+iaQrDG6cWCPjy54RHYbZAt7X+ls690Kw62AdWXBzQ== + dependencies: + chalk "^1.0.0" + +log-symbols@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-3.0.0.tgz#f3a08516a5dea893336a7dee14d18a1cfdab77c4" + integrity sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ== + dependencies: + chalk "^2.4.2" + +log-update@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-5.0.1.tgz#9e928bf70cb183c1f0c9e91d9e6b7115d597ce09" + integrity sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw== + dependencies: + ansi-escapes "^5.0.0" + cli-cursor "^4.0.0" + slice-ansi "^5.0.0" + strip-ansi "^7.0.1" + wrap-ansi "^8.0.1" + +log-update@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-2.3.0.tgz#88328fd7d1ce7938b29283746f0b1bc126b24708" + integrity sha512-vlP11XfFGyeNQlmEn9tJ66rEW1coA/79m5z6BCkudjbAGE83uhAcGYrBFwfs3AdLiLzGRusRPAbSPK9xZteCmg== + dependencies: + ansi-escapes "^3.0.0" + cli-cursor "^2.0.0" + wrap-ansi "^3.0.1" + +log-update@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1" + integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== + dependencies: + ansi-escapes "^4.3.0" + cli-cursor "^3.1.0" + slice-ansi "^4.0.0" + wrap-ansi "^6.2.0" + +logform@^2.3.2, logform@^2.4.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/logform/-/logform-2.6.0.tgz#8c82a983f05d6eaeb2d75e3decae7a768b2bf9b5" + integrity sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ== + dependencies: + "@colors/colors" "1.6.0" + "@types/triple-beam" "^1.3.2" + fecha "^4.2.0" + ms "^2.1.1" + safe-stable-stringify "^2.3.1" + triple-beam "^1.3.0" + +logplease@^1.2.15: + version "1.2.15" + resolved "https://registry.yarnpkg.com/logplease/-/logplease-1.2.15.tgz#3da442e93751a5992cc19010a826b08d0293c48a" + integrity sha512-jLlHnlsPSJjpwUfcNyUxXCl33AYg2cHhIf9QhGL2T4iPT0XPB+xP1LRKFPgIg1M/sg9kAJvy94w9CzBNrfnstA== + +long@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/long/-/long-2.4.0.tgz#9fa180bb1d9500cdc29c4156766a1995e1f4524f" + integrity sha512-ijUtjmO/n2A5PaosNG9ZGDsQ3vxJg7ZW8vsY8Kp0f2yIZWhSJvjmegV7t+9RPQKxKrvj8yKGehhS+po14hPLGQ== + +long@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" + integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== + +long@^5.0.0, long@^5.2.0: + version "5.2.3" + resolved "https://registry.yarnpkg.com/long/-/long-5.2.3.tgz#a3ba97f3877cf1d778eccbcb048525ebb77499e1" + integrity sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q== + +looper@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/looper/-/looper-2.0.0.tgz#66cd0c774af3d4fedac53794f742db56da8f09ec" + integrity sha512-6DzMHJcjbQX/UPHc1rRCBfKlLwDkvuGZ715cIR36wSdYqWXFT35uLXq5P/2orl3tz+t+VOVPxw4yPinQlUDGDQ== + +looper@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/looper/-/looper-3.0.0.tgz#2efa54c3b1cbaba9b94aee2e5914b0be57fbb749" + integrity sha512-LJ9wplN/uSn72oJRsXTx+snxPet5c8XiZmOKCm906NVYu+ag6SB6vUcnJcWxgnl2NfbIyeobAn7Bwv6xRj2XJg== + +loose-envify@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +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.1" + +lower-case-first@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/lower-case-first/-/lower-case-first-2.0.2.tgz#64c2324a2250bf7c37c5901e76a5b5309301160b" + integrity sha512-EVm/rR94FJTZi3zefZ82fLWab+GX14LJN4HrWBcuo6Evmsl9hEfnqxgcHCKb9q+mNf6EVdsjx/qucYFIIB84pg== + dependencies: + tslib "^2.0.3" + +lower-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" + integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== + dependencies: + tslib "^2.0.3" + +lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" + integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== + +lowercase-keys@^2.0.0: + version "2.0.0" + 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.yarnpkg.com/lowercase-keys/-/lowercase-keys-3.0.0.tgz#c5e7d442e37ead247ae9db117a9d0a467c89d4f2" + integrity sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ== + +lru-cache@5.1.1, lru-cache@^5.1.1: + version "5.1.1" + 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@^10.0.2, "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" + integrity sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag== + +lru-cache@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-3.2.0.tgz#71789b3b7f5399bec8565dda38aa30d2a097efee" + integrity sha512-91gyOKTc2k66UG6kHiH4h3S2eltcPwE1STVfMYC/NG+nZwf8IIuiamfmpGZjpbbxzSyEJaLC0tNSmhjlQUTJow== + dependencies: + pseudomap "^1.0.1" + +lru-cache@^6.0.0: + version "6.0.0" + 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_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.1.2, ltgt@~2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ltgt/-/ltgt-2.2.1.tgz#f35ca91c493f7b73da0e07495304f17b31f87ee5" + integrity sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA== + +ltgt@~2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ltgt/-/ltgt-2.1.3.tgz#10851a06d9964b971178441c23c9e52698eece34" + integrity sha512-5VjHC5GsENtIi5rbJd+feEpDKhfr7j0odoUR2Uh978g+2p93nd5o34cTjQWohXsPsCZeqoDnIqEf88mPCe0Pfw== + +luxon@^3.1.1, luxon@^3.2.1: + version "3.4.4" + resolved "https://registry.yarnpkg.com/luxon/-/luxon-3.4.4.tgz#cf20dc27dc532ba41a169c43fdcc0063601577af" + integrity sha512-zobTr7akeGHnv7eBOXcRgMeCP6+uyYsczwmeRCauvpvaAltgNyTbLH/+VaEAPUeWBT+1GuNmz4wC/6jtQzbbVA== + +maci-common@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/maci-common/-/maci-common-1.1.2.tgz#8105633d2425a3ce7cf7b3d6700cf82987287b08" + integrity sha512-KFaKDT6+QlfAX3B3EZVmitdQ2SD76qouQneFwm7OFfu4lF4RWWEak8J4F/lbS8fqJ1wG4PGTgTv7H9swJycCBw== + +macos-release@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-3.2.0.tgz#dcee82b6a4932971b1538dbf6f3aabc4a903b613" + integrity sha512-fSErXALFNsnowREYZ49XCdOHF8wOPWuFOGQrAhP7x5J/BqQv+B02cNsTykGpDgRVx43EKg++6ANmTaGTtW+hUA== + +magic-string@^0.26.7: + version "0.26.7" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.26.7.tgz#caf7daf61b34e9982f8228c4527474dac8981d6f" + integrity sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow== + dependencies: + sourcemap-codec "^1.4.8" + +magic-string@^0.27.0: + version "0.27.0" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.27.0.tgz#e4a3413b4bab6d98d2becffd48b4a257effdbbf3" + integrity sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA== + dependencies: + "@jridgewell/sourcemap-codec" "^1.4.13" + +magic-string@^0.30.3, magic-string@^0.30.5: + version "0.30.5" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.5.tgz#1994d980bd1c8835dc6e78db7cbd4ae4f24746f9" + integrity sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA== + dependencies: + "@jridgewell/sourcemap-codec" "^1.4.15" + +make-dir@^3.0.0, make-dir@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + +make-dir@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e" + integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw== + dependencies: + semver "^7.5.3" + +make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +map-cache@^0.2.0, map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg== + +map-obj@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + integrity sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg== + +map-obj@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a" + integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== + +map-obj@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-5.0.2.tgz#174ad9f7e5e4e777a219126d9a734ff3e14a1c68" + integrity sha512-K6K2NgKnTXimT3779/4KxSvobxOtMmx1LBZ3NwRxT/MDIR3Br/fQ4Q+WCX5QxjyUR8zg5+RV9Tbf2c5pAWTD2A== + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w== + dependencies: + object-visit "^1.0.0" + +markdown-it-link-attributes@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/markdown-it-link-attributes/-/markdown-it-link-attributes-4.0.1.tgz#25751f2cf74fd91f0a35ba7b3247fa45f2056d88" + integrity sha512-pg5OK0jPLg62H4k7M9mRJLT61gUp9nvG0XveKYHMOOluASo9OEF13WlXrpAp2aj35LbedAy3QOCgQCw0tkLKAQ== + +markdown-it@^13.0.1: + version "13.0.2" + resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-13.0.2.tgz#1bc22e23379a6952e5d56217fbed881e0c94d536" + integrity sha512-FtwnEuuK+2yVU7goGn/MJ0WBZMM9ZPgU9spqlFs7/A/pDIUNSOQZhUgOqYCficIuR2QaFnrt8LHqBWsbTAoI5w== + dependencies: + argparse "^2.0.1" + entities "~3.0.1" + linkify-it "^4.0.1" + mdurl "^1.0.1" + uc.micro "^1.0.5" + +maxstache-stream@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/maxstache-stream/-/maxstache-stream-1.0.4.tgz#9c7f5cab7e5fdd2d90da86143b4e9631ea328040" + integrity sha512-v8qlfPN0pSp7bdSoLo1NTjG43GXGqk5W2NWFnOCq2GlmFFqebGzPCjLKSbShuqIOVorOtZSAy7O/S1OCCRONUw== + dependencies: + maxstache "^1.0.0" + pump "^1.0.0" + split2 "^1.0.0" + through2 "^2.0.0" + +maxstache@^1.0.0: + version "1.0.7" + resolved "https://registry.yarnpkg.com/maxstache/-/maxstache-1.0.7.tgz#2231d5180ba783d5ecfc31c45fedac7ae4276984" + integrity sha512-53ZBxHrZM+W//5AcRVewiLpDunHnucfdzZUGz54Fnvo4tE+J3p8EL66kBrs2UhBXvYKTWckWYYWBqJqoTcenqg== + +mcl-wasm@^0.7.1: + version "0.7.9" + resolved "https://registry.yarnpkg.com/mcl-wasm/-/mcl-wasm-0.7.9.tgz#c1588ce90042a8700c3b60e40efb339fc07ab87f" + integrity sha512-iJIUcQWA88IJB/5L15GnJVnSQJmf/YaxxV6zRavv83HILHaJQb6y0iFyDMdDO0gN8X37tdxmAOrH/P8B6RB8sQ== + +md5-hex@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/md5-hex/-/md5-hex-3.0.1.tgz#be3741b510591434b2784d79e556eefc2c9a8e5c" + integrity sha512-BUiRtTtV39LIJwinWBjqVsU9xhdnz7/i889V859IBFpuqGAj6LuOvHv5XLbgZ2R7ptJoJaEcxkv88/h25T7Ciw== + dependencies: + blueimp-md5 "^2.10.0" + +md5.js@^1.3.4: + version "1.3.5" + 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" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +mdurl@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" + integrity sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g== + +media-typer@0.3.0: + version "0.3.0" + 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.yarnpkg.com/memdown/-/memdown-1.4.1.tgz#b4e4e192174664ffbae41361aa500f3119efe215" + 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@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/memdown/-/memdown-3.0.0.tgz#93aca055d743b20efc37492e9e399784f2958309" + integrity sha512-tbV02LfZMWLcHcq4tw++NuqMO+FZX8tNJEiD2aNRm48ZZusVg5N8NART+dmBkepJVye986oixErf7jfXboMGMA== + 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" + +memoize-one@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-6.0.0.tgz#b2591b871ed82948aee4727dc6abceeeac8c1045" + integrity sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw== + +memory-level@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/memory-level/-/memory-level-1.0.0.tgz#7323c3fd368f9af2f71c3cd76ba403a17ac41692" + integrity sha512-UXzwewuWeHBz5krr7EvehKcmLFNoXxGcvuYhC41tRnkrTbJohtS7kVn9akmgirtRygg+f7Yjsfi8Uu5SGSQ4Og== + dependencies: + abstract-level "^1.0.0" + functional-red-black-tree "^1.0.1" + module-error "^1.0.1" + +memorystream@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" + integrity sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw== + +meow@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/meow/-/meow-9.0.0.tgz#cd9510bc5cac9dee7d03c73ee1f9ad959f4ea364" + integrity sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ== + dependencies: + "@types/minimist" "^1.2.0" + camelcase-keys "^6.2.2" + decamelize "^1.2.0" + decamelize-keys "^1.1.0" + hard-rejection "^2.1.0" + minimist-options "4.1.0" + normalize-package-data "^3.0.0" + read-pkg-up "^7.0.1" + redent "^3.0.0" + trim-newlines "^3.0.0" + type-fest "^0.18.0" + yargs-parser "^20.2.3" + +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== + +merge-options@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-options/-/merge-options-2.0.0.tgz#36ca5038badfc3974dbde5e58ba89d3df80882c3" + integrity sha512-S7xYIeWHl2ZUKF7SDeBhGg6rfv5bKxVBdk95s/I7wVF8d+hjLSztJ/B271cnUiF6CAFduEQ5Zn3HYwAjT16DlQ== + dependencies: + is-plain-obj "^2.0.0" + +merge-options@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/merge-options/-/merge-options-3.0.4.tgz#84709c2aa2a4b24c1981f66c179fe5565cc6dbb7" + integrity sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ== + dependencies: + is-plain-obj "^2.1.0" + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +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@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/merkle-patricia-tree/-/merkle-patricia-tree-3.0.0.tgz#448d85415565df72febc33ca362b8b614f5a58f8" + integrity sha512-soRaMuNf/ILmw3KWbybaCjhx86EYeBbD8ph0edQCTed0JN/rxDt1EBN52Ajre3VyGo+91f8+/rfPIRQnnGMqmQ== + 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" + +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" + 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" + +meros@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/meros/-/meros-1.3.0.tgz#c617d2092739d55286bf618129280f362e6242f2" + integrity sha512-2BNGOimxEz5hmjUG2FwoxCt5HN7BXdaWyFqEwxPTrJzVdABtrL4TiHTcsWSFAxPQ/tOnEaQEJh3qWq71QRMY+w== + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== + +micro-api-client@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/micro-api-client/-/micro-api-client-3.3.0.tgz#52dd567d322f10faffe63d19d4feeac4e4ffd215" + integrity sha512-y0y6CUB9RLVsy3kfgayU28746QrNMpSm9O/AYGNsBgOkJr/X/Jk0VLGoO8Ude7Bpa8adywzF+MzXNZRFRsNPhg== + +micro-ftch@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/micro-ftch/-/micro-ftch-0.3.1.tgz#6cb83388de4c1f279a034fb0cf96dfc050853c5f" + integrity sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg== + +micro-memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/micro-memoize/-/micro-memoize-4.1.2.tgz#ce719c1ba1e41592f1cd91c64c5f41dcbf135f36" + integrity sha512-+HzcV2H+rbSJzApgkj0NdTakkC+bnyeiUxgT6/m7mjcz1CmM22KYFKp+EVj1sWe4UYcnriJr5uqHQD/gMHLD+g== + +micromatch@^3.1.10, micromatch@^3.1.4: + version "3.1.10" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== + 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.2, micromatch@^4.0.4, micromatch@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + +miller-rabin@^4.0.0: + version "4.0.1" + 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" + brorand "^1.0.1" + +mime-db@1.52.0, mime-db@^1.28.0: + version "1.52.0" + 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.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.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mime@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-3.0.0.tgz#b374550dca3a0c18443b0c950a6a58f1931cf7a7" + integrity sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A== + +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mimic-fn@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" + integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== + +mimic-response@^1.0.0, mimic-response@^1.0.1: + version "1.0.1" + 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.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" + integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== + +mimic-response@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-4.0.0.tgz#35468b19e7c75d10f5165ea25e75a5ceea7cf70f" + integrity sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg== + +min-document@^2.19.0: + version "2.19.0" + 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" + +min-indent@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" + integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== + +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" + 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" + integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== + +minimatch@3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimatch@4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-4.2.3.tgz#b4dcece1d674dee104bb0fb833ebb85a78cbbca6" + integrity sha512-lIUdtK5hdofgCTu3aT0sOaHsYR37viUuIc0rwnnDXImbwFRcumyLMeZaM0t0I/fgxS6s6JMfu0rLD1Wz9pv1ng== + 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@^3.0.2, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: + version "3.1.2" + 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, minimatch@^5.1.0, minimatch@^5.1.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@^8.0.2: + version "8.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-8.0.4.tgz#847c1b25c014d4e9a7f68aaf63dedd668a626229" + integrity sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^9.0.0, minimatch@^9.0.3: + 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-options@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" + integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== + dependencies: + arrify "^1.0.1" + is-plain-obj "^1.1.0" + kind-of "^6.0.3" + +minimist@1.2.8, minimist@^1.1.0, minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6, minimist@~1.2.8: + version "1.2.8" + 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.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" + integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== + dependencies: + safe-buffer "^5.1.2" + yallist "^3.0.0" + +minipass@^3.0.0: + version "3.3.6" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" + integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== + dependencies: + yallist "^4.0.0" + +minipass@^4.2.4: + version "4.2.8" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-4.2.8.tgz#f0010f64393ecfc1d1ccb5f582bcaf45f48e1a3a" + integrity sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ== + +minipass@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" + integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== + +"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" + integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== + +minizlib@^1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" + integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== + dependencies: + minipass "^2.9.0" + +minizlib@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" + integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== + dependencies: + minipass "^3.0.0" + yallist "^4.0.0" + +mixin-deep@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" + integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +mkdirp-promise@^5.0.1: + version "5.0.1" + 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.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.1: + version "0.5.6" + 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.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +mlly@^1.0.0, mlly@^1.1.0, mlly@^1.2.0, mlly@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.4.2.tgz#7cf406aa319ff6563d25da6b36610a93f2a8007e" + integrity sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg== + dependencies: + acorn "^8.10.0" + pathe "^1.1.1" + pkg-types "^1.0.3" + ufo "^1.3.0" + +mnemonist@^0.38.0: + version "0.38.5" + 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: + version "10.2.0" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.2.0.tgz#1fd4a7c32ba5ac372e03a17eef435bd00e5c68b8" + 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" + +mocha@^8.2.1: + version "8.4.0" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-8.4.0.tgz#677be88bf15980a3cae03a73e10a0fc3997f0cff" + integrity sha512-hJaO0mwDXmZS4ghXsvPVriOhsxQ7ofcpQdm8dE+jISUOKopitvnXFQmpRR7jd2K6VBG6E26gU3IAbXXGIbu4sQ== + dependencies: + "@ungap/promise-all-settled" "1.1.2" + ansi-colors "4.1.1" + browser-stdout "1.3.1" + chokidar "3.5.1" + debug "4.3.1" + diff "5.0.0" + escape-string-regexp "4.0.0" + find-up "5.0.0" + glob "7.1.6" + growl "1.10.5" + he "1.2.0" + js-yaml "4.0.0" + log-symbols "4.0.0" + minimatch "3.0.4" + ms "2.1.3" + nanoid "3.1.20" + serialize-javascript "5.0.1" + strip-json-comments "3.1.1" + supports-color "8.1.1" + which "2.0.2" + wide-align "1.1.3" + workerpool "6.1.0" + yargs "16.2.0" + yargs-parser "20.2.4" + yargs-unparser "2.0.0" + +mock-fs@^4.1.0: + version "4.14.0" + resolved "https://registry.yarnpkg.com/mock-fs/-/mock-fs-4.14.0.tgz#ce5124d2c601421255985e6e94da80a7357b1b18" + integrity sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw== + +mock-property@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/mock-property/-/mock-property-1.0.3.tgz#3e37c50a56609d548cabd56559fde3dd8767b10c" + 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-alias@^2.2.2: + version "2.2.3" + resolved "https://registry.yarnpkg.com/module-alias/-/module-alias-2.2.3.tgz#ec2e85c68973bda6ab71ce7c93b763ec96053221" + integrity sha512-23g5BFj4zdQL/b6tor7Ji+QY4pEfNH784BMslY9Qb0UnJWRAt+lQGLYmRaM0KDBwIG23ffEBELhZDP2rhi9f/Q== + +module-definition@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/module-definition/-/module-definition-5.0.1.tgz#62d1194e5d5ea6176b7dc7730f818f466aefa32f" + integrity sha512-kvw3B4G19IXk+BOXnYq/D/VeO9qfHaapMeuS7w7sNUqmGaA6hywdFHMi+VWeR9wUScXM7XjoryTffCZ5B0/8IA== + dependencies: + ast-module-types "^5.0.0" + node-source-walk "^6.0.1" + +module-details-from-path@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/module-details-from-path/-/module-details-from-path-1.0.3.tgz#114c949673e2a8a35e9d35788527aa37b679da2b" + integrity sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A== + +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" + integrity sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA== + +moize@^6.1.0, moize@^6.1.3: + version "6.1.6" + resolved "https://registry.yarnpkg.com/moize/-/moize-6.1.6.tgz#ac2e723e74b951875fe2c0c3433405c2b098c3e6" + integrity sha512-vSKdIUO61iCmTqhdoIDrqyrtp87nWZUmBPniNjO0fX49wEYmyDO4lvlnFXiGcaH1JLE/s/9HbiK4LSHsbiUY6Q== + dependencies: + fast-equals "^3.0.1" + micro-memoize "^4.1.2" + +motion@10.16.2: + version "10.16.2" + resolved "https://registry.yarnpkg.com/motion/-/motion-10.16.2.tgz#7dc173c6ad62210a7e9916caeeaf22c51e598d21" + integrity sha512-p+PurYqfUdcJZvtnmAqu5fJgV2kR0uLFQuBKtLeFVTrYEVllI99tiOTSefVNYuip9ELTEkepIIDftNdze76NAQ== + dependencies: + "@motionone/animation" "^10.15.1" + "@motionone/dom" "^10.16.2" + "@motionone/svelte" "^10.16.2" + "@motionone/types" "^10.15.1" + "@motionone/utils" "^10.15.1" + "@motionone/vue" "^10.16.2" + +move-file@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/move-file/-/move-file-3.1.0.tgz#ea9675d54852708242462bfe60d56b3c3854cdf7" + integrity sha512-4aE3U7CCBWgrQlQDMq8da4woBWDGHioJFiOZ8Ie6Yq2uwYQ9V2kGhTz4x3u6Wc+OU17nw0yc3rJ/lQ4jIiPe3A== + dependencies: + path-exists "^5.0.0" + +mri@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" + integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + +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: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +muggle-string@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/muggle-string/-/muggle-string-0.3.1.tgz#e524312eb1728c63dd0b2ac49e3282e6ed85963a" + integrity sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg== + +multiaddr-to-uri@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/multiaddr-to-uri/-/multiaddr-to-uri-8.0.0.tgz#65efe4b1f9de5f6b681aa42ff36a7c8db7625e58" + integrity sha512-dq4p/vsOOUdVEd1J1gl+R2GFrXJQH8yjLtz4hodqdVbieg39LvBOdMQRdQnfbg5LSM/q1BYNVf5CBbwZFFqBgA== + dependencies: + multiaddr "^10.0.0" + +multiaddr@^10.0.0: + version "10.0.1" + resolved "https://registry.yarnpkg.com/multiaddr/-/multiaddr-10.0.1.tgz#0d15848871370860a4d266bb44d93b3dac5d90ef" + integrity sha512-G5upNcGzEGuTHkzxezPrrD6CaIHR9uo+7MwqhNVcXTs33IInon4y7nMiGxl2CY5hG7chvYQUQhz5V52/Qe3cbg== + dependencies: + dns-over-http-resolver "^1.2.3" + err-code "^3.0.1" + is-ip "^3.1.0" + multiformats "^9.4.5" + uint8arrays "^3.0.0" + varint "^6.0.0" + +multibase@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.7.0.tgz#1adfc1c50abe05eefeb5091ac0c2728d6b84581b" + integrity sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg== + dependencies: + base-x "^3.0.8" + buffer "^5.5.0" + +multibase@^1.0.0, multibase@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/multibase/-/multibase-1.0.1.tgz#4adbe1de0be8a1ab0274328b653c3f1903476724" + integrity sha512-KcCxpBVY8fdVKu4dJMAahq4F/2Z/9xqEjIiR7PiMe7LRGeorFn2NLmicN6nLBCqQvft6MG2Lc9X5P0IdyvnxEw== + dependencies: + base-x "^3.0.8" + buffer "^5.5.0" + +multibase@~0.6.0: + version "0.6.1" + resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.6.1.tgz#b76df6298536cc17b9f6a6db53ec88f85f8cc12b" + integrity sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw== + dependencies: + base-x "^3.0.8" + buffer "^5.5.0" + +multicodec@^0.5.5: + version "0.5.7" + 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, multicodec@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-1.0.4.tgz#46ac064657c40380c28367c90304d8ed175a714f" + integrity sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg== + dependencies: + buffer "^5.6.0" + varint "^5.0.0" + +multiformats@^9.4.13, multiformats@^9.4.2, multiformats@^9.4.5, multiformats@^9.5.4: + version "9.9.0" + resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-9.9.0.tgz#c68354e7d21037a8f1f8833c8ccd68618e8f1d37" + integrity sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg== + +multihashes@^0.4.15, multihashes@~0.4.15: + version "0.4.21" + resolved "https://registry.yarnpkg.com/multihashes/-/multihashes-0.4.21.tgz#dc02d525579f334a7909ade8a122dabb58ccfcb5" + integrity sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw== + dependencies: + buffer "^5.5.0" + multibase "^0.7.0" + varint "^5.0.0" + +multihashes@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/multihashes/-/multihashes-1.0.1.tgz#a89415d68283cf6287c6e219e304e75ce7fb73fe" + integrity sha512-S27Tepg4i8atNiFaU5ZOm3+gl3KQlUanLs/jWcBxQHFttgq+5x1OgbQmf2d8axJ/48zYGBd/wT9d723USMFduw== + dependencies: + buffer "^5.6.0" + multibase "^1.0.1" + varint "^5.0.0" + +multihashing-async@^0.8.0, multihashing-async@~0.8.0, multihashing-async@~0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/multihashing-async/-/multihashing-async-0.8.2.tgz#3d5da05df27d83be923f6d04143a0954ff87f27f" + integrity sha512-2lKa1autuCy8x7KIEj9aVNbAb3aIMRFYIwN7mq/zD4pxgNIVgGlm+f6GKY4880EOF2Y3GktHYssRy7TAJQ2DyQ== + dependencies: + blakejs "^1.1.0" + buffer "^5.4.3" + err-code "^2.0.0" + js-sha3 "^0.8.0" + multihashes "^1.0.1" + murmurhash3js-revisited "^3.0.0" + +multiparty@4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/multiparty/-/multiparty-4.2.3.tgz#6b14981badb5ad3f0929622868751810368d4633" + integrity sha512-Ak6EUJZuhGS8hJ3c2fY6UW5MbkGUPMBEGd13djUzoY/BHqV/gTuFWtC6IuVA7A2+v3yjBS6c4or50xhzTQZImQ== + dependencies: + http-errors "~1.8.1" + safe-buffer "5.2.1" + uid-safe "2.1.5" + +murmurhash3js-revisited@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/murmurhash3js-revisited/-/murmurhash3js-revisited-3.0.0.tgz#6bd36e25de8f73394222adc6e41fa3fac08a5869" + integrity sha512-/sF3ee6zvScXMb1XFJ8gDsSnY+X8PbOyjIuBhtgis10W2Jx4ZjIhikUCIF9c4gpJxVnQIsPAFrSwTCuAjicP6g== + +mustache@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/mustache/-/mustache-4.2.0.tgz#e5892324d60a12ec9c2a73359edca52972bf6f64" + integrity sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ== + +mute-stream@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" + integrity sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ== + +mute-stream@0.0.8, mute-stream@~0.0.4: + version "0.0.8" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" + integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== + +mz@^2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" + integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== + dependencies: + any-promise "^1.0.0" + object-assign "^4.0.1" + thenify-all "^1.0.0" + +nan@^2.16.0, nan@^2.2.1: + version "2.18.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.18.0.tgz#26a6faae7ffbeb293a39660e88a76b82e30b7554" + integrity sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w== + +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" + integrity sha512-9MqxMH/BSJC7dnLsEMPyfN5Dvoo49IsPFYMcHw3Bcfc2kN0lpHRBSzlMSVx4HGyJ7s9B31CyBTVehWJoQ8Ctew== + +nanoassert@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/nanoassert/-/nanoassert-2.0.0.tgz#a05f86de6c7a51618038a620f88878ed1e490c09" + integrity sha512-7vO7n28+aYO4J+8w96AzhmU8G+Y/xpPDJz/se19ICsqj/momRbb9mh9ZUtkoJ5X3nTnPdhEJyc0qnM6yAsHBaA== + +nanoid@3.1.20: + version "3.1.20" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.20.tgz#badc263c6b1dcf14b71efaa85f6ab4c1d6cfc788" + integrity sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw== + +nanoid@3.3.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25" + integrity sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w== + +nanoid@^2.1.11: + version "2.1.11" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-2.1.11.tgz#ec24b8a758d591561531b4176a01e3ab4f0f0280" + integrity sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA== + +nanoid@^3.0.2, nanoid@^3.1.20, nanoid@^3.1.23, nanoid@^3.3.6: + version "3.3.7" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" + integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== + +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== + 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.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.yarnpkg.com/napi-macros/-/napi-macros-2.0.0.tgz#2b6bae421e7b96eb687aa6c77a7858640670001b" + integrity sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg== + +napi-wasm@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/napi-wasm/-/napi-wasm-1.1.0.tgz#bbe617823765ae9c1bc12ff5942370eae7b2ba4e" + integrity sha512-lHwIAJbmLSjF9VDRm9GoVOy9AGp3aIvkjv+Kvz9h16QR3uSVYH78PNQUnT2U4X53mhlnV2M7wrhibQ3GHicDmg== + +native-abort-controller@^1.0.3, native-abort-controller@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/native-abort-controller/-/native-abort-controller-1.0.4.tgz#39920155cc0c18209ff93af5bc90be856143f251" + integrity sha512-zp8yev7nxczDJMoP6pDxyD20IU0T22eX8VwN2ztDccKvSZhRaV33yP1BGwKSZfXuqWUzsXopVFjBdau9OOAwMQ== + +native-fetch@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/native-fetch/-/native-fetch-3.0.0.tgz#06ccdd70e79e171c365c75117959cf4fe14a09bb" + integrity sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw== + +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" + 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" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== + +natural-orderby@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/natural-orderby/-/natural-orderby-2.0.3.tgz#8623bc518ba162f8ff1cdb8941d74deb0fdcc016" + integrity sha512-p7KTHxU0CUrcOXe62Zfrb5Z13nLvPhSWR/so3kFulUQU0sgUll2Z0LwpsLN351eOOD+hRGu/F1g+6xDfPeD++Q== + +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +nested-error-stacks@^2.0.0, nested-error-stacks@^2.1.0, nested-error-stacks@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/nested-error-stacks/-/nested-error-stacks-2.1.1.tgz#26c8a3cee6cc05fbcf1e333cd2fc3e003326c0b5" + integrity sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw== + +netlify-cli@^16.2.0: + version "16.9.3" + resolved "https://registry.yarnpkg.com/netlify-cli/-/netlify-cli-16.9.3.tgz#c26acc6fc6238641ae629bb6ffdeefc39ffe5907" + integrity sha512-BsdDMUSzURdAwvda5+tETWFZc+eBTV8h4a9Vto92f5JN8x2nky5WRvniajMm2S2zq+tXlSYUHi98jwIC4B5kTw== + dependencies: + "@bugsnag/js" "7.20.2" + "@fastify/static" "6.10.2" + "@netlify/build" "29.23.4" + "@netlify/build-info" "7.10.1" + "@netlify/config" "20.9.0" + "@netlify/edge-bundler" "9.4.1" + "@netlify/local-functions-proxy" "1.1.1" + "@netlify/zip-it-and-ship-it" "9.25.4" + "@octokit/rest" "19.0.13" + ansi-escapes "6.2.0" + ansi-styles "6.2.1" + ansi-to-html "0.7.2" + ascii-table "0.0.9" + backoff "2.5.0" + better-opn "3.0.2" + boxen "7.1.1" + chalk "5.2.0" + chokidar "3.5.3" + ci-info "3.8.0" + clean-deep "3.4.0" + commander "10.0.1" + comment-json "4.2.3" + concordance "5.0.4" + configstore "6.0.0" + content-type "1.0.5" + cookie "0.5.0" + copy-template-dir "1.4.0" + cron-parser "4.8.1" + debug "4.3.4" + decache "4.6.2" + dot-prop "7.2.0" + dotenv "16.0.3" + env-paths "3.0.0" + envinfo "7.8.1" + etag "1.8.1" + execa "5.1.1" + express "4.18.2" + express-logging "1.1.1" + extract-zip "2.0.1" + fastest-levenshtein "1.0.16" + fastify "4.17.0" + find-up "6.3.0" + flush-write-stream "2.0.0" + folder-walker "3.2.0" + from2-array "0.0.4" + fuzzy "0.1.3" + get-port "5.1.1" + gh-release-fetch "4.0.3" + git-repo-info "2.1.1" + gitconfiglocal "2.1.0" + hasbin "1.2.3" + hasha "5.2.2" + http-proxy "1.18.1" + http-proxy-middleware "2.0.6" + https-proxy-agent "5.0.1" + inquirer "6.5.2" + inquirer-autocomplete-prompt "1.4.0" + is-docker "3.0.0" + is-stream "3.0.0" + is-wsl "2.2.0" + isexe "2.0.0" + js-yaml "^4.1.0" + jsonwebtoken "9.0.1" + jwt-decode "3.1.2" + lambda-local "2.1.2" + listr "0.14.3" + locate-path "7.2.0" + lodash "4.17.21" + log-symbols "5.1.0" + log-update "5.0.1" + minimist "1.2.8" + multiparty "4.2.3" + netlify "13.1.10" + netlify-headers-parser "7.1.2" + netlify-redirect-parser "14.2.0" + netlify-redirector "0.5.0" + node-fetch "2.6.12" + node-version-alias "3.4.1" + ora "6.3.1" + p-filter "3.0.0" + p-map "5.5.0" + p-wait-for "5.0.2" + parallel-transform "1.2.0" + parse-github-url "1.0.2" + parse-gitignore "2.0.0" + path-key "4.0.0" + prettyjson "1.2.5" + pump "3.0.0" + raw-body "2.5.2" + read-pkg-up "9.1.0" + semver "7.5.4" + source-map-support "0.5.21" + strip-ansi-control-characters "2.0.0" + tabtab "3.0.2" + tempy "3.0.0" + terminal-link "3.0.0" + through2-filter "3.0.0" + through2-map "3.0.0" + to-readable-stream "3.0.0" + toml "3.0.0" + ulid "2.3.0" + unixify "1.0.0" + update-notifier "6.0.2" + uuid "9.0.0" + wait-port "1.0.4" + write-file-atomic "5.0.1" + zod "^3.22.4" + +netlify-headers-parser@7.1.2, netlify-headers-parser@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/netlify-headers-parser/-/netlify-headers-parser-7.1.2.tgz#5b2f76e030eb8ba423c370c4e4814ddcc9c65e3b" + integrity sha512-DfoboA8PrcLXMan3jIVyLsQtKS+nepKDx6WwZKk5EQDMr2AJoBPCtSHTOLuABzkde1UXdOITf3snmcAmzlNLqw== + dependencies: + escape-string-regexp "^5.0.0" + fast-safe-stringify "^2.0.7" + is-plain-obj "^4.0.0" + map-obj "^5.0.0" + path-exists "^5.0.0" + toml "^3.0.0" + +netlify-redirect-parser@14.2.0, netlify-redirect-parser@^14.2.0: + version "14.2.0" + resolved "https://registry.yarnpkg.com/netlify-redirect-parser/-/netlify-redirect-parser-14.2.0.tgz#8da1b911b43ea51e0c5fa5dd1401157d1301a8f5" + integrity sha512-3Mi7sMH7XXZhjvXx/5RtJ/rU/E6zKkE4etcYQbEu8B3r872D0opoYyGdPW/MvaYQyVdfg23XEFaEI4zzQTupaw== + dependencies: + fast-safe-stringify "^2.1.1" + filter-obj "^5.0.0" + is-plain-obj "^4.0.0" + path-exists "^5.0.0" + toml "^3.0.0" + +netlify-redirector@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/netlify-redirector/-/netlify-redirector-0.5.0.tgz#9611dd8497dab4e13d9f6a6f1595b9528b9e7abf" + integrity sha512-4zdzIP+6muqPCuE8avnrgDJ6KW/2+UpHTRcTbMXCIRxiRmyrX+IZ4WSJGZdHPWF3WmQpXpy603XxecZ9iygN7w== + +netlify@13.1.10: + version "13.1.10" + resolved "https://registry.yarnpkg.com/netlify/-/netlify-13.1.10.tgz#27520caf8582bd3c12d961e46b723f614c1d9b28" + integrity sha512-ByFz8S08HWVKd9r/lkTahZX7xSq4IRyPCUvuaduI4GHyQaSWEdVNK1krC05vlhL9W0SzDn8Yjowh0Ru4PKrOYw== + dependencies: + "@netlify/open-api" "^2.19.1" + lodash-es "^4.17.21" + micro-api-client "^3.3.0" + node-fetch "^3.0.0" + omit.js "^2.0.2" + p-wait-for "^4.0.0" + qs "^6.9.6" + +netlify@^13.1.10, netlify@^13.1.11: + version "13.1.11" + resolved "https://registry.yarnpkg.com/netlify/-/netlify-13.1.11.tgz#f5151bbd5e05cd5a67713f89c05a57dd6377b599" + integrity sha512-exrD6cqwo5avDNtU7YT9iuN0+yoW+aaEUxvr/39oP36wZRKreoPm6KNVisTR9d4lXrPeUG8XI+rERuLhwMQmdw== + dependencies: + "@netlify/open-api" "^2.26.0" + lodash-es "^4.17.21" + micro-api-client "^3.3.0" + node-fetch "^3.0.0" + omit.js "^2.0.2" + p-wait-for "^4.0.0" + qs "^6.9.6" + +next-tick@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" + integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== + +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + +no-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" + integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== + dependencies: + lower-case "^2.0.2" + tslib "^2.0.3" + +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" + integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== + +node-addon-api@^3.0.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161" + integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A== + +node-addon-api@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-7.0.0.tgz#8136add2f510997b3b94814f4af1cce0b0e3962e" + integrity sha512-vgbBJTS4m5/KkE16t5Ly0WW9hz46swAstv0hYYwMtbG7AznRhNyfLRe8HZAiWIpcHzoO7HxhLuBQj9rJ/Ho0ZA== + +node-domexception@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" + integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== + +node-fetch-native@^1.4.0, node-fetch-native@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/node-fetch-native/-/node-fetch-native-1.4.1.tgz#5a336e55b4e1b1e72b9927da09fecd2b374c9be5" + integrity sha512-NsXBU0UgBxo2rQLOeWNZqS3fvflWePMECr8CoSWoSTqCqGbVVsvl9vZu1HfQicYN0g5piV9Gh8RTEvo/uP752w== + +node-fetch@2.6.12: + version "2.6.12" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.12.tgz#02eb8e22074018e3d5a83016649d04df0e348fba" + integrity sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g== + dependencies: + whatwg-url "^5.0.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.8: + version "2.7.0" + 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-fetch@^3.0.0, node-fetch@^3.1.1, node-fetch@^3.3.1: + version "3.3.2" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.3.2.tgz#d1e889bacdf733b4ff3b2b243eb7a12866a0b78b" + integrity sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA== + dependencies: + data-uri-to-buffer "^4.0.0" + fetch-blob "^3.1.4" + formdata-polyfill "^4.0.10" + +node-fetch@~1.7.1: + version "1.7.3" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" + integrity sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ== + dependencies: + encoding "^0.1.11" + is-stream "^1.0.1" + +node-forge@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" + integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== + +node-gyp-build@^4.2.0, node-gyp-build@^4.2.2, node-gyp-build@^4.3.0: + version "4.7.1" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.7.1.tgz#cd7d2eb48e594874053150a9418ac85af83ca8f7" + integrity sha512-wTSrZ+8lsRRa3I3H8Xr65dLWSgCvY2l4AOnaeKdPA9TB/WYMPaTcrzf3rXvFoVvjKNVnu0CcWSx54qq9GKRUYg== + +node-gyp-build@~4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.1.1.tgz#d7270b5d86717068d114cc57fff352f96d745feb" + integrity sha512-dSq1xmcPDKPZ2EED2S6zw/b9NKsqzXRE6dVr8TVQnI3FJOTteUMuqF3Qqs6LZg+mLGYJWqQzMbIjMtJqTv87nQ== + +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== + +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-source-walk@^6.0.0, node-source-walk@^6.0.1, node-source-walk@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/node-source-walk/-/node-source-walk-6.0.2.tgz#ba81bc4bc0f6f05559b084bea10be84c3f87f211" + integrity sha512-jn9vOIK/nfqoFCcpK89/VCVaLg1IHE6UVfDOzvqmANaJ/rWCTEdH8RZ1V278nv2jr36BJdyQXIAavBLXpzdlag== + dependencies: + "@babel/parser" "^7.21.8" + +node-stdlib-browser@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/node-stdlib-browser/-/node-stdlib-browser-1.2.0.tgz#5ddcfdf4063b88fb282979a1aa6ddab9728d5e4c" + integrity sha512-VSjFxUhRhkyed8AtLwSCkMrJRfQ3e2lGtG3sP6FEgaLKBBbxM/dLfjRe1+iLhjvyLFW3tBQ8+c0pcOtXGbAZJg== + dependencies: + assert "^2.0.0" + browser-resolve "^2.0.0" + browserify-zlib "^0.2.0" + buffer "^5.7.1" + console-browserify "^1.1.0" + constants-browserify "^1.0.0" + create-require "^1.1.1" + crypto-browserify "^3.11.0" + domain-browser "^4.22.0" + events "^3.0.0" + https-browserify "^1.0.0" + isomorphic-timers-promises "^1.0.1" + os-browserify "^0.3.0" + path-browserify "^1.0.1" + pkg-dir "^5.0.0" + process "^0.11.10" + punycode "^1.4.1" + querystring-es3 "^0.2.1" + readable-stream "^3.6.0" + stream-browserify "^3.0.0" + stream-http "^3.2.0" + string_decoder "^1.0.0" + timers-browserify "^2.0.4" + tty-browserify "0.0.1" + url "^0.11.0" + util "^0.12.4" + vm-browserify "^1.0.1" + +node-stream-zip@^1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/node-stream-zip/-/node-stream-zip-1.15.0.tgz#158adb88ed8004c6c49a396b50a6a5de3bca33ea" + integrity sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw== + +node-version-alias@3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/node-version-alias/-/node-version-alias-3.4.1.tgz#3b38457372bd54ecf2fe10607b8124067d4c60a8" + integrity sha512-Kf3L9spAL6lEHMPyqpwHSTNG3LPkOXBfSUnBMG/YE2TdoC8Qoqf0+qg01nr6K9MFQEcXtWUyTQzLJByRixSBsA== + dependencies: + all-node-versions "^11.3.0" + filter-obj "^5.1.0" + is-plain-obj "^4.1.0" + normalize-node-version "^12.4.0" + path-exists "^5.0.0" + semver "^7.3.8" + +nofilter@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/nofilter/-/nofilter-3.1.0.tgz#c757ba68801d41ff930ba2ec55bab52ca184aa66" + integrity sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g== + +noop2@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/noop2/-/noop2-2.0.0.tgz#4b636015e9882b54783c02b412f699d8c5cd0a5b" + integrity sha512-2bu7Pfpf6uNqashWV8P7yYeutQ3XkLY9MBSYI5sOAFZxuWcW/uJfLbKj5m6SvMDT9U1Y0C+7UFG+7VSiIdXjtA== + +nopt@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88" + integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== + dependencies: + abbrev "1" + +normalize-node-version@^12.4.0: + version "12.4.0" + resolved "https://registry.yarnpkg.com/normalize-node-version/-/normalize-node-version-12.4.0.tgz#94d4be3f7e6769d85c5de8b4b8d4ed3bc232f538" + integrity sha512-0oLZN5xcyKVrSHMk8/9RuNblEe7HEsXAt5Te2xmMiZD9VX7bqWYe0HMyfqSYFD3xv0949lZuXaEwjTqle1uWWQ== + dependencies: + all-node-versions "^11.3.0" + filter-obj "^5.1.0" + semver "^7.3.7" + +normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: + version "2.5.0" + 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" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-package-data@^3.0.0, normalize-package-data@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz#dbcc3e2da59509a0983422884cd172eefdfa525e" + integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA== + dependencies: + hosted-git-info "^4.0.1" + is-core-module "^2.5.0" + semver "^7.3.4" + validate-npm-package-license "^3.0.1" + +normalize-path@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w== + dependencies: + remove-trailing-separator "^1.0.1" + +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" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== + +normalize-url@^4.1.0: + version "4.5.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" + integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== + +normalize-url@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" + integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== + +normalize-url@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-8.0.0.tgz#593dbd284f743e8dcf6a5ddf8fadff149c82701a" + integrity sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw== + +npm-run-path@^4.0.0, npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +npm-run-path@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" + integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== + dependencies: + path-key "^4.0.0" + +npmlog@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-5.0.1.tgz#f06678e80e29419ad67ab964e0fa69959c1eb8b0" + integrity sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw== + dependencies: + are-we-there-yet "^2.0.0" + console-control-strings "^1.1.0" + gauge "^3.0.0" + set-blocking "^2.0.0" + +nth-check@^2.1.1: + version "2.1.1" + 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" + +nullthrows@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/nullthrows/-/nullthrows-1.1.1.tgz#7818258843856ae971eae4208ad7d7eb19a431b1" + integrity sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw== + +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" + 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" + integrity sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig== + dependencies: + bn.js "4.11.6" + strip-hex-prefix "1.0.0" + +nwsapi@^2.2.2: + version "2.2.7" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.7.tgz#738e0707d3128cb750dddcfe90e4610482df0f30" + integrity sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ== + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + +object-assign@^4, object-assign@^4.0.0, object-assign@^4.0.1, 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" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + integrity sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ== + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-hash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" + integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== + +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-inspect@~1.12.3: + version "1.12.3" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" + integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== + +object-is@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" + integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +object-keys@^1.1.1: + version "1.1.1" + 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.yarnpkg.com/object-keys/-/object-keys-0.4.0.tgz#28a6aae7428dd2c3a92f3d95f21335dd204e0336" + integrity sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw== + +object-treeify@^1.1.33: + version "1.1.33" + resolved "https://registry.yarnpkg.com/object-treeify/-/object-treeify-1.1.33.tgz#f06fece986830a3cba78ddd32d4c11d1f76cdf40" + integrity sha512-EFVjAYfzWqWsBMRHPMAXLCDIJnpMhdWAqR7xG6M6a2cs6PMFpl/+Z20w9zDW4vkxOFfddegBKq9Rehd0bxWE7A== + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + integrity sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA== + dependencies: + isobject "^3.0.0" + +object.assign@^4.1.4: + version "4.1.4" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" + 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" + +object.getownpropertydescriptors@^2.1.6: + version "2.1.7" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.7.tgz#7a466a356cd7da4ba8b9e94ff6d35c3eeab5d56a" + 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.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ== + dependencies: + isobject "^3.0.1" + +obliterator@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/obliterator/-/obliterator-2.0.4.tgz#fa650e019b2d075d745e44f1effeb13a2adbe816" + integrity sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ== + +oboe@2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/oboe/-/oboe-2.1.4.tgz#20c88cdb0c15371bb04119257d4fdd34b0aa49f6" + integrity sha512-ymBJ4xSC6GBXLT9Y7lirj+xbqBLa+jADGJldGEYG7u8sZbS9GyG+u1Xk9c5cbriKwSpCg41qUhPjvU5xOpvIyQ== + dependencies: + http-https "^1.0.0" + +oboe@2.1.5: + version "2.1.5" + 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" + +ofetch@^1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/ofetch/-/ofetch-1.3.3.tgz#588cb806a28e5c66c2c47dd8994f9059a036d8c0" + integrity sha512-s1ZCMmQWXy4b5K/TW9i/DtiN8Ku+xCiHcjQ6/J/nDdssirrQNOoB165Zu8EqLMA2lln1JUth9a0aW9Ap2ctrUg== + dependencies: + destr "^2.0.1" + node-fetch-native "^1.4.0" + ufo "^1.3.0" + +omit.js@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/omit.js/-/omit.js-2.0.2.tgz#dd9b8436fab947a5f3ff214cb2538631e313ec2f" + integrity sha512-hJmu9D+bNB40YpL9jYebQl4lsTW6yEHRTroJzNLqQJYHm7c+NQnJGfZmIWh8S3q3KoaxV1aLhV6B3+0N0/kyJg== + +on-exit-leak-free@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/on-exit-leak-free/-/on-exit-leak-free-0.2.0.tgz#b39c9e3bf7690d890f4861558b0d7b90a442d209" + integrity sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg== + +on-exit-leak-free@^2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz#fed195c9ebddb7d9e4c3842f93f281ac8dadd3b8" + integrity sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA== + +on-finished@2.4.1: + version "2.4.1" + 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" + +on-headers@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +one-time@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/one-time/-/one-time-1.0.0.tgz#e06bc174aed214ed58edede573b433bbf827cb45" + integrity sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g== + dependencies: + fn.name "1.x.x" + +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + integrity sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ== + dependencies: + mimic-fn "^1.0.0" + +onetime@^5.1.0, onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +onetime@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" + integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== + dependencies: + mimic-fn "^4.0.0" + +open@^7.4.2: + version "7.4.2" + resolved "https://registry.yarnpkg.com/open/-/open-7.4.2.tgz#b8147e26dcf3e426316c730089fd71edd29c2321" + integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q== + dependencies: + is-docker "^2.0.0" + is-wsl "^2.1.1" + +open@^8.0.4: + version "8.4.2" + resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" + integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ== + dependencies: + define-lazy-prop "^2.0.0" + is-docker "^2.1.1" + is-wsl "^2.2.0" + +opencollective-postinstall@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz#7a0fff978f6dbfa4d006238fbac98ed4198c3259" + integrity sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q== + +opentracing@^0.14.4: + version "0.14.7" + resolved "https://registry.yarnpkg.com/opentracing/-/opentracing-0.14.7.tgz#25d472bd0296dc0b64d7b94cbc995219031428f5" + integrity sha512-vz9iS7MJ5+Bp1URw8Khvdyw1H/hGvzHWlKQ7eRrQojSCDL1/SrWfrY9QebLw97n2deyRtzHRC3MkQfVNUCo91Q== + +optimisedmt@^0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/optimisedmt/-/optimisedmt-0.0.7.tgz#ef1dac1e5d84c27b19bcdbec16eb4a213fa86f75" + integrity sha512-yVlKMmP/egqiAtg12KFZxqKx35STm+RB5kSSvo9q0B0sIx/7HbWj7fJcFLUFtWzbYp2IvdOhx31s4IC7RmU5pQ== + dependencies: + assert "^2.0.0" + circomlibjs "0.0.8" + ffjavascript "^0.2.39" + +optionator@^0.8.1: + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + 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" + +optionator@^0.9.3: + version "0.9.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" + integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== + 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" + +ora@6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/ora/-/ora-6.3.1.tgz#a4e9e5c2cf5ee73c259e8b410273e706a2ad3ed6" + integrity sha512-ERAyNnZOfqM+Ao3RAvIXkYh5joP220yf59gVe2X/cI6SiCxIdi4c9HZKZD8R6q/RDXEje1THBju6iExiSsgJaQ== + dependencies: + chalk "^5.0.0" + cli-cursor "^4.0.0" + cli-spinners "^2.6.1" + is-interactive "^2.0.0" + is-unicode-supported "^1.1.0" + log-symbols "^5.1.0" + stdin-discarder "^0.1.0" + strip-ansi "^7.0.1" + wcwidth "^1.0.1" + +ora@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ora/-/ora-4.1.1.tgz#566cc0348a15c36f5f0e979612842e02ba9dddbc" + integrity sha512-sjYP8QyVWBpBZWD6Vr1M/KwknSw6kJOz41tvGMlwWeClHBtYKTbHMki1PsLZnxKpXMPbTKv9b3pjQu3REib96A== + dependencies: + chalk "^3.0.0" + cli-cursor "^3.1.0" + cli-spinners "^2.2.0" + is-interactive "^1.0.0" + log-symbols "^3.0.0" + mute-stream "0.0.8" + strip-ansi "^6.0.0" + wcwidth "^1.0.1" + +ora@^5.4.1: + version "5.4.1" + resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" + integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== + dependencies: + bl "^4.1.0" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-spinners "^2.5.0" + is-interactive "^1.0.0" + is-unicode-supported "^0.1.0" + log-symbols "^4.1.0" + strip-ansi "^6.0.0" + wcwidth "^1.0.1" + +ordinal@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/ordinal/-/ordinal-1.0.3.tgz#1a3c7726a61728112f50944ad7c35c06ae3a0d4d" + integrity sha512-cMddMgb2QElm8G7vdaa02jhUNbTSrhsgAGUz1OokD83uJTwSUn+nKoNoKVVaRa08yF6sgfO7Maou1+bgLd9rdQ== + +os-browserify@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" + integrity sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A== + +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + integrity sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ== + +os-locale@^1.4.0: + version "1.4.0" + 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-name@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/os-name/-/os-name-5.1.0.tgz#4f5ab5edfa6938b590112714f1570fe79f1d957a" + integrity sha512-YEIoAnM6zFmzw3PQ201gCVCIWbXNyKObGlVvpAVvraAeOHnlYVKFssbA/riRX5R40WA6kKrZ7Dr7dWzO3nKSeQ== + dependencies: + macos-release "^3.1.0" + windows-release "^5.0.1" + +os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== + +p-cancelable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" + integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== + +p-cancelable@^2.0.0: + version "2.1.1" + 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.yarnpkg.com/p-cancelable/-/p-cancelable-3.0.0.tgz#63826694b54d61ca1c20ebcb6d3ecf5e14cd8050" + integrity sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw== + +p-defer@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-3.0.0.tgz#d1dceb4ee9b2b604b1d94ffec83760175d4e6f83" + integrity sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw== + +p-event@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/p-event/-/p-event-4.2.0.tgz#af4b049c8acd91ae81083ebd1e6f5cae2044c1b5" + integrity sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ== + dependencies: + p-timeout "^3.1.0" + +p-event@^5.0.0, p-event@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/p-event/-/p-event-5.0.1.tgz#614624ec02ae7f4f13d09a721c90586184af5b0c" + integrity sha512-dd589iCQ7m1L0bmC5NLlVYfy3TbBEsMUfWx9PyAgPeIcFZ/E2yaTZ4Rz4MiBmmJShviiftHVXOqfnfzJ6kyMrQ== + dependencies: + p-timeout "^5.0.2" + +p-every@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-every/-/p-every-2.0.0.tgz#ad940b82b1bd1da01c307b11e1dd25fe7286181a" + integrity sha512-MCz9DqD5opPC48Zsd+BHm56O/HfhYIQQtupfDzhXoVgQdg/Ux4F8/JcdRuQ+arq7zD5fB6zP3axbH3d9Nr8dlw== + dependencies: + p-map "^2.0.0" + +p-fifo@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-fifo/-/p-fifo-1.0.0.tgz#e29d5cf17c239ba87f51dde98c1d26a9cfe20a63" + integrity sha512-IjoCxXW48tqdtDFz6fqo5q1UfFVjjVZe8TC1QRflvNUJtNfCUhxOUw6MOVZhDPjqhSzc26xKdugsO17gmzd5+A== + dependencies: + fast-fifo "^1.0.0" + p-defer "^3.0.0" + +p-filter@3.0.0, p-filter@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-filter/-/p-filter-3.0.0.tgz#ce50e03b24b23930e11679ab8694bd09a2d7ed35" + integrity sha512-QtoWLjXAW++uTX67HZQz1dbTpqBfiidsB6VtQUC9iR85S120+s0T5sO6s+B5MLzFcZkrEd/DGMmCjR+f2Qpxwg== + dependencies: + p-map "^5.1.0" + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== + +p-finally@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561" + integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw== + +p-limit@3.1.0, p-limit@^3.0.2, p-limit@^3.1.0: + version "3.1.0" + 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-limit@^1.1.0: + version "1.3.0" + 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: + version "2.3.0" + 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@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-4.0.0.tgz#914af6544ed32bfa54670b061cafcbd04984b644" + integrity sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ== + dependencies: + yocto-queue "^1.0.0" + +p-locate@^2.0.0: + version "2.0.0" + 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.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + 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" + 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" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +p-locate@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-6.0.0.tgz#3da9a49d4934b901089dca3302fa65dc5a05c04f" + integrity sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw== + dependencies: + p-limit "^4.0.0" + +p-map@5.5.0, p-map@^5.0.0, p-map@^5.1.0, p-map@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-5.5.0.tgz#054ca8ca778dfa4cf3f8db6638ccb5b937266715" + integrity sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg== + dependencies: + aggregate-error "^4.0.0" + +p-map@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" + integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== + +p-map@^4.0.0: + version "4.0.0" + 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-queue@^6.0.0: + version "6.6.2" + resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-6.6.2.tgz#2068a9dcf8e67dd0ec3e7a2bcb76810faa85e426" + integrity sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ== + dependencies: + eventemitter3 "^4.0.4" + p-timeout "^3.2.0" + +p-reduce@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-3.0.0.tgz#f11773794792974bd1f7a14c72934248abff4160" + integrity sha512-xsrIUgI0Kn6iyDYm9StOpOeK29XM1aboGji26+QEortiFST1hGZaUQOLhtEbqHErPpGW/aSz6allwK2qcptp0Q== + +p-retry@^5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-5.1.2.tgz#c16eaee4f2016f9161d12da40d3b8b0f2e3c1b76" + integrity sha512-couX95waDu98NfNZV+i/iLt+fdVxmI7CbrrdC2uDWfPdUAApyxT4wmDlyOtR5KtTDmkDO0zDScDjDou9YHhd9g== + dependencies: + "@types/retry" "0.12.1" + retry "^0.13.1" + +p-timeout@^3.1.0, p-timeout@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" + integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== + dependencies: + p-finally "^1.0.0" + +p-timeout@^5.0.0, p-timeout@^5.0.2: + version "5.1.0" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-5.1.0.tgz#b3c691cf4415138ce2d9cfe071dba11f0fee085b" + integrity sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew== + +p-timeout@^6.0.0: + version "6.1.2" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-6.1.2.tgz#22b8d8a78abf5e103030211c5fc6dee1166a6aa5" + integrity sha512-UbD77BuZ9Bc9aABo74gfXhNvzC9Tx7SxtHSh1fxvx3jTLLYvmVhiQZZrJzqqU0jKbN32kb5VOKiLEQI/3bIjgQ== + +p-try@^1.0.0: + version "1.0.0" + 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.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +p-wait-for@5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/p-wait-for/-/p-wait-for-5.0.2.tgz#1546a15e64accf1897377cb1507fa4c756fffe96" + integrity sha512-lwx6u1CotQYPVju77R+D0vFomni/AqRfqLmqQ8hekklqZ6gAY9rONh7lBQ0uxWMkC2AuX9b2DVAl8To0NyP1JA== + dependencies: + p-timeout "^6.0.0" + +p-wait-for@^4.0.0, p-wait-for@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-wait-for/-/p-wait-for-4.1.0.tgz#290f126f49bbd7c84e0cedccb342cd631aaa0f16" + integrity sha512-i8nE5q++9h8oaQHWltS1Tnnv4IoMDOlqN7C0KFG2OdbK0iFJIt6CROZ8wfBM+K4Pxqfnq4C4lkkpXqTEpB5DZw== + dependencies: + p-timeout "^5.0.0" + +package-json@^8.1.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-8.1.1.tgz#3e9948e43df40d1e8e78a85485f1070bf8f03dc8" + integrity sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA== + dependencies: + got "^12.1.0" + registry-auth-token "^5.0.1" + registry-url "^6.0.0" + semver "^7.3.7" + +pako@~1.0.5: + version "1.0.11" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" + integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== + +parallel-transform@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" + integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== + dependencies: + cyclist "^1.0.1" + inherits "^2.0.3" + readable-stream "^2.1.5" + +param-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" + integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + +parent-module@^1.0.0: + version "1.0.1" + 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-asn1@^5.0.0, parse-asn1@^5.1.6: + version "5.1.6" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" + integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== + 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.yarnpkg.com/parse-cache-control/-/parse-cache-control-1.0.1.tgz#8eeab3e54fa56920fe16ba38f77fa21aacc2d74e" + integrity sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg== + +parse-duration@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/parse-duration/-/parse-duration-1.1.0.tgz#5192084c5d8f2a3fd676d04a451dbd2e05a1819c" + integrity sha512-z6t9dvSJYaPoQq7quMzdEagSFtpGu+utzHqqxmpVWNNZRIXnvqyCvn9XsTdh7c/w0Bqmdz3RB3YnRaKtpRtEXQ== + +parse-filepath@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.2.tgz#a632127f53aaf3d15876f5872f3ffac763d6c891" + integrity sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q== + dependencies: + is-absolute "^1.0.0" + map-cache "^0.2.0" + path-root "^0.1.1" + +parse-github-url@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/parse-github-url/-/parse-github-url-1.0.2.tgz#242d3b65cbcdda14bb50439e3242acf6971db395" + integrity sha512-kgBf6avCbO3Cn6+RnzRGLkUsv4ZVqv/VfAYkRsyBcgkshNvVBkRn1FEZcW0Jb+npXQWm2vHPnnOqFteZxRRGNw== + +parse-gitignore@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/parse-gitignore/-/parse-gitignore-2.0.0.tgz#81156b265115c507129f3faea067b8476da3b642" + integrity sha512-RmVuCHWsfu0QPNW+mraxh/xjQVw/lhUCUru8Zni3Ctq3AoMhpDTq0OVdKS6iesd6Kqb7viCV3isAL43dciOSog== + +parse-headers@^2.0.0: + version "2.0.5" + 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.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.0.0, parse-json@^5.2.0: + version "5.2.0" + 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" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +parse-ms@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/parse-ms/-/parse-ms-3.0.0.tgz#3ea24a934913345fcc3656deda72df921da3a70e" + integrity sha512-Tpb8Z7r7XbbtBTrM9UhpkzzaMrqA2VXMT3YChzYltwV3P3pM6t8wl7TvpMnSTosz1aQAdVib7kdoys7vYOPerw== + +parse5@^7.1.1: + version "7.1.2" + 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.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +pascal-case@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" + integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw== + +password-prompt@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/password-prompt/-/password-prompt-1.1.3.tgz#05e539f4e7ca4d6c865d479313f10eb9db63ee5f" + integrity sha512-HkrjG2aJlvF0t2BMH0e2LB/EHf3Lcq3fNMzy4GYHcQblAvOl+QQji1Lx7WRBMqpVK8p+KR7bCg7oqAMXtdgqyw== + dependencies: + ansi-escapes "^4.3.2" + cross-spawn "^7.0.3" + +patch-package@6.2.2: + version "6.2.2" + resolved "https://registry.yarnpkg.com/patch-package/-/patch-package-6.2.2.tgz#71d170d650c65c26556f0d0fbbb48d92b6cc5f39" + integrity sha512-YqScVYkVcClUY0v8fF0kWOjDYopzIM8e3bj/RU1DPeEF14+dCGm6UeOYm4jvCyxqIEQ5/eJzmbWfDWnUleFNMg== + 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" + +patch-package@^6.2.2: + version "6.5.1" + resolved "https://registry.yarnpkg.com/patch-package/-/patch-package-6.5.1.tgz#3e5d00c16997e6160291fee06a521c42ac99b621" + integrity sha512-I/4Zsalfhc6bphmJTlrLoOcAF87jcxko4q0qsv4bGcurbr8IskEOtdnt9iCmsQVGL1B+iUhSQqweyTLJfCF9rA== + dependencies: + "@yarnpkg/lockfile" "^1.1.0" + chalk "^4.1.2" + cross-spawn "^6.0.5" + find-yarn-workspace-root "^2.0.0" + fs-extra "^9.0.0" + is-ci "^2.0.0" + klaw-sync "^6.0.0" + minimist "^1.2.6" + open "^7.4.2" + rimraf "^2.6.3" + semver "^5.6.0" + slash "^2.0.0" + tmp "^0.0.33" + yaml "^1.10.2" + +path-browserify@^1.0.0, path-browserify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" + integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== + +path-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/path-case/-/path-case-3.0.4.tgz#9168645334eb942658375c56f80b4c0cb5f82c6f" + integrity sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + +path-exists@^2.0.0: + version "2.1.0" + 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.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.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-exists@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-5.0.0.tgz#a6aad9489200b21fab31e49cf09277e5116fb9e7" + integrity sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ== + +path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-key@4.0.0, path-key@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" + integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== + +path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + 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.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-root-regex@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d" + integrity sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ== + +path-root@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/path-root/-/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7" + integrity sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg== + dependencies: + path-root-regex "^0.1.0" + +path-scurry@^1.6.1: + version "1.10.1" + 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" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + +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" + 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" + integrity sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg== + dependencies: + graceful-fs "^4.1.2" + pify "^2.0.0" + pinkie-promise "^2.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" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +path-type@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-5.0.0.tgz#14b01ed7aea7ddf9c7c3f46181d4d04f9c785bb8" + integrity sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg== + +pathe@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/pathe/-/pathe-0.2.0.tgz#30fd7bbe0a0d91f0e60bae621f5d19e9e225c339" + integrity sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw== + +pathe@^1.0.0, pathe@^1.1.0, pathe@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.1.tgz#1dd31d382b974ba69809adc9a7a347e65d84829a" + integrity sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q== + +pathval@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" + integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== + +pbkdf2@^3.0.17, pbkdf2@^3.0.3, pbkdf2@^3.0.9: + version "3.1.2" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" + 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" + +peek-readable@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/peek-readable/-/peek-readable-5.0.0.tgz#7ead2aff25dc40458c60347ea76cfdfd63efdfec" + integrity sha512-YtCKvLUOvwtMGmrniQPdO7MwPjgkFBtFIrmfSbYmYuq3tKDV/mcfAhBth1+C3ru7uXIZasc/pHnb+YDYNkkj4A== + +pend@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg== + +performance-now@^2.1.0: + version "2.1.0" + 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.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pify@^2.0.0, pify@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== + +pinia@^2.0.26: + version "2.1.7" + resolved "https://registry.yarnpkg.com/pinia/-/pinia-2.1.7.tgz#4cf5420d9324ca00b7b4984d3fbf693222115bbc" + integrity sha512-+C2AHFtcFqjPih0zpYuvof37SFxMQ7OEG2zV9jRI12i9BOy3YQVAHwdKtyyc8pDcDyIc33WCIsZaCFWU7WWxGQ== + dependencies: + "@vue/devtools-api" "^6.5.0" + vue-demi ">=0.14.5" + +pinkie-promise@^2.0.0: + version "2.0.1" + 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.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg== + +pino-abstract-transport@v0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/pino-abstract-transport/-/pino-abstract-transport-0.5.0.tgz#4b54348d8f73713bfd14e3dc44228739aa13d9c0" + integrity sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ== + dependencies: + duplexify "^4.1.2" + split2 "^4.0.0" + +pino-abstract-transport@v1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pino-abstract-transport/-/pino-abstract-transport-1.1.0.tgz#083d98f966262164504afb989bccd05f665937a8" + integrity sha512-lsleG3/2a/JIWUtf9Q5gUNErBqwIu1tUKTT3dUzaf5DySw9ra1wcqKjJjLX1VTY64Wk1eEOYsVGSaGfCK85ekA== + dependencies: + readable-stream "^4.0.0" + split2 "^4.0.0" + +pino-std-serializers@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-4.0.0.tgz#1791ccd2539c091ae49ce9993205e2cd5dbba1e2" + integrity sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q== + +pino-std-serializers@^6.0.0: + version "6.2.2" + resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-6.2.2.tgz#d9a9b5f2b9a402486a5fc4db0a737570a860aab3" + integrity sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA== + +pino@7.11.0: + version "7.11.0" + resolved "https://registry.yarnpkg.com/pino/-/pino-7.11.0.tgz#0f0ea5c4683dc91388081d44bff10c83125066f6" + integrity sha512-dMACeu63HtRLmCG8VKdy4cShCPKaYDR4youZqoSWLxl5Gu99HUw8bw75thbPv9Nip+H+QYX8o3ZJbTdVZZ2TVg== + dependencies: + atomic-sleep "^1.0.0" + fast-redact "^3.0.0" + on-exit-leak-free "^0.2.0" + pino-abstract-transport v0.5.0 + pino-std-serializers "^4.0.0" + process-warning "^1.0.0" + quick-format-unescaped "^4.0.3" + real-require "^0.1.0" + safe-stable-stringify "^2.1.0" + sonic-boom "^2.2.1" + thread-stream "^0.15.1" + +pino@^8.5.0: + version "8.16.2" + resolved "https://registry.yarnpkg.com/pino/-/pino-8.16.2.tgz#7a906f2d9a8c5b4c57412c9ca95d6820bd2090cd" + integrity sha512-2advCDGVEvkKu9TTVSa/kWW7Z3htI/sBKEZpqiHk6ive0i/7f5b1rsU8jn0aimxqfnSz5bj/nOYkwhBUn5xxvg== + dependencies: + atomic-sleep "^1.0.0" + fast-redact "^3.1.1" + on-exit-leak-free "^2.1.0" + pino-abstract-transport v1.1.0 + pino-std-serializers "^6.0.0" + process-warning "^2.0.0" + quick-format-unescaped "^4.0.3" + real-require "^0.2.0" + safe-stable-stringify "^2.3.1" + sonic-boom "^3.7.0" + thread-stream "^2.0.0" + +pirates@^4.0.1: + version "4.0.6" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" + integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== + +pkg-dir@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-5.0.0.tgz#a02d6aebe6ba133a928f74aec20bafdfe6b8e760" + integrity sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA== + dependencies: + find-up "^5.0.0" + +pkg-dir@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-7.0.0.tgz#8f0c08d6df4476756c5ff29b3282d0bab7517d11" + integrity sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA== + dependencies: + find-up "^6.3.0" + +pkg-types@^1.0.1, pkg-types@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-1.0.3.tgz#988b42ab19254c01614d13f4f65a2cfc7880f868" + integrity sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A== + dependencies: + jsonc-parser "^3.2.0" + mlly "^1.2.0" + pathe "^1.1.0" + +please-upgrade-node@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" + integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg== + dependencies: + semver-compare "^1.0.0" + +pluralize@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" + integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== + +pngjs@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-5.0.0.tgz#e79dd2b215767fd9c04561c01236df960bce7fbb" + integrity sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw== + +pnglib@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/pnglib/-/pnglib-0.0.1.tgz#f9ab6f9c688f4a9d579ad8be28878a716e30c096" + integrity sha512-95ChzOoYLOPIyVmL+Y6X+abKGXUJlvOVLkB1QQkyXl7Uczc6FElUy/x01NS7r2GX6GRezloO/ecCX9h4U9KadA== + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + integrity sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg== + +postcss-import@^15.1.0: + version "15.1.0" + resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-15.1.0.tgz#41c64ed8cc0e23735a9698b3249ffdbf704adc70" + integrity sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew== + dependencies: + postcss-value-parser "^4.0.0" + read-cache "^1.0.0" + resolve "^1.1.7" + +postcss-js@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-4.0.1.tgz#61598186f3703bab052f1c4f7d805f3991bee9d2" + integrity sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw== + dependencies: + camelcase-css "^2.0.1" + +postcss-load-config@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-4.0.2.tgz#7159dcf626118d33e299f485d6afe4aff7c4a3e3" + integrity sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ== + dependencies: + lilconfig "^3.0.0" + yaml "^2.3.4" + +postcss-nested@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-6.0.1.tgz#f83dc9846ca16d2f4fa864f16e9d9f7d0961662c" + integrity sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ== + dependencies: + postcss-selector-parser "^6.0.11" + +postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.13: + version "6.0.13" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b" + integrity sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== + +postcss-values-parser@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-values-parser/-/postcss-values-parser-6.0.2.tgz#636edc5b86c953896f1bb0d7a7a6615df00fb76f" + integrity sha512-YLJpK0N1brcNJrs9WatuJFtHaV9q5aAOj+S4DI5S7jgHlRfm0PIbDCAFRYMQD5SHq7Fy6xsDhyutgS0QOAs0qw== + dependencies: + color-name "^1.1.4" + is-url-superb "^4.0.0" + quote-unquote "^1.0.0" + +postcss@^8.4.19, postcss@^8.4.23, postcss@^8.4.27, postcss@^8.4.31: + version "8.4.31" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d" + integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ== + dependencies: + nanoid "^3.3.6" + picocolors "^1.0.0" + source-map-js "^1.0.2" + +postinstall-postinstall@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/postinstall-postinstall/-/postinstall-postinstall-2.1.0.tgz#4f7f77441ef539d1512c40bd04c71b06a4704ca3" + integrity sha512-7hQX6ZlZXIoRiWNrbMQaLzUUfH+sSx39u8EJ9HYuDc1kLo9IXKWjM5RSquZN1ad5GnH8CGFM78fsAAQi3OKEEQ== + +precinct@^11.0.0: + version "11.0.5" + resolved "https://registry.yarnpkg.com/precinct/-/precinct-11.0.5.tgz#3e15b3486670806f18addb54b8533e23596399ff" + integrity sha512-oHSWLC8cL/0znFhvln26D14KfCQFFn4KOLSw6hmLhd+LQ2SKt9Ljm89but76Pc7flM9Ty1TnXyrA2u16MfRV3w== + dependencies: + "@dependents/detective-less" "^4.1.0" + commander "^10.0.1" + detective-amd "^5.0.2" + detective-cjs "^5.0.1" + detective-es6 "^4.0.1" + detective-postcss "^6.1.3" + detective-sass "^5.0.3" + detective-scss "^4.0.3" + detective-stylus "^4.0.0" + detective-typescript "^11.1.0" + module-definition "^5.0.1" + node-source-walk "^6.0.2" + +precond@0.2: + version "0.2.3" + resolved "https://registry.yarnpkg.com/precond/-/precond-0.2.3.tgz#aa9591bcaa24923f1e0f4849d240f47efc1075ac" + 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" + 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" + integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== + +prepend-http@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" + integrity sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA== + +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" + integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== + dependencies: + fast-diff "^1.1.2" + +prettier@1.19.1, prettier@^1.14.2: + version "1.19.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" + integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== + +prettier@3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.3.tgz#432a51f7ba422d1469096c0fdc28e235db8f9643" + integrity sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg== + +prettier@^2.1.2, prettier@^2.8.3: + version "2.8.8" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" + integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== + +pretty-format@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.5.1.tgz#2181879fdea51a7a5851fb39d920faa63f01d88e" + integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ== + dependencies: + ansi-regex "^5.0.1" + ansi-styles "^5.0.0" + react-is "^17.0.1" + +pretty-ms@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-8.0.0.tgz#a35563b2a02df01e595538f86d7de54ca23194a3" + integrity sha512-ASJqOugUF1bbzI35STMBUpZqdfYKlJugy6JBziGi2EE+AL5JPJGSzvpeVXojxrr0ViUYoToUjb5kjSEGf7Y83Q== + dependencies: + parse-ms "^3.0.0" + +prettyjson@1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/prettyjson/-/prettyjson-1.2.5.tgz#ef3cfffcc70505c032abc59785884b4027031835" + integrity sha512-rksPWtoZb2ZpT5OVgtmy0KHVM+Dca3iVwWY9ifwhcexfjebtgjg3wmrUt9PvJ59XIYBcknQeYHD8IAnVlh9lAw== + dependencies: + colors "1.4.0" + minimist "^1.2.0" + +private@^0.1.6, private@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" + integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== + +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" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +process-warning@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-1.0.0.tgz#980a0b25dc38cd6034181be4b7726d89066b4616" + integrity sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q== + +process-warning@^2.0.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-2.3.1.tgz#0caf992272c439f45dd416e1407ee25a3d4c778a" + integrity sha512-JjBvFEn7MwFbzUDa2SRtKJSsyO0LlER4V/FmwLMhBlXNbGgGxdyFCxIdMDLerWUycsVUyaoM9QFLvppFy4IWaQ== + +process@^0.10.0: + version "0.10.1" + resolved "https://registry.yarnpkg.com/process/-/process-0.10.1.tgz#842457cc51cfed72dc775afeeafb8c6034372725" + integrity sha512-dyIett8dgGIZ/TXKUzeYExt7WA6ldDzys9vTDU/cCA9L17Ypme+KzS+NjQCjpn9xsvi/shbMC+yP/BcFMBz0NA== + +process@^0.11.10: + version "0.11.10" + 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.yarnpkg.com/promise-to-callback/-/promise-to-callback-1.0.0.tgz#5d2a749010bfb67d963598fcd3960746a68feef7" + integrity sha512-uhMIZmKM5ZteDMfLgJnoSq9GCwsNKrYau73Awf1jIy6/eUcuuZ3P+CD9zUv0kJsIUbU+x6uLNIhXhLHDs1pNPA== + dependencies: + is-fn "^1.0.0" + set-immediate-shim "^1.0.1" + +promise@^7.1.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" + integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg== + dependencies: + asap "~2.0.3" + +promise@^8.0.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/promise/-/promise-8.3.0.tgz#8cb333d1edeb61ef23869fbb8a4ea0279ab60e0a" + integrity sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg== + dependencies: + asap "~2.0.6" + +prompt-async@^0.9.9: + version "0.9.9" + resolved "https://registry.yarnpkg.com/prompt-async/-/prompt-async-0.9.9.tgz#6fb90053480eec4d06368d6e7fa434736b61193b" + integrity sha512-XHpcP55ME/MRHvvKTGYSayMMpWY7M2dEx5g6WdfHabkO4+BrJIWeZh4+qJG4lRgebr5ovT+Cnv98qfmXqQ3RXA== + dependencies: + prompt "^1.0.0" + +prompt@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/prompt/-/prompt-1.3.0.tgz#b1f6d47cb1b6beed4f0660b470f5d3ec157ad7ce" + integrity sha512-ZkaRWtaLBZl7KKAKndKYUL8WqNT+cQHKRZnT4RYYms48jQkFw3rrBL+/N5K/KtdEveHkxs982MX2BkDKub2ZMg== + dependencies: + "@colors/colors" "1.5.0" + async "3.2.3" + read "1.0.x" + revalidator "0.1.x" + winston "2.x" + +proper-lockfile@^4.0.0, proper-lockfile@^4.1.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/proper-lockfile/-/proper-lockfile-4.1.2.tgz#c8b9de2af6b2f1601067f98e01ac66baa223141f" + integrity sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA== + dependencies: + graceful-fs "^4.2.4" + retry "^0.12.0" + signal-exit "^3.0.2" + +proto-list@~1.2.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== + +protobufjs@^6.10.2: + version "6.11.4" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.11.4.tgz#29a412c38bf70d89e537b6d02d904a6f448173aa" + integrity sha512-5kQWPaJHi1WoCpjTGszzQ32PG2F4+wRY6BmAT4Vfw56Q2FZ4YZzK20xUYQH4YkfehY1e6QSICrJquM6xXZNcrw== + dependencies: + "@protobufjs/aspromise" "^1.1.2" + "@protobufjs/base64" "^1.1.2" + "@protobufjs/codegen" "^2.0.4" + "@protobufjs/eventemitter" "^1.1.0" + "@protobufjs/fetch" "^1.1.0" + "@protobufjs/float" "^1.0.2" + "@protobufjs/inquire" "^1.1.0" + "@protobufjs/path" "^1.1.2" + "@protobufjs/pool" "^1.1.0" + "@protobufjs/utf8" "^1.1.0" + "@types/long" "^4.0.1" + "@types/node" ">=13.7.0" + long "^4.0.0" + +protobufjs@^7.1.2, protobufjs@^7.2.2, protobufjs@^7.2.3, protobufjs@^7.2.4: + version "7.2.5" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.2.5.tgz#45d5c57387a6d29a17aab6846dcc283f9b8e7f2d" + integrity sha512-gGXRSXvxQ7UiPgfw8gevrfRWcTlSbOFg+p/N+JVJEK5VhueL2miT6qTymqAmjr1Q5WbOCyJbyrk6JfWKwlFn6A== + dependencies: + "@protobufjs/aspromise" "^1.1.2" + "@protobufjs/base64" "^1.1.2" + "@protobufjs/codegen" "^2.0.4" + "@protobufjs/eventemitter" "^1.1.0" + "@protobufjs/fetch" "^1.1.0" + "@protobufjs/float" "^1.0.2" + "@protobufjs/inquire" "^1.1.0" + "@protobufjs/path" "^1.1.2" + "@protobufjs/pool" "^1.1.0" + "@protobufjs/utf8" "^1.1.0" + "@types/node" ">=13.7.0" + long "^5.0.0" + +protocol-buffers-schema@^3.3.1: + version "3.6.0" + resolved "https://registry.yarnpkg.com/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz#77bc75a48b2ff142c1ad5b5b90c94cd0fa2efd03" + integrity sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw== + +protons@^1.0.2, protons@^1.1.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/protons/-/protons-1.2.1.tgz#5f1e0db8b2139469cd1c3b4e332a4c2d95d0a218" + integrity sha512-2oqDyc/SN+tNcJf8XxrXhYL7sQn2/OMl8mSdD7NVGsWjMEmAbks4eDVnCyf0vAoRbBWyWTEXWk4D8XfuKVl3zg== + dependencies: + buffer "^5.5.0" + protocol-buffers-schema "^3.3.1" + signed-varint "^2.0.1" + varint "^5.0.0" + +proxy-addr@^2.0.7, proxy-addr@~2.0.7: + version "2.0.7" + 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-compare@2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/proxy-compare/-/proxy-compare-2.5.1.tgz#17818e33d1653fbac8c2ec31406bce8a2966f600" + integrity sha512-oyfc0Tx87Cpwva5ZXezSp5V9vht1c7dZBhvuV/y3ctkgMVUmiAGDVeeB0dKhGSyT0v1ZTEQYpe/RXlBVBNuCLA== + +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.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw== + +ps-list@^8.0.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/ps-list/-/ps-list-8.1.1.tgz#9ff1952b26a9a07fcc05270407e60544237ae581" + integrity sha512-OPS9kEJYVmiO48u/B9qneqhkMvgCxT+Tm28VCEJpheTpl8cJ0ffZRRNgS5mrQRTrX5yRTpaJ+hRDeefXYmmorQ== + +pseudomap@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ== + +psl@^1.1.28, psl@^1.1.33: + version "1.9.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" + integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== + +public-encrypt@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" + integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== + 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" + resolved "https://registry.yarnpkg.com/pull-cat/-/pull-cat-1.1.11.tgz#b642dd1255da376a706b6db4fa962f5fdb74c31b" + integrity sha512-i3w+xZ3DCtTVz8S62hBOuNLRHqVDsHMNZmgrZsjPnsxXUgbWtXEee84lo1XswE7W2a3WHyqsNuDJTjVLAQR8xg== + +pull-defer@^0.2.2: + version "0.2.3" + resolved "https://registry.yarnpkg.com/pull-defer/-/pull-defer-0.2.3.tgz#4ee09c6d9e227bede9938db80391c3dac489d113" + integrity sha512-/An3KE7mVjZCqNhZsr22k1Tx8MACnUnHZZNPSJ0S62td8JtYr/AiRG42Vz7Syu31SoTLUzVIe61jtT/pNdjVYA== + +pull-level@^2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pull-level/-/pull-level-2.0.4.tgz#4822e61757c10bdcc7cf4a03af04c92734c9afac" + integrity sha512-fW6pljDeUThpq5KXwKbRG3X7Ogk3vc75d5OQU/TvXXui65ykm+Bn+fiktg+MOx2jJ85cd+sheufPL+rw9QSVZg== + 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" + resolved "https://registry.yarnpkg.com/pull-live/-/pull-live-1.0.1.tgz#a4ecee01e330155e9124bbbcf4761f21b38f51f5" + integrity sha512-tkNz1QT5gId8aPhV5+dmwoIiA1nmfDOzJDlOOUpU5DNusj6neNd3EePybJ5+sITr2FwyCs/FVpx74YMCfc8YeA== + dependencies: + pull-cat "^1.1.9" + pull-stream "^3.4.0" + +pull-pushable@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/pull-pushable/-/pull-pushable-2.2.0.tgz#5f2f3aed47ad86919f01b12a2e99d6f1bd776581" + integrity sha512-M7dp95enQ2kaHvfCt2+DJfyzgCSpWVR2h2kWYnVsW6ZpxQBx5wOu0QWOvQPVoPnBLUZYitYP2y7HyHkLQNeGXg== + +pull-stream@^3.2.3, pull-stream@^3.4.0, pull-stream@^3.6.8: + version "3.7.0" + resolved "https://registry.yarnpkg.com/pull-stream/-/pull-stream-3.7.0.tgz#85de0e44ff38a4d2ad08cc43fc458e1922f9bf0b" + integrity sha512-Eco+/R004UaCK2qEDE8vGklcTG2OeZSVm1kTUQNrykEjDwcFXDZhygFDsW49DbXyJMEhHeRL3z5cRVqPAhXlIw== + +pull-window@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/pull-window/-/pull-window-2.1.4.tgz#fc3b86feebd1920c7ae297691e23f705f88552f0" + integrity sha512-cbDzN76BMlcGG46OImrgpkMf/VkCnupj8JhsrpBw3aWBM9ye345aYnqitmZCgauBkc0HbbRRn9hCnsa3k2FNUg== + dependencies: + looper "^2.0.0" + +pump@3.0.0, pump@^3.0.0: + version "3.0.0" + 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" + +pump@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/pump/-/pump-1.0.3.tgz#5dfe8311c33bbf6fc18261f9f34702c47c08a954" + integrity sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw== + 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.3.2, punycode@^1.4.1: + version "1.4.1" + 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.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== + +pupa@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/pupa/-/pupa-3.1.0.tgz#f15610274376bbcc70c9a3aa8b505ea23f41c579" + integrity sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug== + dependencies: + escape-goat "^4.0.0" + +pvtsutils@^1.3.2, pvtsutils@^1.3.5: + version "1.3.5" + resolved "https://registry.yarnpkg.com/pvtsutils/-/pvtsutils-1.3.5.tgz#b8705b437b7b134cd7fd858f025a23456f1ce910" + integrity sha512-ARvb14YB9Nm2Xi6nBq1ZX6dAM0FsJnuk+31aUp4TrcZEdKUlSqOqsxJHUPJDNE3qiIp+iUPEIeR6Je/tgV7zsA== + dependencies: + tslib "^2.6.1" + +pvutils@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.1.3.tgz#f35fc1d27e7cd3dfbd39c0826d173e806a03f5a3" + integrity sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ== + +qrcode@1.5.3, qrcode@^1.5.1: + version "1.5.3" + resolved "https://registry.yarnpkg.com/qrcode/-/qrcode-1.5.3.tgz#03afa80912c0dccf12bc93f615a535aad1066170" + integrity sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg== + dependencies: + dijkstrajs "^1.0.1" + encode-utf8 "^1.0.3" + pngjs "^5.0.0" + yargs "^15.3.1" + +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.9.6: + version "6.11.2" + 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.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" + integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== + +query-string@7.1.3: + version "7.1.3" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-7.1.3.tgz#a1cf90e994abb113a325804a972d98276fe02328" + integrity sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg== + dependencies: + decode-uri-component "^0.2.2" + filter-obj "^1.1.0" + split-on-first "^1.0.0" + strict-uri-encode "^2.0.0" + +query-string@^5.0.1: + version "5.1.1" + 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" + object-assign "^4.1.0" + strict-uri-encode "^1.0.0" + +querystring-es3@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + integrity sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA== + +querystringify@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" + integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== + +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" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +queue-tick@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/queue-tick/-/queue-tick-1.0.1.tgz#f6f07ac82c1fd60f82e098b417a80e52f1f4c142" + integrity sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag== + +quick-format-unescaped@^4.0.3: + version "4.0.4" + resolved "https://registry.yarnpkg.com/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz#93ef6dd8d3453cbc7970dd614fad4c5954d6b5a7" + integrity sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg== + +quick-lru@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" + integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== + +quick-lru@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" + integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== + +quote-unquote@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/quote-unquote/-/quote-unquote-1.0.0.tgz#67a9a77148effeaf81a4d428404a710baaac8a0b" + integrity sha512-twwRO/ilhlG/FIgYeKGFqyHhoEhqgnKVkcmqMKi2r524gz3ZbDTcyFt38E9xjJI2vT+KbRNHVbnJ/e0I25Azwg== + +r1csfile@0.0.16: + version "0.0.16" + resolved "https://registry.yarnpkg.com/r1csfile/-/r1csfile-0.0.16.tgz#53c66a79b50eebc2d15a1048e39d548ce9da7ccd" + integrity sha512-A2jRVWzGgmXeG2lVAc0H4suJmzt50it5UvBnycJgBCpMXM3tH/M6RguP7nvs6suY/yYnkN6jX6iTScSiDUF3FA== + dependencies: + "@iden3/bigarray" "0.0.2" + fastfile "0.0.18" + ffjavascript "0.2.22" + +r1csfile@0.0.32: + version "0.0.32" + resolved "https://registry.yarnpkg.com/r1csfile/-/r1csfile-0.0.32.tgz#64a6c63ff76b737b3ee22bcedb2bb9a033cbeb1a" + integrity sha512-DkRXeOg0iRmfhgIuWICvdkOiLHpyb7+AcUd/WHpqBJEUp27pe7wKXBR4Jr3TPYCT4sTV9a/F3bovyAC4wystnQ== + dependencies: + "@iden3/bigarray" "0.0.2" + "@iden3/binfileutils" "0.0.8" + fastfile "0.0.19" + ffjavascript "0.2.35" + +r1csfile@0.0.41: + version "0.0.41" + resolved "https://registry.yarnpkg.com/r1csfile/-/r1csfile-0.0.41.tgz#e3d2709d36923156dd1fc2db9858987b30c92948" + integrity sha512-Q1WDF3u1vYeAwjHo4YuddkA8Aq0TulbKjmGm99+Atn13Lf5fTsMZBnBV9T741w8iSyPFG6Uh6sapQby77sREqA== + dependencies: + "@iden3/bigarray" "0.0.2" + "@iden3/binfileutils" "0.0.11" + fastfile "0.0.20" + ffjavascript "0.2.56" + +rabin-wasm@~0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/rabin-wasm/-/rabin-wasm-0.0.8.tgz#5b61b1d519d0377453435fbca5f82510b3f956cb" + integrity sha512-TpIki3NG/X7nPnYHtYdF4Vp5NLrHvztiM5oL8+9NoeX/ClUfUyy7Y7DMrESZl1ropCpZJAjFMv/ZHYrkLu3bCQ== + dependencies: + assemblyscript "github:assemblyscript/assemblyscript#v0.6" + bl "^1.0.0" + debug "^4.1.1" + minimist "^1.2.0" + node-fetch "^2.6.0" + readable-stream "^2.0.4" + +radix3@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/radix3/-/radix3-1.1.0.tgz#9745df67a49c522e94a33d0a93cf743f104b6e0d" + integrity sha512-pNsHDxbGORSvuSScqNJ+3Km6QAVqk8CfsCBIEoDgpqLrkD2f3QM4I7d1ozJJ172OmIcoUcerZaNWqtLkRXTV3A== + +ramda@^0.24.1: + version "0.24.1" + resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.24.1.tgz#c3b7755197f35b8dc3502228262c4c91ddb6b857" + integrity sha512-HEm619G8PaZMfkqCa23qiOe7r3R0brPu7ZgOsgKUsnvLhd0qhc/vTjkUovomgPWa5ECBa08fJZixth9LaoBo5w== + +ramda@^0.25.0: + version "0.25.0" + resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.25.0.tgz#8fdf68231cffa90bc2f9460390a0cb74a29b29a9" + integrity sha512-GXpfrYVPwx3K7RQ6aYT8KPS8XViSXUVJT1ONhoKPE9VAleW42YE+U+8VEyGWt41EnEQW7gwecYJriTI0pKoecQ== + +ramdasauce@^2.1.0: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ramdasauce/-/ramdasauce-2.1.3.tgz#acb45ecc7e4fc4d6f39e19989b4a16dff383e9c2" + integrity sha512-Ml3CPim4SKwmg5g9UI77lnRSeKr/kQw7YhQ6rfdMcBYy6DMlwmkEwQqjygJ3OhxPR+NfFfpjKl3Tf8GXckaqqg== + dependencies: + ramda "^0.24.1" + +random-bytes@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/random-bytes/-/random-bytes-1.0.0.tgz#4f68a1dc0ae58bd3fb95848c30324db75d64360b" + integrity sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ== + +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.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +randomfill@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== + dependencies: + randombytes "^2.0.5" + 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" + 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== + 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== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" + +rc@1.2.8: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +react-is@^17.0.1: + version "17.0.2" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" + integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== + +react-native-fetch-api@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/react-native-fetch-api/-/react-native-fetch-api-3.0.0.tgz#81e1bb6562c292521bc4eca52fe1097f4c1ebab5" + integrity sha512-g2rtqPjdroaboDKTsJCTlcmtw54E25OjyaunUP0anOZn4Fuo2IKs8BVfe02zVggA/UysbmfSnRJIqtNkAgggNA== + dependencies: + p-defer "^3.0.0" + +read-cache@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" + integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA== + dependencies: + pify "^2.3.0" + +read-pkg-up@9.1.0, read-pkg-up@^9.0.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-9.1.0.tgz#38ca48e0bc6c6b260464b14aad9bcd4e5b1fbdc3" + integrity sha512-vaMRR1AC1nrd5CQM0PhlRsO5oc2AAigqr7cCrZ/MW/Rsaflz4RlgzkpL4qoU/z1F6wrbd85iFv1OQj/y5RdGvg== + dependencies: + find-up "^6.3.0" + read-pkg "^7.1.0" + type-fest "^2.5.0" + +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" + integrity sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A== + dependencies: + find-up "^1.0.0" + read-pkg "^1.0.0" + +read-pkg-up@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" + integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== + dependencies: + find-up "^4.1.0" + read-pkg "^5.2.0" + type-fest "^0.8.1" + +read-pkg@^1.0.0: + version "1.1.0" + 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" + +read-pkg@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" + integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== + dependencies: + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^2.5.0" + parse-json "^5.0.0" + type-fest "^0.6.0" + +read-pkg@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-7.1.0.tgz#438b4caed1ad656ba359b3e00fd094f3c427a43e" + integrity sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg== + dependencies: + "@types/normalize-package-data" "^2.4.1" + normalize-package-data "^3.0.2" + parse-json "^5.2.0" + type-fest "^2.0.0" + +read@1.0.x: + version "1.0.7" + resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4" + integrity sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ== + dependencies: + mute-stream "~0.0.4" + +readable-stream@^1.0.33: + version "1.1.14" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + 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, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.8, readable-stream@^2.2.9, readable-stream@^2.3.0, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6: + version "2.3.8" + 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" + 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@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.5.0, readable-stream@^3.6.0, readable-stream@^3.6.2: + version "3.6.2" + 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@^4.0.0: + version "4.4.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.4.2.tgz#e6aced27ad3b9d726d8308515b9a1b98dc1b9d13" + integrity sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA== + dependencies: + abort-controller "^3.0.0" + buffer "^6.0.3" + events "^3.3.0" + process "^0.11.10" + string_decoder "^1.3.0" + +readable-stream@~1.0.15, readable-stream@~1.0.26-4: + version "1.0.34" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + 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" + +readable-web-to-node-stream@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz#5d52bb5df7b54861fd48d015e93a2cb87b3ee0bb" + integrity sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw== + dependencies: + readable-stream "^3.6.0" + +readdir-glob@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/readdir-glob/-/readdir-glob-1.1.3.tgz#c3d831f51f5e7bfa62fa2ffbe4b508c640f09584" + integrity sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA== + dependencies: + minimatch "^5.1.0" + +readdirp@^2.0.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== + dependencies: + graceful-fs "^4.1.11" + micromatch "^3.1.10" + readable-stream "^2.0.2" + +readdirp@^3.4.0, readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +readdirp@~3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" + integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== + dependencies: + picomatch "^2.2.1" + +readline@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/readline/-/readline-1.3.0.tgz#c580d77ef2cfc8752b132498060dc9793a7ac01c" + integrity sha512-k2d6ACCkiNYz222Fs/iNze30rRJ1iIicW7JuX/7/cozvih6YCkFZH+J6mAFDVgv0dRBaAyr4jDqC95R2y4IADg== + +real-require@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/real-require/-/real-require-0.1.0.tgz#736ac214caa20632847b7ca8c1056a0767df9381" + integrity sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg== + +real-require@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/real-require/-/real-require-0.2.0.tgz#209632dea1810be2ae063a6ac084fee7e33fba78" + integrity sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg== + +receptacle@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/receptacle/-/receptacle-1.3.2.tgz#a7994c7efafc7a01d0e2041839dab6c4951360d2" + integrity sha512-HrsFvqZZheusncQRiEE7GatOAETrARKV/lnfYicIm8lbvp/JQOdADOfhjBd2DajvoszEyxSM6RlAAIZgEoeu/A== + dependencies: + ms "^2.1.1" + +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + integrity sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw== + dependencies: + resolve "^1.1.6" + +redent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" + integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== + dependencies: + indent-string "^4.0.0" + strip-indent "^3.0.0" + +redeyed@~2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/redeyed/-/redeyed-2.1.1.tgz#8984b5815d99cb220469c99eeeffe38913e6cc0b" + integrity sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ== + dependencies: + esprima "~4.0.0" + +redis-errors@^1.0.0, redis-errors@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/redis-errors/-/redis-errors-1.2.0.tgz#eb62d2adb15e4eaf4610c04afe1529384250abad" + integrity sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w== + +redis-parser@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/redis-parser/-/redis-parser-3.0.0.tgz#b66d828cdcafe6b4b8a428a7def4c6bcac31c8b4" + integrity sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A== + dependencies: + redis-errors "^1.0.0" + +regenerate@^1.2.1: + version "1.4.2" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== + +regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== + +regenerator-runtime@^0.14.0: + version "0.14.0" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45" + integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA== + +regenerator-transform@^0.10.0: + version "0.10.1" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" + 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" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +regexp-tree@^0.1.24: + version "0.1.27" + resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.27.tgz#2198f0ef54518ffa743fe74d983b56ffd631b6cd" + integrity sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA== + +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" + integrity sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + set-function-name "^2.0.0" + +regexpu-core@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" + integrity sha512-tJ9+S4oKjxY8IZ9jmjnp/mtytu1u3iyIQAfmI51IKWH6bFf7XR1ybtaO6j7INhZKXOTYADk7V5qxaqLkmNxiZQ== + dependencies: + regenerate "^1.2.1" + regjsgen "^0.2.0" + regjsparser "^0.1.4" + +registry-auth-token@^5.0.1: + version "5.0.2" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-5.0.2.tgz#8b026cc507c8552ebbe06724136267e63302f756" + integrity sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ== + dependencies: + "@pnpm/npm-conf" "^2.1.0" + +registry-url@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-6.0.1.tgz#056d9343680f2f64400032b1e199faa692286c58" + integrity sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q== + dependencies: + rc "1.2.8" + +regjsgen@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" + integrity sha512-x+Y3yA24uF68m5GA+tBjbGYo64xXVJpbToBaWCoSNSc1hdk6dfctaRWrNFTVJZIIhL5GxW8zwjoixbnifnK59g== + +regjsparser@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" + integrity sha512-jlQ9gYLfk2p3V5Ag5fYhA7fv7OHzd1KUH0PRP46xc3TgwjwgROIW572AfYg/X9kaNq/LJnu6oJcFRXlIrGoTRw== + dependencies: + jsesc "~0.5.0" + +relay-runtime@12.0.0: + version "12.0.0" + resolved "https://registry.yarnpkg.com/relay-runtime/-/relay-runtime-12.0.0.tgz#1e039282bdb5e0c1b9a7dc7f6b9a09d4f4ff8237" + integrity sha512-QU6JKr1tMsry22DXNy9Whsq5rmvwr3LSZiiWV/9+DFpuTWvp+WFhobWMc8TC4OjKFfNhEZy7mOiqUAn5atQtug== + dependencies: + "@babel/runtime" "^7.0.0" + fbjs "^3.0.0" + invariant "^2.2.4" + +remedial@^1.0.7: + version "1.0.8" + resolved "https://registry.yarnpkg.com/remedial/-/remedial-1.0.8.tgz#a5e4fd52a0e4956adbaf62da63a5a46a78c578a0" + integrity sha512-/62tYiOe6DzS5BqVsNpH/nkGlX45C/Sp6V+NtiN6JQNS1Viay7cWkazmRkrQrdFj2eshDe96SIQNIoMxqhzBOg== + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw== + +remove-trailing-spaces@^1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/remove-trailing-spaces/-/remove-trailing-spaces-1.0.8.tgz#4354d22f3236374702f58ee373168f6d6887ada7" + integrity sha512-O3vsMYfWighyFbTd8hk8VaSj9UAGENxAtX+//ugIst2RMk5e03h6RoIS+0ylsFxY1gvmPuAY/PO4It+gPEeySA== + +repeat-element@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" + integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== + +repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== + +repeating@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + integrity sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A== + dependencies: + is-finite "^1.0.0" + +request@2.88.2, request@^2.79.0, request@^2.85.0: + version "2.88.2" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== + 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" + +require-directory@^2.1.1: + version "2.1.1" + 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.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.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +require-in-the-middle@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/require-in-the-middle/-/require-in-the-middle-7.2.0.tgz#b539de8f00955444dc8aed95e17c69b0a4f10fcf" + integrity sha512-3TLx5TGyAY6AOqLBoXmHkNql0HIf2RGbuMgCDT2WO/uGVAPJs6h7Kl+bN6TIZGd9bWhWPwnDnTHGtW8Iu77sdw== + dependencies: + debug "^4.1.1" + module-details-from-path "^1.0.3" + resolve "^1.22.1" + +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" + 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" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + +require-package-name@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/require-package-name/-/require-package-name-2.0.1.tgz#c11e97276b65b8e2923f75dabf5fb2ef0c3841b9" + integrity sha512-uuoJ1hU/k6M0779t3VMVIYpb2VMJk05cehCaABFhXaibcbvfgR8wKiozLjVFSzJPmQMRqIcO0HMyTFqfV09V6Q== + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== + +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" + integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== + +resolve-from@5.0.0, resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + integrity sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg== + +resolve@1.17.0: + version "1.17.0" + 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.1.7, resolve@^1.10.0, resolve@^1.17.0, resolve@^1.22.1, resolve@^1.22.2, resolve@^1.8.1, resolve@~1.22.6: + 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" + +resolve@^2.0.0-next.1: + version "2.0.0-next.5" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.5.tgz#6b0ec3107e671e52b68cd068ef327173b90dc03c" + integrity sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA== + dependencies: + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +responselike@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" + integrity sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ== + dependencies: + lowercase-keys "^1.0.0" + +responselike@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.1.tgz#9a0bc8fdc252f3fb1cca68b016591059ba1422bc" + integrity sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw== + dependencies: + lowercase-keys "^2.0.0" + +responselike@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-3.0.0.tgz#20decb6c298aff0dbee1c355ca95461d42823626" + integrity sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg== + dependencies: + lowercase-keys "^3.0.0" + +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + integrity sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q== + dependencies: + onetime "^2.0.0" + signal-exit "^3.0.2" + +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +restore-cursor@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-4.0.0.tgz#519560a4318975096def6e609d44100edaa4ccb9" + integrity sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== + +ret@~0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.2.2.tgz#b6861782a1f4762dce43402a71eb7a283f44573c" + integrity sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ== + +retimer@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/retimer/-/retimer-3.0.0.tgz#98b751b1feaf1af13eb0228f8ea68b8f9da530df" + integrity sha512-WKE0j11Pa0ZJI5YIk0nflGI7SQsfl2ljihVy7ogh7DeQSeYAUi0ubZ/yEueGtDfUPk6GH5LRw1hBdLq4IwUBWA== + +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== + +retry@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" + integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +revalidator@0.1.x: + version "0.1.8" + resolved "https://registry.yarnpkg.com/revalidator/-/revalidator-0.1.8.tgz#fece61bfa0c1b52a206bd6b18198184bdd523a3b" + integrity sha512-xcBILK2pA9oh4SiinPEZfhP8HfrB/ha+a2fTMyl7Om2WjlDVrOQy99N2MXXlUHqGJz4qEu2duXxHJjDWuK/0xg== + +rfdc@^1.2.0, rfdc@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" + integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== + +rimraf@^2.2.8, rimraf@^2.6.3: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +rimraf@^3.0.0, rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.2" + 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.1, rlp@^2.2.2, rlp@^2.2.3, rlp@^2.2.4, rlp@^2.2.5: + 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" + +rollup@^3.27.1: + version "3.29.4" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.29.4.tgz#4d70c0f9834146df8705bfb69a9a19c9e1109981" + integrity sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw== + optionalDependencies: + fsevents "~2.3.2" + +run-async@^2.2.0, run-async@^2.4.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" + integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== + +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" + integrity sha512-jJA7irRNM91jaKc3Hcl1npHsFLOXOoTkPCUL1JEa1R82O2miplXXRaGdjW/KM/98YQWDhJLiSs793CnXfblJUw== + dependencies: + queue-microtask "^1.2.2" + +run-parallel@^1.1.4, run-parallel@^1.1.9: + version "1.2.0" + 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.yarnpkg.com/rustbn.js/-/rustbn.js-0.2.0.tgz#8082cb886e707155fd1cb6f23bd591ab8d55d0ca" + integrity sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA== + +rxjs@^6.3.3, rxjs@^6.4.0, rxjs@^6.6.2: + version "6.6.7" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" + integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== + dependencies: + tslib "^1.9.0" + +rxjs@^7.5.1, rxjs@^7.5.5: + version "7.8.1" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" + integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== + dependencies: + tslib "^2.1.0" + +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" + 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" + +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.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.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.yarnpkg.com/safe-event-emitter/-/safe-event-emitter-1.0.1.tgz#5b692ef22329ed8f69fdce607e50ca734f6f20af" + integrity sha512-e1wFe99A91XYYxoQbcq2ZJUWurxEyP8vfz7A7vuUe1s95q8r5ebraVaA1BukYJcpM6V16ugWoD9vngi8Ccu5fg== + dependencies: + events "^3.0.0" + +safe-json-stringify@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz#356e44bc98f1f93ce45df14bcd7c01cda86e0afd" + integrity sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg== + +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" + integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + is-regex "^1.1.4" + +safe-regex2@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/safe-regex2/-/safe-regex2-2.0.0.tgz#b287524c397c7a2994470367e0185e1916b1f5b9" + integrity sha512-PaUSFsUaNNuKwkBijoAPHAK6/eM6VirvyPWlZ7BAQy4D+hCvh4B6lIG+nPdhbFfIbP+gTGBcrdsOaUs0F+ZBOQ== + dependencies: + ret "~0.2.0" + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + integrity sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg== + dependencies: + ret "~0.1.10" + +safe-stable-stringify@^2.1.0, safe-stable-stringify@^2.3.1: + version "2.4.3" + resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz#138c84b6f6edb3db5f8ef3ef7115b8f55ccbf886" + integrity sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g== + +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sass@^1.56.1: + version "1.69.5" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.69.5.tgz#23e18d1c757a35f2e52cc81871060b9ad653dfde" + integrity sha512-qg2+UCJibLr2LCVOt3OlPhr/dqVHWOa9XtZf2OjbLs/T4VPSJ00udtgJxH3neXZm+QqX8B+3cU7RaLqp1iVfcQ== + dependencies: + chokidar ">=3.0.0 <4.0.0" + immutable "^4.0.0" + source-map-js ">=0.6.2 <2.0.0" + +saxes@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-6.0.0.tgz#fe5b4a4768df4f14a201b1ba6a65c1f3d9988cc5" + integrity sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA== + dependencies: + xmlchars "^2.2.0" + +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== + +scryptsy@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/scryptsy/-/scryptsy-1.2.1.tgz#a3225fa4b2524f802700761e2855bdf3b2d92163" + integrity sha512-aldIRgMozSJ/Gl6K6qmJZysRP82lz83Wb42vl4PWN8SaLFHIaOzLPc9nUUW2jQN88CuGm5q5HefJ9jZ3nWSmTw== + dependencies: + pbkdf2 "^3.0.3" + +scuid@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/scuid/-/scuid-1.1.0.tgz#d3f9f920956e737a60f72d0e4ad280bf324d5dab" + integrity sha512-MuCAyrGZcTLfQoH2XoBlQ8C6bzwN88XT/0slOGz0pn8+gIP85BOAfYa44ZXQUTOwRwPU0QvgU+V+OSajl/59Xg== + +scule@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/scule/-/scule-1.1.0.tgz#cbc109256b4aa59fc8074151284cb8cb103531eb" + integrity sha512-vRUjqhyM/YWYzT+jsMk6tnl3NkY4A4soJ8uyh3O6Um+JXEQL9ozUCe7pqrxn3CSKokw0hw3nFStfskzpgYwR0g== + +secp256k1@^4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-4.0.3.tgz#c4559ecd1b8d3c1827ed2d1b94190d69ce267303" + integrity sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA== + dependencies: + elliptic "^6.5.4" + node-addon-api "^2.0.0" + node-gyp-build "^4.2.0" + +secure-json-parse@^2.5.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/secure-json-parse/-/secure-json-parse-2.7.0.tgz#5a5f9cd6ae47df23dba3151edd06855d47e09862" + integrity sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw== + +seedrandom@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/seedrandom/-/seedrandom-3.0.1.tgz#eb3dde015bcf55df05a233514e5df44ef9dce083" + integrity sha512-1/02Y/rUeU1CJBAGLebiC5Lbo5FnB22gQbIFFYTLkwvp1xdABZJH1sn4ZT1MzXmPpzv+Rf/Lu2NcsLJiK4rcDg== + +seek-bzip@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/seek-bzip/-/seek-bzip-1.0.6.tgz#35c4171f55a680916b52a07859ecf3b5857f21c4" + integrity sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ== + dependencies: + commander "^2.8.1" + +semaphore@>=1.0.1, semaphore@^1.0.3, semaphore@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/semaphore/-/semaphore-1.1.0.tgz#aaad8b86b20fe8e9b32b16dc2ee682a8cd26a8aa" + integrity sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA== + +semver-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" + integrity sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow== + +semver-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-4.0.0.tgz#3afcf5ed6d62259f5c72d0d5d50dffbdc9680df5" + integrity sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA== + dependencies: + semver "^7.3.5" + +"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.5.0, semver@^5.6.0: + version "5.7.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" + integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== + +semver@7.3.8: + version "7.3.8" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" + integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== + dependencies: + lru-cache "^6.0.0" + +semver@7.5.4, semver@^7.0.0, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.6, semver@^7.3.7, semver@^7.3.8, semver@^7.5.2, semver@^7.5.3, semver@^7.5.4: + version "7.5.4" + 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@^6.0.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" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +semver@~5.4.1: + version "5.4.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" + integrity sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg== + +send@0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" + 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" + +sentence-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/sentence-case/-/sentence-case-3.0.4.tgz#3645a7b8c117c787fde8702056225bb62a45131f" + integrity sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + upper-case-first "^2.0.2" + +serialize-javascript@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4" + integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA== + dependencies: + randombytes "^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" + 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" + integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.18.0" + +servify@^0.1.12: + version "0.1.12" + resolved "https://registry.yarnpkg.com/servify/-/servify-0.1.12.tgz#142ab7bee1f1d033b66d0707086085b17c06db95" + 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" + +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== + +set-cookie-parser@^2.4.1: + version "2.6.0" + resolved "https://registry.yarnpkg.com/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz#131921e50f62ff1a66a461d7d62d7b21d5d15a51" + integrity sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ== + +set-function-length@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.1.1.tgz#4bc39fafb0307224a33e106a7d35ca1218d659ed" + integrity sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ== + dependencies: + define-data-property "^1.1.1" + get-intrinsic "^1.2.1" + gopd "^1.0.1" + has-property-descriptors "^1.0.0" + +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" + 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.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" + integrity sha512-Li5AOqrZWCVA2n5kryzEmqai6bKSIvpz5oUJHPVj6+dsbD3X1ixtsY5tEnsaNpH3pFAHmG8eIHUrtEtohrg+UQ== + +set-value@^2.0.0, set-value@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" + integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== + 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.4, setimmediate@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== + +setprototypeof@1.2.0: + version "1.2.0" + 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.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg== + dependencies: + shebang-regex "^1.0.0" + +shebang-command@^2.0.0: + version "2.0.0" + 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@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shell-quote@^1.7.3: + version "1.8.1" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680" + integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== + +shelljs@^0.8.3, shelljs@^0.8.4: + version "0.8.5" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c" + integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow== + dependencies: + glob "^7.0.0" + interpret "^1.0.0" + rechoir "^0.6.2" + +shimmer@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/shimmer/-/shimmer-1.2.1.tgz#610859f7de327b587efebf501fb43117f9aff337" + integrity sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw== + +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + +signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +signal-exit@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + +signed-varint@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/signed-varint/-/signed-varint-2.0.1.tgz#50a9989da7c98c2c61dad119bc97470ef8528129" + integrity sha512-abgDPg1106vuZZOvw7cFwdCABddfJRz5akcCcchzTbhyhYnsG31y4AlZEgp315T7W3nQq5P4xeOm186ZiPVFzw== + dependencies: + varint "~5.0.0" + +signedsource@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/signedsource/-/signedsource-1.0.0.tgz#1ddace4981798f93bd833973803d80d52e93ad6a" + integrity sha512-6+eerH9fEnNmi/hyM1DXcRK3pWdoMQtlkQ+ns0ntzunjKqp5i3sKCc80ym8Fib3iaYhdJUOPdhlJWj1tvge2Ww== + +simple-concat@^1.0.0: + version "1.0.1" + 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.yarnpkg.com/simple-get/-/simple-get-2.8.2.tgz#5708fb0919d440657326cd5fe7d2599d07705019" + integrity sha512-Ijd/rV5o+mSBBs4F/x9oDPtTx9Zb6X9brmnXvMW4J7IR15ngi9q5xxqWBKU744jTZiaXtxaPL7uHG6vtN8kUkw== + dependencies: + decompress-response "^3.3.0" + once "^1.3.1" + simple-concat "^1.0.0" + +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== + dependencies: + is-arrayish "^0.3.1" + +slash@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + integrity sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg== + +slash@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" + integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slash@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" + integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== + +slice-ansi@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" + integrity sha512-up04hB2hR92PgjpyU3y/eg91yIBILyjVY26NvvciY3EVVPjybkMszMpXQ9QAkcS3I5rtJBDLoTxxg+qvW8c7rw== + +slice-ansi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" + integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +slice-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +slice-ansi@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-5.0.0.tgz#b73063c57aa96f9cd881654b15294d95d285c42a" + integrity sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ== + dependencies: + ansi-styles "^6.0.0" + is-fullwidth-code-point "^4.0.0" + +snake-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-3.0.4.tgz#4f2bbd568e9935abdfd593f34c691dadb49c452c" + integrity sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== + 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" + +snarkjs@0.4.7: + version "0.4.7" + resolved "https://registry.yarnpkg.com/snarkjs/-/snarkjs-0.4.7.tgz#d4f8e854896705ec746ca91742b076333efb7083" + integrity sha512-gehpEKZwhBZEYPLokfBqtHIxaHHy50LYDI4xFVopNEwICInHPIbG4nJ0nJ1vgqz+bv824UFQC84XnQ0C/mPjag== + dependencies: + "@iden3/binfileutils" "0.0.8" + blake2b-wasm "^2.3.0" + circom_runtime "0.1.13" + ejs "^3.1.6" + fastfile "0.0.19" + ffjavascript "0.2.37" + js-sha3 "^0.8.0" + logplease "^1.2.15" + r1csfile "0.0.32" + readline "^1.3.0" + +snarkjs@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/snarkjs/-/snarkjs-0.5.0.tgz#cf26bf1d3835eb16b4b330a438bad9824837d6b0" + integrity sha512-KWz8mZ2Y+6wvn6GGkQo6/ZlKwETdAGohd40Lzpwp5TUZCn6N6O4Az1SuX1rw/qREGL6Im+ycb19suCFE8/xaKA== + dependencies: + "@iden3/binfileutils" "0.0.11" + bfj "^7.0.2" + blake2b-wasm "^2.4.0" + circom_runtime "0.1.21" + ejs "^3.1.6" + fastfile "0.0.20" + ffjavascript "0.2.56" + js-sha3 "^0.8.0" + logplease "^1.2.15" + r1csfile "0.0.41" + +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.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" + +solc@^0.6.3: + version "0.6.12" + resolved "https://registry.yarnpkg.com/solc/-/solc-0.6.12.tgz#48ac854e0c729361b22a7483645077f58cba080e" + integrity sha512-Lm0Ql2G9Qc7yPP2Ba+WNmzw2jwsrd3u4PobHYlSOxaut3TtUbj9+5ZrT6f4DUpNPEoBaFUOEg9Op9C0mk7ge9g== + dependencies: + command-exists "^1.2.8" + commander "3.0.2" + 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@^3.3.2: + version "3.6.2" + resolved "https://registry.yarnpkg.com/solhint/-/solhint-3.6.2.tgz#2b2acbec8fdc37b2c68206a71ba89c7f519943fe" + integrity sha512-85EeLbmkcPwD+3JR7aEMKsVC9YrRSxd4qkXuMzrlf7+z2Eqdfm1wHWq1ffTuo5aDhoZxp2I9yF3QkxZOxOL7aQ== + 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" + optionalDependencies: + prettier "^2.8.3" + +solidity-rlp@2.0.8: + version "2.0.8" + resolved "https://registry.yarnpkg.com/solidity-rlp/-/solidity-rlp-2.0.8.tgz#1548370b690ef06dbb62af06b7675bc86b19bbe3" + integrity sha512-gzYzHoFKRH1ydJeCfzm3z/BvKrZGK/V9+qbOlNbBcRAYeizjCdDNhLTTE8iIJrHqsRrZRSOo+7mhbnxoBoZvJQ== + +sonic-boom@^2.2.1: + version "2.8.0" + resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-2.8.0.tgz#c1def62a77425090e6ad7516aad8eb402e047611" + integrity sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg== + dependencies: + atomic-sleep "^1.0.0" + +sonic-boom@^3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-3.7.0.tgz#b4b7b8049a912986f4a92c51d4660b721b11f2f2" + integrity sha512-IudtNvSqA/ObjN97tfgNmOKyDOs4dNcg4cUUsHDebqsgb8wGBBwb31LIgShNO8fye0dFI52X1+tFoKKI6Rq1Gg== + dependencies: + atomic-sleep "^1.0.0" + +sort-keys-length@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sort-keys-length/-/sort-keys-length-1.0.1.tgz#9cb6f4f4e9e48155a6aa0671edd336ff1479a188" + integrity sha512-GRbEOUqCxemTAk/b32F2xa8wDTs+Z1QHOkbhJDQTvv/6G3ZkbJ+frYWsTcc7cBB3Fu4wy4XlLCuNtJuMn7Gsvw== + dependencies: + sort-keys "^1.0.0" + +sort-keys@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" + integrity sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg== + dependencies: + is-plain-obj "^1.0.0" + +sort-keys@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-4.2.0.tgz#6b7638cee42c506fff8c1cecde7376d21315be18" + integrity sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg== + dependencies: + is-plain-obj "^2.0.0" + +"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== + +source-map-resolve@^0.5.0: + version "0.5.3" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" + integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== + 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.5.12: + version "0.5.12" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.12.tgz#b4f3b10d51857a5af0138d3ce8003b201613d599" + integrity sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-support@0.5.21, source-map-support@^0.5.11, source-map-support@^0.5.13, source-map-support@^0.5.19, source-map-support@^0.5.20, source-map-support@^0.5.21: + version "0.5.21" + 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" + source-map "^0.6.0" + +source-map-support@^0.4.15: + version "0.4.18" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" + integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA== + dependencies: + source-map "^0.5.6" + +source-map-url@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" + integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== + +source-map@0.6.1, source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.5.6, source-map@^0.5.7: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== + +sourcemap-codec@^1.4.8: + version "1.4.8" + resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" + integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== + +sparse-array@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/sparse-array/-/sparse-array-1.3.2.tgz#0e1a8b71706d356bc916fe754ff496d450ec20b0" + integrity sha512-ZT711fePGn3+kQyLuv1fpd3rNSkNF8vd5Kv2D+qnOANeyKs3fx6bUMGWRPvgTTcYV64QMqZKZwcuaQSP3AZ0tg== + +spdx-correct@^3.0.0: + version "3.2.0" + 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" + spdx-license-ids "^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" + 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" + 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.16" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz#a14f64e0954f6e25cc6587bd4f392522db0d998f" + integrity sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw== + +split-ca@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/split-ca/-/split-ca-1.0.1.tgz#6c83aff3692fa61256e0cd197e05e9de157691a6" + integrity sha512-Q5thBSxp5t8WPTTJQS59LrGqOZqOsrhDGDVm8azCqIBjSBd7nd9o2PM+mDulQQkh8h//4U6hFZnc/mul8t5pWQ== + +split-on-first@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f" + integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw== + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== + dependencies: + extend-shallow "^3.0.0" + +split2@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/split2/-/split2-1.1.1.tgz#162d9b18865f02ab2f2ad9585522db9b54c481f9" + integrity sha512-cfurE2q8LamExY+lJ9Ex3ZfBwqAPduzOKVscPDXNCLLMvyaeD3DTz1yk7fVIs6Chco+12XeD0BB6HEoYzPYbXA== + dependencies: + through2 "~2.0.0" + +split2@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4" + integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== + +sponge-case@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sponge-case/-/sponge-case-1.0.1.tgz#260833b86453883d974f84854cdb63aecc5aef4c" + integrity sha512-dblb9Et4DAtiZ5YSUZHLl4XhH4uK80GhAZrVXdN4O2P4gQ40Wa5UIOPUHlA/nFd2PLblBZWUioLMMAVrgpoYcA== + dependencies: + tslib "^2.0.3" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== + +sshpk@^1.7.0: + 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" + 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" + +stable@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" + integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== + +stack-generator@^2.0.3: + version "2.0.10" + resolved "https://registry.yarnpkg.com/stack-generator/-/stack-generator-2.0.10.tgz#8ae171e985ed62287d4f1ed55a1633b3fb53bb4d" + integrity sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ== + dependencies: + stackframe "^1.3.4" + +stack-trace@0.0.x: + version "0.0.10" + resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" + integrity sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg== + +stackframe@^1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.3.4.tgz#b881a004c8c149a5e8efef37d51b16e412943310" + integrity sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw== + +stacktrace-parser@^0.1.10: + version "0.1.10" + 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" + +standard-as-callback@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/standard-as-callback/-/standard-as-callback-2.1.0.tgz#8953fc05359868a77b5b9739a665c5977bb7df45" + integrity sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A== + +static-eval@2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/static-eval/-/static-eval-2.0.2.tgz#2d1759306b1befa688938454c546b7871f806a42" + integrity sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg== + dependencies: + escodegen "^1.8.1" + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + integrity sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g== + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + +"statuses@>= 1.5.0 < 2": + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== + +std-env@^3.4.3: + version "3.5.0" + resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.5.0.tgz#83010c9e29bd99bf6f605df87c19012d82d63b97" + integrity sha512-JGUEaALvL0Mf6JCfYnJOTcobY+Nc7sG/TemDRBqCA0wEr4DER7zDchaaixTlmOxAjG1uRJmX82EQcxwTQTkqVA== + +stdin-discarder@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/stdin-discarder/-/stdin-discarder-0.1.0.tgz#22b3e400393a8e28ebf53f9958f3880622efde21" + integrity sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ== + dependencies: + bl "^5.0.0" + +stream-browserify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-3.0.0.tgz#22b0a2850cdf6503e73085da1fc7b7d0c2122f2f" + integrity sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA== + dependencies: + inherits "~2.0.4" + readable-stream "^3.5.0" + +stream-http@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-3.2.0.tgz#1872dfcf24cb15752677e40e5c3f9cc1926028b5" + integrity sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A== + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.4" + readable-stream "^3.6.0" + xtend "^4.0.2" + +stream-shift@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" + integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== + +stream-to-it@^0.2.0, stream-to-it@^0.2.2: + version "0.2.4" + resolved "https://registry.yarnpkg.com/stream-to-it/-/stream-to-it-0.2.4.tgz#d2fd7bfbd4a899b4c0d6a7e6a533723af5749bd0" + integrity sha512-4vEbkSs83OahpmBybNJXlJd7d6/RxzkkSdT3I0mnGt79Xd2Kk+e1JqbvAvsQfCeKj3aKb0QIWkyK3/n0j506vQ== + dependencies: + get-iterator "^1.0.2" + +stream-to-pull-stream@^1.7.1: + version "1.7.3" + resolved "https://registry.yarnpkg.com/stream-to-pull-stream/-/stream-to-pull-stream-1.7.3.tgz#4161aa2d2eb9964de60bfa1af7feaf917e874ece" + integrity sha512-6sNyqJpr5dIOQdgNy/xcDWwDuzAsAwVzhzrWlAPAQ7Lkjx/rv0wgvxEyKwTq6FmNd5rjTrELt/CLmaSw7crMGg== + dependencies: + looper "^3.0.0" + pull-stream "^3.2.3" + +streaming-iterables@^4.1.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/streaming-iterables/-/streaming-iterables-4.1.2.tgz#0a98f1460be70d8bf904f7fffaeb10b16ed708ab" + integrity sha512-IzhmKnQ2thkNMUcaGsjedrxdAoXPhtIFn8hUlmSqSqafa2p0QmZudu6ImG7ckvPNfazpMfr6Ef8cxUWyIyxpxA== + +streamsearch@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" + integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== + +streamx@^2.15.0: + version "2.15.5" + resolved "https://registry.yarnpkg.com/streamx/-/streamx-2.15.5.tgz#87bcef4dc7f0b883f9359671203344a4e004c7f1" + integrity sha512-9thPGMkKC2GctCzyCUjME3yR03x2xNo0GPKGkRw2UMYN+gqWa9uqpyNWhmsNCutU5zHmkUum0LsCRQTXUgUCAg== + dependencies: + fast-fifo "^1.1.0" + queue-tick "^1.0.1" + +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" + integrity sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ== + +strict-uri-encode@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" + integrity sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ== + +string-argv@0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" + integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== + +string-env-interpolation@1.0.1, string-env-interpolation@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/string-env-interpolation/-/string-env-interpolation-1.0.1.tgz#ad4397ae4ac53fe6c91d1402ad6f6a52862c7152" + integrity sha512-78lwMoCcn0nNu8LszbP1UA7g55OeE4v7rCeWnM5B453rnNr4aq+5it3FEYtZrSEiMvHZOZ9Jlqb0OD0M2VInqg== + +string-template@~0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/string-template/-/string-template-0.2.1.tgz#42932e598a352d01fc22ec3367d9d84eec6c9add" + integrity sha512-Yptehjogou2xm4UJbxJ4CxgZx12HBfeystp0y3x7s4Dj32ltVVG1Gg8YhKjHZkHicuKpZX/ffilA8505VbUbpw== + +string-width@^1.0.1: + version "1.0.2" + 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", string-width@^2.1.0, string-width@^2.1.1: + version "2.1.1" + 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@^1.0.2 || 2 || 3 || 4", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + 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" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.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" + 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@^5.0.0, 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" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + +string.prototype.trim@^1.2.8, 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" + integrity sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + +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" + integrity sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + +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" + integrity sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + +string_decoder@^1.0.0, string_decoder@^1.1.1, string_decoder@^1.3.0: + 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" + +stringify-object@3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" + integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== + dependencies: + get-own-enumerable-property-symbols "^3.0.0" + is-obj "^1.0.1" + is-regexp "^1.0.0" + +strip-ansi-control-characters@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi-control-characters/-/strip-ansi-control-characters-2.0.0.tgz#8875b5ba3a859a0a44f94e1cf7d3eda8980997b9" + integrity sha512-Q0/k5orrVGeaOlIOUn1gybGU0IcAbgHQT1faLo5hik4DqClKVSaka5xOhNNoRgtfztHVxCYxi7j71mrWom0bIw== + +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" + 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" + 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" + 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" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^7.0.0, strip-ansi@^7.0.1: + version "7.1.0" + 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.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + integrity sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g== + dependencies: + is-utf8 "^0.2.0" + +strip-dirs@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-dirs/-/strip-dirs-3.0.0.tgz#7c9a5d7822ce079a9db40387a4b20d5654746f42" + integrity sha512-I0sdgcFTfKQlUPZyAqPJmSG3HLO9rWDFnxonnIbskYNM3DwFOeTNB5KzVq3dA1GdRAc/25b5Y7UO2TQfKWw4aQ== + dependencies: + inspect-with-kind "^1.0.5" + is-plain-obj "^1.1.0" + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-final-newline@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" + integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== + +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" + integrity sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A== + dependencies: + is-hex-prefixed "1.0.0" + +strip-indent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" + integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== + dependencies: + min-indent "^1.0.0" + +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" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +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-literal@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/strip-literal/-/strip-literal-1.3.0.tgz#db3942c2ec1699e6836ad230090b84bb458e3a07" + integrity sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg== + dependencies: + acorn "^8.10.0" + +strip-outer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-outer/-/strip-outer-2.0.0.tgz#c45c724ed9b1ff6be5f660503791404f4714084b" + integrity sha512-A21Xsm1XzUkK0qK1ZrytDUvqsQWict2Cykhvi0fBQntGG5JSprESasEyV1EZ/4CiR5WB5KjzLTrP/bO37B0wPg== + +strtok3@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/strtok3/-/strtok3-7.0.0.tgz#868c428b4ade64a8fd8fee7364256001c1a4cbe5" + integrity sha512-pQ+V+nYQdC5H3Q7qBZAz/MO6lwGhoC2gOAjuouGf/VO0m7vQRh8QNMl2Uf6SwAtzZ9bOw3UIeBukEGNJl5dtXQ== + dependencies: + "@tokenizer/token" "^0.3.0" + peek-readable "^5.0.0" + +sucrase@^3.32.0: + version "3.34.0" + resolved "https://registry.yarnpkg.com/sucrase/-/sucrase-3.34.0.tgz#1e0e2d8fcf07f8b9c3569067d92fbd8690fb576f" + integrity sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw== + dependencies: + "@jridgewell/gen-mapping" "^0.3.2" + commander "^4.0.0" + glob "7.1.6" + lines-and-columns "^1.1.6" + mz "^2.7.0" + pirates "^4.0.1" + ts-interface-checker "^0.1.9" + +supports-color@8.1.1, 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@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + integrity sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g== + +supports-color@^5.3.0: + version "5.5.0" + 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.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" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-color@^9.0.0: + version "9.4.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-9.4.0.tgz#17bfcf686288f531db3dea3215510621ccb55954" + integrity sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw== + +supports-hyperlinks@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz#3943544347c1ff90b15effb03fc14ae45ec10624" + integrity sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA== + dependencies: + has-flag "^4.0.0" + supports-color "^7.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" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +swap-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/swap-case/-/swap-case-2.0.2.tgz#671aedb3c9c137e2985ef51c51f9e98445bf70d9" + integrity sha512-kc6S2YS/2yXbtkSMunBtKdah4VFETZ8Oh6ONSmSd9bRxhqTrtARUCBUiWXH3xVPpvR7tz2CSnkuXVE42EcGnMw== + dependencies: + tslib "^2.0.3" + +swarm-js@^0.1.40: + version "0.1.42" + resolved "https://registry.yarnpkg.com/swarm-js/-/swarm-js-0.1.42.tgz#497995c62df6696f6e22372f457120e43e727979" + 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" + +symbol-observable@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" + integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== + +symbol-tree@^3.2.4: + version "3.2.4" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== + +sync-request@6.1.0: + version "6.1.0" + 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" + sync-rpc "^1.2.1" + then-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" + integrity sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw== + dependencies: + get-port "^3.1.0" + +tabbable@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-6.2.0.tgz#732fb62bc0175cfcec257330be187dcfba1f3b97" + integrity sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew== + +table@^6.8.0, table@^6.8.1: + version "6.8.1" + resolved "https://registry.yarnpkg.com/table/-/table-6.8.1.tgz#ea2b71359fe03b017a5fbc296204471158080bdf" + integrity sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA== + 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" + +tabtab@3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/tabtab/-/tabtab-3.0.2.tgz#a2cea0f1035f88d145d7da77eaabbd3fe03e1ec9" + integrity sha512-jANKmUe0sIQc/zTALTBy186PoM/k6aPrh3A7p6AaAfF6WPSbTx1JYeGIGH162btpH+mmVEXln+UxwViZHO2Jhg== + dependencies: + debug "^4.0.1" + es6-promisify "^6.0.0" + inquirer "^6.0.0" + minimist "^1.2.0" + mkdirp "^0.5.1" + untildify "^3.0.3" + +tailwindcss@^3.2.4: + version "3.3.5" + resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.3.5.tgz#22a59e2fbe0ecb6660809d9cc5f3976b077be3b8" + integrity sha512-5SEZU4J7pxZgSkv7FP1zY8i2TIAOooNZ1e/OGtxIEv6GltpoiXUqWvLy89+a10qYTB1N5Ifkuw9lqQkN9sscvA== + dependencies: + "@alloc/quick-lru" "^5.2.0" + arg "^5.0.2" + chokidar "^3.5.3" + didyoumean "^1.2.2" + dlv "^1.1.3" + fast-glob "^3.3.0" + glob-parent "^6.0.2" + is-glob "^4.0.3" + jiti "^1.19.1" + lilconfig "^2.1.0" + micromatch "^4.0.5" + normalize-path "^3.0.0" + object-hash "^3.0.0" + picocolors "^1.0.0" + postcss "^8.4.23" + postcss-import "^15.1.0" + postcss-js "^4.0.1" + postcss-load-config "^4.0.1" + postcss-nested "^6.0.1" + postcss-selector-parser "^6.0.11" + resolve "^1.22.2" + sucrase "^3.32.0" + +tape@^4.6.3: + version "4.17.0" + resolved "https://registry.yarnpkg.com/tape/-/tape-4.17.0.tgz#de89f3671ddc5dad178d04c28dc6b0183f42268e" + 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-fs@~1.16.3: + version "1.16.3" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-1.16.3.tgz#966a628841da2c4010406a82167cbd5e0c72d509" + integrity sha512-NvCeXpYx7OsmOh8zIOP/ebG55zZmxLE0etfWRbWok+q2Qo8x/vOR/IJT1taADXPe+jsiu9axDb3X4B+iIgNlKw== + dependencies: + chownr "^1.0.1" + mkdirp "^0.5.1" + pump "^1.0.0" + tar-stream "^1.1.2" + +tar-stream@^1.1.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.2.tgz#8ea55dab37972253d9a9af90fdcd559ae435c555" + integrity sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A== + dependencies: + bl "^1.0.0" + buffer-alloc "^1.2.0" + end-of-stream "^1.0.0" + fs-constants "^1.0.0" + readable-stream "^2.3.0" + to-buffer "^1.1.1" + xtend "^4.0.0" + +tar-stream@^3.0.0, tar-stream@^3.1.4: + version "3.1.6" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-3.1.6.tgz#6520607b55a06f4a2e2e04db360ba7d338cc5bab" + integrity sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg== + dependencies: + b4a "^1.6.4" + fast-fifo "^1.2.0" + streamx "^2.15.0" + +tar@^4.0.2: + version "4.4.19" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.19.tgz#2e4d7263df26f2b914dee10c825ab132123742f3" + 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" + +tar@^6.1.0, tar@^6.1.11: + version "6.2.0" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.0.tgz#b14ce49a79cb1cd23bc9b016302dea5474493f73" + integrity sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^5.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + +temp-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-2.0.0.tgz#bde92b05bdfeb1516e804c9c00ad45177f31321e" + integrity sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg== + +tempy@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/tempy/-/tempy-3.0.0.tgz#a6c0a15f5534a820e92c3e1369f1c1e87ebd6b68" + integrity sha512-B2I9X7+o2wOaW4r/CWMkpOO9mdiTRCxXNgob6iGvPmfPWgH/KyUD6Uy5crtWBxIBe3YrNZKR2lSzv1JJKWD4vA== + dependencies: + is-stream "^3.0.0" + temp-dir "^2.0.0" + type-fest "^2.12.2" + unique-string "^3.0.0" + +terminal-link@3.0.0, terminal-link@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-3.0.0.tgz#91c82a66b52fc1684123297ce384429faf72ac5c" + integrity sha512-flFL3m4wuixmf6IfhFJd1YPiLiMuxEc8uHRM1buzIeZPm22Au2pDqBJQgdo7n1WfPU1ONFGv7YDwpFBmHGF6lg== + dependencies: + ansi-escapes "^5.0.0" + supports-hyperlinks "^2.2.0" + +test-value@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/test-value/-/test-value-2.1.0.tgz#11da6ff670f3471a73b625ca4f3fdcf7bb748291" + integrity sha512-+1epbAxtKeXttkGFMTX9H42oqzOTufR1ceCF+GYA5aOmvaPq9wd4PUS8329fn2RRLGNeUkgRLnVpycjx8DsO2w== + dependencies: + array-back "^1.0.3" + typical "^2.6.0" + +testrpc@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/testrpc/-/testrpc-0.0.1.tgz#83e2195b1f5873aec7be1af8cbe6dcf39edb7aed" + integrity sha512-afH1hO+SQ/VPlmaLUFj2636QMeDvPCeQMc/9RBMW0IfjNe9gFD9Ra3ShqYkB7py0do1ZcCna/9acHyzTJ+GcNA== + +text-hex@1.0.x: + version "1.0.0" + resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5" + integrity sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg== + +text-table@^0.2.0: + version "0.2.0" + 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.yarnpkg.com/then-request/-/then-request-6.0.2.tgz#ec18dd8b5ca43aaee5cb92f7e4c1630e950d4f0c" + integrity sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA== + 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" + +thenify-all@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" + integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA== + dependencies: + thenify ">= 3.1.0 < 4" + +"thenify@>= 3.1.0 < 4": + version "3.3.1" + resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f" + integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== + dependencies: + any-promise "^1.0.0" + +thread-stream@^0.15.1: + version "0.15.2" + resolved "https://registry.yarnpkg.com/thread-stream/-/thread-stream-0.15.2.tgz#fb95ad87d2f1e28f07116eb23d85aba3bc0425f4" + integrity sha512-UkEhKIg2pD+fjkHQKyJO3yoIvAP3N6RlNFt2dUhcS1FGvCD1cQa1M/PGknCLFIyZdtJOWQjejp7bdNqmN7zwdA== + dependencies: + real-require "^0.1.0" + +thread-stream@^2.0.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/thread-stream/-/thread-stream-2.4.1.tgz#6d588b14f0546e59d3f306614f044bc01ce43351" + integrity sha512-d/Ex2iWd1whipbT681JmTINKw0ZwOUBZm7+Gjs64DHuX34mmw8vJL2bFAaNacaW72zYiTJxSHi5abUuOi5nsfg== + dependencies: + real-require "^0.2.0" + +thriftrw@^3.5.0: + version "3.11.4" + resolved "https://registry.yarnpkg.com/thriftrw/-/thriftrw-3.11.4.tgz#84c990ee89e926631c0b475909ada44ee9249870" + integrity sha512-UcuBd3eanB3T10nXWRRMwfwoaC6VMk7qe3/5YIWP2Jtw+EbHqJ0p1/K3x8ixiR5dozKSSfcg1W+0e33G1Di3XA== + dependencies: + bufrw "^1.2.1" + error "7.0.2" + long "^2.4.0" + +through2-filter@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/through2-filter/-/through2-filter-3.0.0.tgz#700e786df2367c2c88cd8aa5be4cf9c1e7831254" + integrity sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA== + dependencies: + through2 "~2.0.0" + xtend "~4.0.0" + +through2-map@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/through2-map/-/through2-map-3.0.0.tgz#a6c3026ce63b4898a997d540506b66ffd970f271" + integrity sha512-Ms68QPbSJKjRYY7fmqZHB0VGt+vD0/tjmDHUWgxltjifCof6hZWWeQAEi27Wjbs7jyNlIIyerQw/TVj7gHkd/Q== + dependencies: + through2 "~2.0.0" + xtend "^4.0.0" + +through2@^2.0.0, through2@^2.0.3, through2@~2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +"through@>=2.2.7 <3", through@^2.3.6, through@^2.3.8: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== + +time-zone@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/time-zone/-/time-zone-1.0.0.tgz#99c5bf55958966af6d06d83bdf3800dc82faec5d" + integrity sha512-TIsDdtKo6+XrPtiTm1ssmMngN1sAhyKnTO2kunQWqNPWIVvCm15Wmw4SWInwTVgJ5u/Tr04+8Ei9TNcw4x4ONA== + +timed-out@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" + integrity sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA== + +timeout-abort-controller@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/timeout-abort-controller/-/timeout-abort-controller-2.0.0.tgz#d6a59209132e520413092dd4b4d71eaaf5887feb" + integrity sha512-2FAPXfzTPYEgw27bQGTHc0SzrbmnU2eso4qo172zMLZzaGqeu09PFa5B2FCUHM1tflgRqPgn5KQgp6+Vex4uNA== + dependencies: + abort-controller "^3.0.0" + native-abort-controller "^1.0.4" + retimer "^3.0.0" + +timers-browserify@^2.0.4: + version "2.0.12" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" + integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== + dependencies: + setimmediate "^1.0.4" + +tiny-lru@^11.0.1: + version "11.2.5" + resolved "https://registry.yarnpkg.com/tiny-lru/-/tiny-lru-11.2.5.tgz#b138b99022aa26c567fa51a8dbf9e3e2959b2b30" + integrity sha512-JpqM0K33lG6iQGKiigcwuURAKZlq6rHXfrgeL4/I8/REoyJTGU+tEMszvT/oTRVHG2OiylhGDjqPp1jWMlr3bw== + +tinybench@^2.3.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-2.5.1.tgz#3408f6552125e53a5a48adee31261686fd71587e" + integrity sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg== + +tinypool@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-0.3.1.tgz#a99c2e446aba9be05d3e1cb756d6aed7af4723b6" + integrity sha512-zLA1ZXlstbU2rlpA4CIeVaqvWq41MTWqLY3FfsAXgC8+f7Pk7zroaJQxDgxn1xNudKW6Kmj4808rPFShUlIRmQ== + +tinyspy@^1.0.2: + version "1.1.1" + resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-1.1.1.tgz#0cb91d5157892af38cb2d217f5c7e8507a5bf092" + integrity sha512-UVq5AXt/gQlti7oxoIg5oi/9r0WpF7DGEVwXgqWSMmyN16+e3tl5lIvTaOpJ3TAtu5xFzWccFRM4R5NaWHF+4g== + +title-case@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/title-case/-/title-case-3.0.3.tgz#bc689b46f02e411f1d1e1d081f7c3deca0489982" + integrity sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA== + dependencies: + tslib "^2.0.3" + +tmp-promise@3.0.3, tmp-promise@^3.0.2, tmp-promise@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-3.0.3.tgz#60a1a1cc98c988674fcbfd23b6e3367bdeac4ce7" + integrity sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ== + dependencies: + tmp "^0.2.0" + +tmp-promise@^2.0.2: + version "2.1.1" + resolved "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-2.1.1.tgz#eb97c038995af74efbfe8156f5e07fdd0c935539" + integrity sha512-Z048AOz/w9b6lCbJUpevIJpRpUztENl8zdv1bmAKVHimfqRFl92ROkmT9rp7TVBnrEw2gtMTol/2Cp2S2kJa4Q== + dependencies: + tmp "0.1.0" + +tmp@0.0.33, tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + +tmp@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.1.0.tgz#ee434a4e22543082e294ba6201dcc6eafefa2877" + integrity sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw== + dependencies: + rimraf "^2.6.3" + +tmp@^0.2.0, tmp@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" + integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== + dependencies: + rimraf "^3.0.0" + +to-buffer@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80" + integrity sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg== + +to-fast-properties@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" + integrity sha512-lxrWP8ejsq+7E3nNjwYmUBMAgjMTZoTI+sdBOpvNyijeDLa29LUn9QaoXAHv4+Z578hbmHHJKZknzxVtvo77og== + +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" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + integrity sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg== + dependencies: + kind-of "^3.0.2" + +to-readable-stream@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-3.0.0.tgz#7c4aa6e3e2413c86c6276a57780dadfba226762f" + integrity sha512-vD2LytT6DxPynBa1xbMtswY9gGqj27wNbh2uvI5OhBe+mrGLurRWRQZyQn3812sqlQRtUJwaKVshG+PoGwbPDQ== + +to-readable-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" + integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + integrity sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg== + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +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" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +token-types@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/token-types/-/token-types-5.0.1.tgz#aa9d9e6b23c420a675e55413b180635b86a093b4" + integrity sha512-Y2fmSnZjQdDb9W4w4r1tswlMHylzWIeOKpx0aZH9BgGtACHhrk3OkT52AzwcuqTRBZtvvnTjDBh8eynMulu8Vg== + dependencies: + "@tokenizer/token" "^0.3.0" + ieee754 "^1.2.1" + +toml@3.0.0, toml@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/toml/-/toml-3.0.0.tgz#342160f1af1904ec9d204d03a5d61222d762c5ee" + integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w== + +tomlify-j0.4@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/tomlify-j0.4/-/tomlify-j0.4-3.0.0.tgz#99414d45268c3a3b8bf38be82145b7bba34b7473" + integrity sha512-2Ulkc8T7mXJ2l0W476YC/A209PR38Nw8PuaCNtk9uI3t1zzFdGQeWYGQvmj2PZkVvRC/Yoi4xQKMRnWc/N29tQ== + +tough-cookie@^4.1.2: + version "4.1.3" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.3.tgz#97b9adb0728b42280aa3d814b6b999b2ff0318bf" + integrity sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw== + dependencies: + psl "^1.1.33" + punycode "^2.1.1" + universalify "^0.2.0" + url-parse "^1.5.3" + +tough-cookie@~2.5.0: + version "2.5.0" + 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" + punycode "^2.1.1" + +tr46@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-3.0.0.tgz#555c4e297a950617e8eeddef633c87d4d9d6cbf9" + integrity sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA== + dependencies: + punycode "^2.1.1" + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + +trim-newlines@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" + integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== + +trim-repeated@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/trim-repeated/-/trim-repeated-2.0.0.tgz#5d60556d6d40d9461b7c7e06c3ac20b6b1d50090" + integrity sha512-QUHBFTJGdOwmp0tbOG505xAgOp/YliZP/6UgafFXYZ26WT1bvQmSMJUvkeVSASuJJHbqsFbynTvkd5W8RBTipg== + dependencies: + escape-string-regexp "^5.0.0" + +trim-right@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" + integrity sha512-WZGXGstmCWgeevgTL54hrCuw1dyMQIzWy7ZfqRJfSmJZBwklI15egmQytFP6bPidmw3M8d5yEowl1niq4vmqZw== + +triple-beam@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.4.1.tgz#6fde70271dc6e5d73ca0c3b24e2d92afb7441984" + integrity sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg== + +tryer@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" + integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA== + +ts-essentials@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/ts-essentials/-/ts-essentials-1.0.4.tgz#ce3b5dade5f5d97cf69889c11bf7d2da8555b15a" + integrity sha512-q3N1xS4vZpRouhYHDPwO0bDW3EZ6SK9CrrDHxi/D6BPReSjpVgWIOpLS2o0gSBZm+7q/wyKp6RVM1AeeW7uyfQ== + +ts-essentials@^6.0.3: + version "6.0.7" + resolved "https://registry.yarnpkg.com/ts-essentials/-/ts-essentials-6.0.7.tgz#5f4880911b7581a873783740ce8b94da163d18a6" + integrity sha512-2E4HIIj4tQJlIHuATRHayv0EfMGK3ris/GRk1E3CFnsZzeNV+hUmelbaTZHLtXaZppM5oLhHRtO04gINC4Jusw== + +ts-generator@^0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/ts-generator/-/ts-generator-0.0.8.tgz#7bd48ca064db026d9520bcb682b69efc20971d6a" + integrity sha512-Gi+aZCELpVL7Mqb+GuMgM+n8JZ/arZZib1iD/R9Ok8JDjOCOCrqS9b1lr72ku7J45WeDCFZxyJoRsiQvhokCnw== + dependencies: + "@types/mkdirp" "^0.5.2" + "@types/prettier" "^1.13.2" + "@types/resolve" "^0.0.8" + chalk "^2.4.1" + glob "^7.1.2" + mkdirp "^0.5.1" + prettier "^1.14.2" + resolve "^1.8.1" + ts-essentials "^1.0.0" + +ts-generator@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/ts-generator/-/ts-generator-0.1.1.tgz#af46f2fb88a6db1f9785977e9590e7bcd79220ab" + integrity sha512-N+ahhZxTLYu1HNTQetwWcx3so8hcYbkKBHTr4b4/YgObFTIKkOSSsaa+nal12w8mfrJAyzJfETXawbNjSfP2gQ== + dependencies: + "@types/mkdirp" "^0.5.2" + "@types/prettier" "^2.1.1" + "@types/resolve" "^0.0.8" + chalk "^2.4.1" + glob "^7.1.2" + mkdirp "^0.5.1" + prettier "^2.1.2" + resolve "^1.8.1" + ts-essentials "^1.0.0" + +ts-interface-checker@^0.1.9: + version "0.1.13" + resolved "https://registry.yarnpkg.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699" + integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== + +ts-log@^2.2.3: + version "2.2.5" + resolved "https://registry.yarnpkg.com/ts-log/-/ts-log-2.2.5.tgz#aef3252f1143d11047e2cb6f7cfaac7408d96623" + integrity sha512-PGcnJoTBnVGy6yYNFxWVNkdcAuAMstvutN9MgDJIV6L0oG8fB+ZNNy1T+wJzah8RPGor1mZuPQkVfXNDpy9eHA== + +ts-node@^10.9.1: + version "10.9.1" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" + integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== + 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" + +tslib@1.14.1, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.5.0, tslib@^2.6.1, 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== + +tslib@~2.4.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e" + integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA== + +tslib@~2.5.0: + version "2.5.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.3.tgz#24944ba2d990940e6e982c4bea147aba80209913" + integrity sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w== + +tsort@0.0.1: + version "0.0.1" + 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.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" + integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== + dependencies: + tslib "^1.8.1" + +tty-browserify@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.1.tgz#3f05251ee17904dfd0677546670db9651682b811" + integrity sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw== + +tunnel-agent@^0.6.0: + version "0.6.0" + 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.0, tweetnacl-util@^0.15.1: + version "0.15.1" + 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.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== + +tweetnacl@^1.0.0, tweetnacl@^1.0.3: + version "1.0.3" + 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: + version "0.4.0" + 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.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== + dependencies: + prelude-ls "~1.1.2" + +type-detect@^4.0.0, type-detect@^4.0.8: + version "4.0.8" + 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.18.0: + version "0.18.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f" + integrity sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw== + +type-fest@^0.20.2: + version "0.20.2" + 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.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + +type-fest@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" + integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== + +type-fest@^0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.7.1.tgz#8dda65feaf03ed78f0a3f9678f1869147f7c5c48" + integrity sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg== + +type-fest@^0.8.0, type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + +type-fest@^1.0.1, type-fest@^1.0.2: + version "1.4.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1" + integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== + +type-fest@^2.0.0, type-fest@^2.11.2, type-fest@^2.12.2, type-fest@^2.13.0, type-fest@^2.5.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b" + integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== + +type-fest@^3.0.0: + version "3.13.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-3.13.1.tgz#bb744c1f0678bea7543a2d1ec24e83e68e8c8706" + integrity sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g== + +type-is@~1.6.18: + version "1.6.18" + 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" + mime-types "~2.1.24" + +type@^1.0.1: + version "1.2.0" + 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.yarnpkg.com/type/-/type-2.7.2.tgz#2376a15a3a28b1efa0f5350dcf72d24df6ef98d0" + integrity sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw== + +typechain@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/typechain/-/typechain-3.0.0.tgz#d5a47700831f238e43f7429b987b4bb54849b92e" + integrity sha512-ft4KVmiN3zH4JUFu2WJBrwfHeDf772Tt2d8bssDTo/YcckKW2D+OwFrHXRC6hJvO3mHjFQTihoMV6fJOi0Hngg== + dependencies: + command-line-args "^4.0.7" + debug "^4.1.1" + fs-extra "^7.0.0" + js-sha3 "^0.8.0" + lodash "^4.17.15" + ts-essentials "^6.0.3" + ts-generator "^0.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" + integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + is-typed-array "^1.1.10" + +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" + 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" + +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" + 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" + +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" + integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== + dependencies: + call-bind "^1.0.2" + for-each "^0.3.3" + is-typed-array "^1.1.9" + +typedarray-to-buffer@^3.1.5, 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" + 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" + integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== + +typescript@^4.2.3, typescript@^4.9.3: + version "4.9.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" + integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== + +typescript@^5.0.0, typescript@^5.0.4: + version "5.3.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.3.2.tgz#00d1c7c1c46928c5845c1ee8d0cc2791031d4c43" + integrity sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ== + +typewise-core@^1.2, typewise-core@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/typewise-core/-/typewise-core-1.2.0.tgz#97eb91805c7f55d2f941748fa50d315d991ef195" + integrity sha512-2SCC/WLzj2SbUwzFOzqMCkz5amXLlxtJqDKTICqg30x+2DZxcfZN2MvQZmGfXWKNWaKK9pBPsvkcwv8bF/gxKg== + +typewise@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/typewise/-/typewise-1.0.3.tgz#1067936540af97937cc5dcf9922486e9fa284651" + integrity sha512-aXofE06xGhaQSPzt8hlTY+/YWQhm9P0jYUp1f2XtmW/3Bk0qzXcyFWAtPoo2uTGQj1ZwbDuSyuxicq+aDo8lCQ== + dependencies: + typewise-core "^1.2.0" + +typewiselite@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typewiselite/-/typewiselite-1.0.0.tgz#c8882fa1bb1092c06005a97f34ef5c8508e3664e" + integrity sha512-J9alhjVHupW3Wfz6qFRGgQw0N3gr8hOkw6zm7FZ6UR1Cse/oD9/JVok7DNE9TT9IbciDHX2Ex9+ksE6cRmtymw== + +typical@^2.6.0, typical@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/typical/-/typical-2.6.1.tgz#5c080e5d661cbbe38259d2e70a3c7253e873881d" + integrity sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg== + +typical@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/typical/-/typical-6.0.1.tgz#89bd1a6aa5e5e96fa907fb6b7579223bff558a06" + integrity sha512-+g3NEp7fJLe9DPa1TArHm9QAA7YciZmWnfAqEaFrBihQ7epOv9i99rjtgb6Iz0wh3WuQDjsCTDfgRoGnmHN81A== + +ua-parser-js@^1.0.35: + version "1.0.37" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.37.tgz#b5dc7b163a5c1f0c510b08446aed4da92c46373f" + integrity sha512-bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ== + +uc.micro@^1.0.1, uc.micro@^1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" + integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== + +ufo@^1.3.0, ufo@^1.3.1, ufo@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.3.2.tgz#c7d719d0628a1c80c006d2240e0d169f6e3c0496" + integrity sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA== + +uid-safe@2.1.5: + version "2.1.5" + resolved "https://registry.yarnpkg.com/uid-safe/-/uid-safe-2.1.5.tgz#2b3d5c7240e8fc2e58f8aa269e5ee49c0857bd3a" + integrity sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA== + dependencies: + random-bytes "~1.0.0" + +uint8arrays@^3.0.0, uint8arrays@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-3.1.1.tgz#2d8762acce159ccd9936057572dade9459f65ae0" + integrity sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg== + dependencies: + multiformats "^9.4.2" + +ulid@2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/ulid/-/ulid-2.3.0.tgz#93063522771a9774121a84d126ecd3eb9804071f" + integrity sha512-keqHubrlpvT6G2wH0OEfSW4mquYRcbe/J8NMmveoQOjUqmo+hXtO+ORCpWhdbZ7k72UtY61BL7haGxW6enBnjw== + +ultron@~1.1.0: + version "1.1.1" + 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.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + 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" + +unbzip2-stream@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz#b0da04c4371311df771cdc215e87f2130991ace7" + integrity sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg== + dependencies: + buffer "^5.2.1" + through "^2.3.8" + +unc-path-regex@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" + integrity sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg== + +uncrypto@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/uncrypto/-/uncrypto-0.1.3.tgz#e1288d609226f2d02d8d69ee861fa20d8348ef2b" + integrity sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q== + +underscore@1.12.1: + version "1.12.1" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.12.1.tgz#7bb8cc9b3d397e201cf8553336d262544ead829e" + integrity sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw== + +underscore@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.9.1.tgz#06dce34a0e68a7babc29b365b8e74b8925203961" + integrity sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg== + +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.28.0" + resolved "https://registry.yarnpkg.com/undici/-/undici-5.28.0.tgz#09f6aa4a6f34de8996eec585fe4ceebaa9ef3f36" + integrity sha512-gM12DkXhlAc5+/TPe60iy9P6ETgVfqTuRJ6aQ4w8RYu0MqKuXhaq3/b86GfzDQnNA3NUO6aUNdvevrKH59D0Nw== + dependencies: + "@fastify/busboy" "^2.0.0" + +unenv@^1.7.4: + version "1.8.0" + resolved "https://registry.yarnpkg.com/unenv/-/unenv-1.8.0.tgz#0f860d5278405700bd95d47b23bc01f3a735d68c" + integrity sha512-uIGbdCWZfhRRmyKj1UioCepQ0jpq638j/Cf0xFTn4zD1nGJ2lSdzYHLzfdXN791oo/0juUiSWW1fBklXMTsuqg== + dependencies: + consola "^3.2.3" + defu "^6.1.3" + mime "^3.0.0" + node-fetch-native "^1.4.1" + pathe "^1.1.1" + +unimport@^1.0.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/unimport/-/unimport-1.3.0.tgz#167ab78e60ea0e36a9a764c7b608ee95d7b2411c" + integrity sha512-fOkrdxglsHd428yegH0wPH/6IfaSdDeMXtdRGn6en/ccyzc2aaoxiUTMrJyc6Bu+xoa18RJRPMfLUHEzjz8atw== + dependencies: + "@rollup/pluginutils" "^5.0.2" + escape-string-regexp "^5.0.0" + fast-glob "^3.2.12" + local-pkg "^0.4.3" + magic-string "^0.27.0" + mlly "^1.1.0" + pathe "^1.0.0" + pkg-types "^1.0.1" + scule "^1.0.0" + strip-literal "^1.0.0" + unplugin "^1.0.1" + +union-value@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" + integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^2.0.1" + +unique-string@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-3.0.0.tgz#84a1c377aff5fd7a8bc6b55d8244b2bd90d75b9a" + integrity sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ== + dependencies: + crypto-random-string "^4.0.0" + +universal-user-agent@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.1.tgz#15f20f55da3c930c57bddbf1734c6654d5fd35aa" + integrity sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ== + +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +universalify@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0" + integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== + +universalify@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" + integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== + +unix-dgram@2.x: + version "2.0.6" + resolved "https://registry.yarnpkg.com/unix-dgram/-/unix-dgram-2.0.6.tgz#6d567b0eb6d7a9504e561532b598a46e34c5968b" + integrity sha512-AURroAsb73BZ6CdAyMrTk/hYKNj3DuYYEuOaB8bYMOHGKupRNScw90Q5C71tWJc3uE7dIeXRyuwN0xLLq3vDTg== + dependencies: + bindings "^1.5.0" + nan "^2.16.0" + +unixify@1.0.0, unixify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unixify/-/unixify-1.0.0.tgz#3a641c8c2ffbce4da683a5c70f03a462940c2090" + integrity sha512-6bc58dPYhCMHHuwxldQxO3RRNZ4eCogZ/st++0+fcC1nr0jiGUtAdBJ2qzmLQWSxbtz42pWt4QQMiZ9HvZf5cg== + dependencies: + normalize-path "^2.1.1" + +unorm@^1.3.3: + version "1.6.0" + resolved "https://registry.yarnpkg.com/unorm/-/unorm-1.6.0.tgz#029b289661fba714f1a9af439eb51d9b16c205af" + integrity sha512-b2/KCUlYZUeA7JFUuRJZPUtr4gZvBh7tavtv4fvk4+KV9pfGiR6CQAQAWl49ZpR3ts2dk4FYkP7EIgDJoiOLDA== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== + +unplugin-auto-import@^0.11.5: + version "0.11.5" + resolved "https://registry.yarnpkg.com/unplugin-auto-import/-/unplugin-auto-import-0.11.5.tgz#84c27e5f230bc1fc9004c162a39b81fcf89da740" + integrity sha512-nvbL2AQwLRR8wbHpJ6L1EBVNmjN045RSedTa4NtsGRkSQFXkI1iKHs4dTqJwcKZsnFrZOAKtLPiN1/oQTObLZw== + dependencies: + "@antfu/utils" "^0.7.0" + "@rollup/pluginutils" "^5.0.2" + local-pkg "^0.4.2" + magic-string "^0.26.7" + unimport "^1.0.1" + unplugin "^1.0.0" + +unplugin-vue-components@^0.22.11: + version "0.22.12" + resolved "https://registry.yarnpkg.com/unplugin-vue-components/-/unplugin-vue-components-0.22.12.tgz#39013f77be72d32df9d6ca1599e592a484015612" + integrity sha512-FxyzsuBvMCYPIk+8cgscGBQ345tvwVu+qY5IhE++eorkyvA4Z1TiD/HCiim+Kbqozl10i4K+z+NCa2WO2jexRA== + dependencies: + "@antfu/utils" "^0.7.2" + "@rollup/pluginutils" "^5.0.2" + chokidar "^3.5.3" + debug "^4.3.4" + fast-glob "^3.2.12" + local-pkg "^0.4.2" + magic-string "^0.27.0" + minimatch "^5.1.1" + resolve "^1.22.1" + unplugin "^1.0.1" + +unplugin@^1.0.0, unplugin@^1.0.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/unplugin/-/unplugin-1.5.1.tgz#806688376fa3dcca4d2fa2c5d27cf6cd0370fbef" + integrity sha512-0QkvG13z6RD+1L1FoibQqnvTwVBXvS4XSPwAyinVgoOCl2jAgwzdUKmEj05o4Lt8xwQI85Hb6mSyYkcAGwZPew== + dependencies: + acorn "^8.11.2" + chokidar "^3.5.3" + webpack-sources "^3.2.3" + webpack-virtual-modules "^0.6.0" + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + integrity sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ== + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +unstorage@^1.9.0: + version "1.10.1" + resolved "https://registry.yarnpkg.com/unstorage/-/unstorage-1.10.1.tgz#bf8cc00a406e40a6293e893da9807057d95875b0" + integrity sha512-rWQvLRfZNBpF+x8D3/gda5nUCQL2PgXy2jNG4U7/Rc9BGEv9+CAJd0YyGCROUBKs9v49Hg8huw3aih5Bf5TAVw== + dependencies: + anymatch "^3.1.3" + chokidar "^3.5.3" + destr "^2.0.2" + h3 "^1.8.2" + ioredis "^5.3.2" + listhen "^1.5.5" + lru-cache "^10.0.2" + mri "^1.2.0" + node-fetch-native "^1.4.1" + ofetch "^1.3.3" + ufo "^1.3.1" + +untildify@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/untildify/-/untildify-3.0.3.tgz#1e7b42b140bcfd922b22e70ca1265bfe3634c7c9" + integrity sha512-iSk/J8efr8uPT/Z4eSUywnqyrQU7DSdMfdqK4iWEaUVVmcP5JcnpRqmVMwcwcnmI1ATFNgC5V90u09tBynNFKA== + +untun@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/untun/-/untun-0.1.2.tgz#fa42a62ae24c1c5c6f3209692a2b0e1f573f1353" + integrity sha512-wLAMWvxfqyTiBODA1lg3IXHQtjggYLeTK7RnSfqtOXixWJ3bAa2kK/HHmOOg19upteqO3muLvN6O/icbyQY33Q== + dependencies: + citty "^0.1.3" + consola "^3.2.3" + pathe "^1.1.1" + +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" + integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" + +update-notifier@6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-6.0.2.tgz#a6990253dfe6d5a02bd04fbb6a61543f55026b60" + integrity sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og== + dependencies: + boxen "^7.0.0" + chalk "^5.0.1" + configstore "^6.0.0" + has-yarn "^3.0.0" + import-lazy "^4.0.0" + is-ci "^3.0.1" + is-installed-globally "^0.4.0" + is-npm "^6.0.0" + is-yarn-global "^0.4.0" + latest-version "^7.0.0" + pupa "^3.1.0" + semver "^7.3.7" + semver-diff "^4.0.0" + xdg-basedir "^5.1.0" + +upper-case-first@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/upper-case-first/-/upper-case-first-2.0.2.tgz#992c3273f882abd19d1e02894cc147117f844324" + integrity sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg== + dependencies: + tslib "^2.0.3" + +upper-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-2.0.2.tgz#d89810823faab1df1549b7d97a76f8662bae6f7a" + integrity sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg== + dependencies: + tslib "^2.0.3" + +uqr@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/uqr/-/uqr-0.1.2.tgz#5c6cd5dcff9581f9bb35b982cb89e2c483a41d7d" + integrity sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA== + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + integrity sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg== + +url-parse-lax@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" + integrity sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ== + dependencies: + prepend-http "^2.0.0" + +url-parse@^1.5.3: + version "1.5.10" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" + integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== + dependencies: + querystringify "^2.1.1" + requires-port "^1.0.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" + integrity sha512-3AChu4NiXquPfeckE5R5cGdiHCMWJx1dwCWOmWIL4KHAziJNOFIYJlpGFeKDvwLPHovZRCxK3cYlwzqI9Vp+Gg== + +url@^0.11.0: + version "0.11.3" + 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" + +urlpattern-polyfill@8.0.2, urlpattern-polyfill@^8.0.0: + version "8.0.2" + resolved "https://registry.yarnpkg.com/urlpattern-polyfill/-/urlpattern-polyfill-8.0.2.tgz#99f096e35eff8bf4b5a2aa7d58a1523d6ebc7ce5" + integrity sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ== + +use-sync-external-store@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz#7dbefd6ef3fe4e767a0cf5d7287aacfb5846928a" + integrity sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA== + +use@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== + +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.yarnpkg.com/utf8/-/utf8-3.0.0.tgz#f052eed1364d696e769ef058b183df88c87f69d1" + integrity sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ== + +util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +util.promisify@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.1.2.tgz#02b3dbadbb80071eee4c43aed58747afdfc516db" + integrity sha512-PBdZ03m1kBnQ5cjjO0ZvJMJS+QsbyIcFwi4hY4U76OQsCO9JrOYjbCFgIF76ccFg9xnJo7ZHPkqyj1GqmdS7MA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + for-each "^0.3.3" + has-proto "^1.0.1" + has-symbols "^1.0.3" + object.getownpropertydescriptors "^2.1.6" + safe-array-concat "^1.0.0" + +util@^0.12.4, util@^0.12.5: + version "0.12.5" + 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" + is-arguments "^1.0.4" + is-generator-function "^1.0.7" + is-typed-array "^1.1.3" + which-typed-array "^1.1.2" + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== + +uuid@3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" + integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== + +uuid@9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.0.tgz#592f550650024a38ceb0c562f2f6aa435761efb5" + integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg== + +uuid@^3.2.2, uuid@^3.3.2: + version "3.4.0" + 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.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.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" + integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== + +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" + 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" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +validate-npm-package-name@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-4.0.0.tgz#fe8f1c50ac20afdb86f177da85b3600f0ac0d747" + integrity sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q== + dependencies: + builtins "^5.0.0" + +valtio@1.11.2: + version "1.11.2" + resolved "https://registry.yarnpkg.com/valtio/-/valtio-1.11.2.tgz#b8049c02dfe65620635d23ebae9121a741bb6530" + integrity sha512-1XfIxnUXzyswPAPXo1P3Pdx2mq/pIqZICkWN60Hby0d9Iqb+MEIpqgYVlbflvHdrp2YR/q3jyKWRPJJ100yxaw== + dependencies: + proxy-compare "2.5.1" + use-sync-external-store "1.2.0" + +value-or-promise@^1.0.11, value-or-promise@^1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/value-or-promise/-/value-or-promise-1.0.12.tgz#0e5abfeec70148c78460a849f6b003ea7986f15c" + integrity sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q== + +varint@^5.0.0, varint@~5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/varint/-/varint-5.0.2.tgz#5b47f8a947eb668b848e034dcfa87d0ff8a7f7a4" + integrity sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow== + +varint@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/varint/-/varint-6.0.0.tgz#9881eb0ce8feaea6512439d19ddf84bf551661d0" + integrity sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg== + +vary@^1, vary@~1.1.2: + version "1.1.2" + 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.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +vite-node@0.26.3: + version "0.26.3" + resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-0.26.3.tgz#164fbaf449d5bd382b44b736653ba800397b5ebd" + integrity sha512-Te2bq0Bfvq6XiO718I+1EinMjpNYKws6SNHKOmVbILAQimKoZKDd+IZLlkaYcBXPpK3HFe2U80k8Zw+m3w/a2w== + dependencies: + debug "^4.3.4" + mlly "^1.0.0" + pathe "^0.2.0" + source-map "^0.6.1" + source-map-support "^0.5.21" + vite "^3.0.0 || ^4.0.0" + +vite-plugin-node-polyfills@0.15.0: + version "0.15.0" + resolved "https://registry.yarnpkg.com/vite-plugin-node-polyfills/-/vite-plugin-node-polyfills-0.15.0.tgz#ea425595f4258e04fddd06b4e422fc8d391e6a17" + integrity sha512-IF9aTSPV9zebrcC6ezJA3Ym4r4U1C3jKUAnG16Sq7+UPtisNEOcNOAu3p5wcgFFOuuUwAUjQlIeJHMcnSXXemQ== + dependencies: + "@rollup/plugin-inject" "^5.0.3" + buffer-polyfill "npm:buffer@^6.0.3" + node-stdlib-browser "^1.2.0" + process "^0.11.10" + +vite@4.5.0, "vite@^3.0.0 || ^4.0.0": + version "4.5.0" + resolved "https://registry.yarnpkg.com/vite/-/vite-4.5.0.tgz#ec406295b4167ac3bc23e26f9c8ff559287cff26" + integrity sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw== + dependencies: + esbuild "^0.18.10" + postcss "^8.4.27" + rollup "^3.27.1" + optionalDependencies: + fsevents "~2.3.2" + +vitest@^0.26.2: + version "0.26.3" + resolved "https://registry.yarnpkg.com/vitest/-/vitest-0.26.3.tgz#0e3abb7674e8af7b74519b40c04efe6e43c0b0a7" + integrity sha512-FmHxU9aUCxTi23keF3vxb/Qp0lYXaaJ+jRLGOUmMS3qVTOJvgGE+f1VArupA6pEhaG2Ans4X+zV9dqM5WISMbg== + dependencies: + "@types/chai" "^4.3.4" + "@types/chai-subset" "^1.3.3" + "@types/node" "*" + acorn "^8.8.1" + acorn-walk "^8.2.0" + chai "^4.3.7" + debug "^4.3.4" + local-pkg "^0.4.2" + source-map "^0.6.1" + strip-literal "^1.0.0" + tinybench "^2.3.1" + tinypool "^0.3.0" + tinyspy "^1.0.2" + vite "^3.0.0 || ^4.0.0" + vite-node "0.26.3" + +vm-browserify@^1.0.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" + integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== + +vue-demi@*, vue-demi@>=0.14.5, vue-demi@>=0.14.6: + version "0.14.6" + resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.14.6.tgz#dc706582851dc1cdc17a0054f4fec2eb6df74c92" + integrity sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w== + +vue-demi@^0.13.11: + version "0.13.11" + resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.13.11.tgz#7d90369bdae8974d87b1973564ad390182410d99" + integrity sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A== + +vue-eslint-parser@^9.1.1, vue-eslint-parser@^9.3.1: + version "9.3.2" + resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-9.3.2.tgz#6f9638e55703f1c77875a19026347548d93fd499" + integrity sha512-q7tWyCVaV9f8iQyIA5Mkj/S6AoJ9KBN8IeUSf3XEmBrOtxOZnfTg5s4KClbZBCK3GtnT/+RyCLZyDHuZwTuBjg== + dependencies: + debug "^4.3.4" + eslint-scope "^7.1.1" + eslint-visitor-keys "^3.3.0" + espree "^9.3.1" + esquery "^1.4.0" + lodash "^4.17.21" + semver "^7.3.6" + +vue-final-modal@^4.3.0: + version "4.4.6" + resolved "https://registry.yarnpkg.com/vue-final-modal/-/vue-final-modal-4.4.6.tgz#d4783f9bdb0be6af7abf47a68298da46150ec115" + integrity sha512-YIYEQ4HhwPOBRTuV143QjgprAl2tY8598NdsfUX2H5Z212Lr5hoZnzEfct+Nclx+c4++NZOATXj2ddFJI4ahjw== + dependencies: + "@vueuse/core" "^10.5.0" + "@vueuse/integrations" "^10.5.0" + focus-trap "^7.5.4" + +vue-i18n-extract@^2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/vue-i18n-extract/-/vue-i18n-extract-2.0.7.tgz#95798037c2ae57f4ec5fd9d2267d2559bc94e5e8" + integrity sha512-i1NW5R58S720iQ1BEk+6ILo3hT6UA8mtYNNolSH4rt9345qvXdvA6GHy2+jHozdDAKHwlu9VvS/+vIMKs1UYQw== + dependencies: + cac "^6.7.12" + dot-object "^2.1.4" + glob "^8.0.1" + is-valid-glob "^1.0.0" + js-yaml "^4.1.0" + +vue-i18n@9: + version "9.7.1" + resolved "https://registry.yarnpkg.com/vue-i18n/-/vue-i18n-9.7.1.tgz#41393b066f6ff69d9be2ba31a59b043263c77289" + integrity sha512-A6DzWqJQMdzBj+392+g3zIgGV0FnFC7o/V+txs5yIALANEZzY6ZV8hM2wvZR3nTbQI7dntAmzBHMeoEteJO0kQ== + dependencies: + "@intlify/core-base" "9.7.1" + "@intlify/shared" "9.7.1" + "@vue/devtools-api" "^6.5.0" + +vue-meta@3.0.0-alpha.8: + version "3.0.0-alpha.8" + resolved "https://registry.yarnpkg.com/vue-meta/-/vue-meta-3.0.0-alpha.8.tgz#8b311b6b1726c1c66cd8ce83c3e234adeb22891b" + integrity sha512-jhlgRy/sGDpor8pkIhwWCGw5AMR7RtDM6xYqateAKBSy2/enelyrZFivOmo29PLs+zAS9Y57vYoZYB919Tnbug== + +vue-resize@^2.0.0-alpha.1: + version "2.0.0-alpha.1" + resolved "https://registry.yarnpkg.com/vue-resize/-/vue-resize-2.0.0-alpha.1.tgz#43eeb79e74febe932b9b20c5c57e0ebc14e2df3a" + integrity sha512-7+iqOueLU7uc9NrMfrzbG8hwMqchfVfSzpVlCMeJQe4pyibqyoifDNbKTZvwxZKDvGkB+PdFeKvnGZMoEb8esg== + +vue-router@4: + version "4.2.5" + resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-4.2.5.tgz#b9e3e08f1bd9ea363fdd173032620bc50cf0e98a" + integrity sha512-DIUpKcyg4+PTQKfFPX88UWhlagBEBEfJ5A8XDXRJLUnZOvcpMF8o/dnL90vpVkGaPbjvXazV/rC1qBKrZlFugw== + dependencies: + "@vue/devtools-api" "^6.5.0" + +vue-template-compiler@^2.7.14: + version "2.7.15" + resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.7.15.tgz#ec88ba8ceafe0f17a528b89c57e01e02da92b0de" + integrity sha512-yQxjxMptBL7UAog00O8sANud99C6wJF+7kgbcwqkvA38vCGF7HWE66w0ZFnS/kX5gSoJr/PQ4/oS3Ne2pW37Og== + dependencies: + de-indent "^1.0.2" + he "^1.2.0" + +vue-tsc@^1.0.13: + version "1.8.22" + resolved "https://registry.yarnpkg.com/vue-tsc/-/vue-tsc-1.8.22.tgz#421e73c38b50802a6716ca32ed87b5970c867323" + integrity sha512-j9P4kHtW6eEE08aS5McFZE/ivmipXy0JzrnTgbomfABMaVKx37kNBw//irL3+LlE3kOo63XpnRigyPC3w7+z+A== + dependencies: + "@volar/typescript" "~1.10.5" + "@vue/language-core" "1.8.22" + semver "^7.5.4" + +vue@^3.2.45: + version "3.3.9" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.3.9.tgz#219a2ec68e8d4d0b0180460af0f5b9299b3f3f1f" + integrity sha512-sy5sLCTR8m6tvUk1/ijri3Yqzgpdsmxgj6n6yl7GXXCXqVbmW2RCXe9atE4cEI6Iv7L89v5f35fZRRr5dChP9w== + dependencies: + "@vue/compiler-dom" "3.3.9" + "@vue/compiler-sfc" "3.3.9" + "@vue/runtime-dom" "3.3.9" + "@vue/server-renderer" "3.3.9" + "@vue/shared" "3.3.9" + +w3c-xmlserializer@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz#aebdc84920d806222936e3cdce408e32488a3073" + integrity sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw== + dependencies: + xml-name-validator "^4.0.0" + +wait-port@1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/wait-port/-/wait-port-1.0.4.tgz#6f9474645ddbf7701ac100ab6762438edf6e5689" + integrity sha512-w8Ftna3h6XSFWWc2JC5gZEgp64nz8bnaTp5cvzbJSZ53j+omktWTDdwXxEF0jM8YveviLgFWvNGrSvRHnkyHyw== + dependencies: + chalk "^4.1.2" + commander "^9.3.0" + debug "^4.3.4" + +wasmbuilder@0.0.10: + version "0.0.10" + resolved "https://registry.yarnpkg.com/wasmbuilder/-/wasmbuilder-0.0.10.tgz#b8298b2095ef9979d32f3881d1feef1705ec868a" + integrity sha512-zQSvZ7d74d9OvN+mCN6ucNne4QS5/cBBYTHldX0Oe+u9gStY21orapvuX1ajisA7RVIpuFhYg+ZgdySsPfeh0A== + dependencies: + big-integer "^1.6.48" + +wasmbuilder@0.0.16: + version "0.0.16" + resolved "https://registry.yarnpkg.com/wasmbuilder/-/wasmbuilder-0.0.16.tgz#f34c1f2c047d2f6e1065cbfec5603988f16d8549" + integrity sha512-Qx3lEFqaVvp1cEYW7Bfi+ebRJrOiwz2Ieu7ZG2l7YyeSJIok/reEQCQCuicj/Y32ITIJuGIM9xZQppGx5LrQdA== + +wasmcurves@0.0.12: + version "0.0.12" + resolved "https://registry.yarnpkg.com/wasmcurves/-/wasmcurves-0.0.12.tgz#1496e2219ac07f9a420f527803ae13b1d7a89246" + integrity sha512-1Jl9mkatyHSNj80ILjf85SZUNuZQBCkTjJlhzqHnZQXUmIimCIWkugaVaYNjozLs1Gun4h/keZe1MBeBN0sRpg== + dependencies: + big-integer "^1.6.42" + blakejs "^1.1.0" + +wasmcurves@0.0.14: + version "0.0.14" + resolved "https://registry.yarnpkg.com/wasmcurves/-/wasmcurves-0.0.14.tgz#cbe0f19650d9554937154afdbed66b305bd2a348" + integrity sha512-G1iMkxlRaQSdqQ1JrwHcU+awLmwyH6kFKfT8g9obd8MWe+u5oSdFXrODB0zmSI5aGGvJPG+4cAmqCGYv9R+7qg== + dependencies: + big-integer "^1.6.42" + blakejs "^1.1.0" + +wasmcurves@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/wasmcurves/-/wasmcurves-0.2.0.tgz#ccfc5a7d3778b6e0768b82a9336c80054f9bc0cf" + integrity sha512-3e2rbxdujOwaod657gxgmdhZNn+i1qKdHO3Y/bK+8E7bV8ttV/fu5FO4/WLBACF375cK0QDLOP+65Na63qYuWA== + dependencies: + wasmbuilder "0.0.16" + +wasmcurves@0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/wasmcurves/-/wasmcurves-0.2.2.tgz#ca444f6a6f6e2a5cbe6629d98ff478a62b4ccb2b" + integrity sha512-JRY908NkmKjFl4ytnTu5ED6AwPD+8VJ9oc94kdq7h5bIwbj0L4TDJ69mG+2aLs2SoCmGfqIesMWTEJjtYsoQXQ== + dependencies: + wasmbuilder "0.0.16" + +wcwidth@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== + dependencies: + defaults "^1.0.3" + +web-streams-polyfill@^3.0.3, web-streams-polyfill@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz#71c2718c52b45fd49dbeee88634b3a60ceab42a6" + integrity sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q== + +web-worker@^1.0.0, web-worker@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/web-worker/-/web-worker-1.2.0.tgz#5d85a04a7fbc1e7db58f66595d7a3ac7c9c180da" + integrity sha512-PgF341avzqyx60neE9DD+XS26MMNMoUQRz9NOZwW32nPQrF6p77f1htcnjBSEV8BGMKZ16choqUG4hyI0Hx7mA== + +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" + swarm-js "^0.1.40" + +web3-bzz@1.2.11: + version "1.2.11" + resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.2.11.tgz#41bc19a77444bd5365744596d778b811880f707f" + integrity sha512-XGpWUEElGypBjeFyUhTkiPXFbDVD6Nr/S5jznE3t8cWUA0FxRf1n3n/NuIZeb0H9RkN2Ctd/jNma/k8XGa3YKg== + dependencies: + "@types/node" "^12.12.6" + got "9.6.0" + swarm-js "^0.1.40" + underscore "1.9.1" + +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.3" + web3-utils "1.10.3" + +web3-core-helpers@1.2.11: + version "1.2.11" + resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.2.11.tgz#84c681ed0b942c0203f3b324a245a127e8c67a99" + integrity sha512-PEPoAoZd5ME7UfbnCZBdzIerpe74GEvlwT4AjOmHeCVZoIFk7EqvOZDejJHt+feJA6kMVTdd0xzRNN295UhC1A== + dependencies: + underscore "1.9.1" + web3-eth-iban "1.2.11" + web3-utils "1.2.11" + +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.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" + resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.2.11.tgz#f880137d1507a0124912bf052534f168b8d8fbb6" + integrity sha512-ff0q76Cde94HAxLDZ6DbdmKniYCQVtvuaYh+rtOUMB6kssa5FX0q3vPmixi7NPooFnbKmmZCM6NvXg4IreTPIw== + 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.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-promievent@1.2.11: + version "1.2.11" + resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.2.11.tgz#51fe97ca0ddec2f99bf8c3306a7a8e4b094ea3cf" + integrity sha512-il4McoDa/Ox9Agh4kyfQ8Ak/9ABYpnF8poBLL33R/EnxLsJOGQG2nZhkJa3I067hocrPSjEdlPt/0bHXsln4qA== + dependencies: + eventemitter3 "4.0.4" + +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.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" + resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.2.11.tgz#fe6eb603fbaee18530293a91f8cf26d8ae28c45a" + integrity sha512-oFhBtLfOiIbmfl6T6gYjjj9igOvtyxJ+fjS+byRxiwFJyJ5BQOz4/9/17gWR1Cq74paTlI7vDGxYfuvfE/mKvA== + 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.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.3" + +web3-core-subscriptions@1.2.11: + version "1.2.11" + resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.2.11.tgz#beca908fbfcb050c16f45f3f0f4c205e8505accd" + integrity sha512-qEF/OVqkCvQ7MPs1JylIZCZkin0aKK9lDxpAtQ1F8niEDGFqn7DT8E/vzbIa0GsOjL2fZjDhWJsaW+BSoAW1gg== + dependencies: + eventemitter3 "4.0.4" + underscore "1.9.1" + web3-core-helpers "1.2.11" + +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.3" + web3-core-method "1.10.3" + web3-core-requestmanager "1.10.3" + web3-utils "1.10.3" + +web3-core@1.2.11: + version "1.2.11" + resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.2.11.tgz#1043cacc1becb80638453cc5b2a14be9050288a7" + integrity sha512-CN7MEYOY5ryo5iVleIWRE3a3cZqVaLlIbIzDPsvQRUfzYnvzZQRZBm9Mq+ttDi2STOOzc1MKylspz/o3yq/LjQ== + 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.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.3" + +web3-eth-abi@1.2.11: + version "1.2.11" + resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.2.11.tgz#a887494e5d447c2926d557a3834edd66e17af9b0" + integrity sha512-PkRYc0+MjuLSgg03QVWqWlQivJqRwKItKtEpRUaxUAeLE7i/uU39gmzm2keHGcQXo3POXAbOnMqkDvOep89Crg== + dependencies: + "@ethersproject/abi" "5.0.0-beta.153" + underscore "1.9.1" + web3-utils "1.2.11" + +web3-eth-abi@1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.7.0.tgz#4fac9c7d9e5a62b57f8884b37371f515c766f3f4" + integrity sha512-heqR0bWxgCJwjWIhq2sGyNj9bwun5+Xox/LdZKe+WMyTSy0cXDXEAgv3XKNkXC4JqdDt/ZlbTEx4TWak4TRMSg== + dependencies: + "@ethersproject/abi" "5.0.7" + web3-utils "1.7.0" + +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.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" + +web3-eth-accounts@1.2.11: + version "1.2.11" + resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.2.11.tgz#a9e3044da442d31903a7ce035a86d8fa33f90520" + integrity sha512-6FwPqEpCfKIh3nSSGeo3uBm2iFSnFJDfwL3oS9pyegRBXNsGRVpgiW63yhNzL0796StsvjHWwQnQHsZNxWAkGw== + 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.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.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" + resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.2.11.tgz#917065902bc27ce89da9a1da26e62ef663663b90" + integrity sha512-MzYuI/Rq2o6gn7vCGcnQgco63isPNK5lMAan2E51AJLknjSLnOxwNY3gM8BcKoy4Z+v5Dv00a03Xuk78JowFow== + 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.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.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" + resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.2.11.tgz#26d4d7f16d6cbcfff918e39832b939edc3162532" + integrity sha512-dbW7dXP6HqT1EAPvnniZVnmw6TmQEKF6/1KgAxbo8iBBYrVTMDGFQUUnZ+C4VETGrwwaqtX4L9d/FrQhZ6SUiA== + 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.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.3" + +web3-eth-iban@1.2.11: + version "1.2.11" + resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.2.11.tgz#f5f73298305bc7392e2f188bf38a7362b42144ef" + integrity sha512-ozuVlZ5jwFC2hJY4+fH9pIcuH1xP0HEFhtWsR69u9uDIANHLPQQtWYmdj7xQ3p2YT4bQLq/axKhZi7EZVetmxQ== + dependencies: + bn.js "^4.11.9" + web3-utils "1.2.11" + +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.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" + resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.2.11.tgz#a38b3942a1d87a62070ce0622a941553c3d5aa70" + integrity sha512-42IzUtKq9iHZ8K9VN0vAI50iSU9tOA1V7XU2BhF/tb7We2iKBVdkley2fg26TxlOcKNEHm7o6HRtiiFsVK4Ifw== + 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.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-eth@1.2.11: + version "1.2.11" + resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.2.11.tgz#4c81fcb6285b8caf544058fba3ae802968fdc793" + integrity sha512-REvxW1wJ58AgHPcXPJOL49d1K/dPmuw4LjPLBPStOVkQjzDTVmJEIsiLwn2YeuNDd4pfakBwT8L3bz1G1/wVsQ== + 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.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-net@1.2.11: + version "1.2.11" + resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.2.11.tgz#eda68ef25e5cdb64c96c39085cdb74669aabbe1b" + integrity sha512-sjrSDj0pTfZouR5BSTItCuZ5K/oZPVdVciPQ6981PPPIwJJkCMeVjD7I4zO3qDPCnBjBSbWvVnLdwqUBPtHxyg== + dependencies: + web3-core "1.2.11" + web3-core-method "1.2.11" + web3-utils "1.2.11" + +web3-provider-engine@14.2.1: + version "14.2.1" + resolved "https://registry.yarnpkg.com/web3-provider-engine/-/web3-provider-engine-14.2.1.tgz#ef351578797bf170e08d529cb5b02f8751329b95" + integrity sha512-iSv31h2qXkr9vrL6UZDm4leZMc32SjWJFGOp/D92JXfcEboCqraZyuExDkpxKw8ziTufXieNM7LSXNHzszYdJw== + 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.85.0" + semaphore "^1.0.3" + ws "^5.1.1" + xhr "^2.2.0" + xtend "^4.0.1" + +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.3" + +web3-providers-http@1.2.11: + version "1.2.11" + resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.2.11.tgz#1cd03442c61670572d40e4dcdf1faff8bd91e7c6" + integrity sha512-psh4hYGb1+ijWywfwpB2cvvOIMISlR44F/rJtYkRmQ5jMvG4FOCPlQJPiHQZo+2cc3HbktvvSJzIhkWQJdmvrA== + dependencies: + web3-core-helpers "1.2.11" + xhr2-cookies "1.1.0" + +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.3" + +web3-providers-ipc@1.2.11: + version "1.2.11" + resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.2.11.tgz#d16d6c9be1be6e0b4f4536c4acc16b0f4f27ef21" + integrity sha512-yhc7Y/k8hBV/KlELxynWjJDzmgDEDjIjBzXK+e0rHBsYEhdCNdIH5Psa456c+l0qTEU2YzycF8VAjYpWfPnBpQ== + dependencies: + oboe "2.1.4" + underscore "1.9.1" + web3-core-helpers "1.2.11" + +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.3" + websocket "^1.0.32" + +web3-providers-ws@1.2.11: + version "1.2.11" + resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.2.11.tgz#a1dfd6d9778d840561d9ec13dd453046451a96bb" + integrity sha512-ZxnjIY1Er8Ty+cE4migzr43zA/+72AF1myzsLaU5eVgdsfV7Jqx7Dix1hbevNZDKFlSoEyq/3j/jYalh3So1Zg== + dependencies: + eventemitter3 "4.0.4" + underscore "1.9.1" + web3-core-helpers "1.2.11" + websocket "^1.0.31" + +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: + web3-core "1.10.3" + web3-core-method "1.10.3" + web3-core-subscriptions "1.10.3" + web3-net "1.10.3" + +web3-shh@1.2.11: + version "1.2.11" + resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.2.11.tgz#f5d086f9621c9a47e98d438010385b5f059fd88f" + integrity sha512-B3OrO3oG1L+bv3E1sTwCx66injW1A8hhwpknDUbV+sw3fehFazA06z9SGXUefuFI1kVs4q2vRi0n4oCcI4dZDg== + 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.10.3, web3-utils@^1.0.0-beta.31, web3-utils@^1.3.0, web3-utils@^1.6.0: + version "1.10.3" + 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" + 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.2.11: + version "1.2.11" + resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.2.11.tgz#af1942aead3fb166ae851a985bed8ef2c2d95a82" + integrity sha512-3Tq09izhD+ThqHEaWYX4VOT7dNPdZiO+c/1QMA0s5X2lDFKK/xHJb7cyTRRVzN2LvlHbR7baS1tmQhSua51TcQ== + 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-utils@1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.7.0.tgz#c59f0fd43b2449357296eb54541810b99b1c771c" + integrity sha512-O8Tl4Ky40Sp6pe89Olk2FsaUkgHyb5QAXuaKo38ms3CxZZ4d3rPGfjP9DNKGm5+IUgAZBNpF1VmlSmNCqfDI1w== + dependencies: + bn.js "^4.11.9" + 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.2.11: + version "1.2.11" + resolved "https://registry.yarnpkg.com/web3/-/web3-1.2.11.tgz#50f458b2e8b11aa37302071c170ed61cff332975" + integrity sha512-mjQ8HeU41G6hgOYm1pmeH0mRAeNKJGnJEUzDMoerkpw7QUQT4exVREgF1MYPvL/z6vAshOXei25LE/t/Bxl8yQ== + 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@^1.3.4, web3@^1.6.0: + 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" + +webcrypto-core@^1.7.7: + version "1.7.7" + resolved "https://registry.yarnpkg.com/webcrypto-core/-/webcrypto-core-1.7.7.tgz#06f24b3498463e570fed64d7cab149e5437b162c" + integrity sha512-7FjigXNsBfopEj+5DV2nhNpfic2vumtjjgPmeDKk45z+MJwXKKfhPB7118Pfzrmh4jqOMST6Ch37iPAHoImg5g== + dependencies: + "@peculiar/asn1-schema" "^2.3.6" + "@peculiar/json-schema" "^1.1.12" + asn1js "^3.0.1" + pvtsutils "^1.3.2" + tslib "^2.4.0" + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + +webidl-conversions@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" + integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== + +webpack-sources@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" + integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== + +webpack-virtual-modules@^0.6.0: + version "0.6.1" + resolved "https://registry.yarnpkg.com/webpack-virtual-modules/-/webpack-virtual-modules-0.6.1.tgz#ac6fdb9c5adb8caecd82ec241c9631b7a3681b6f" + integrity sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg== + +websocket@1.0.32: + version "1.0.32" + resolved "https://registry.yarnpkg.com/websocket/-/websocket-1.0.32.tgz#1f16ddab3a21a2d929dec1687ab21cfdc6d3dbb1" + integrity sha512-i4yhcllSP4wrpoPMU2N0TQ/q0O94LRG/eUQjEAamRltjQ1oT1PFFKOG4i877OlJgCG8rw6LrrowJp+TYCEWF7Q== + 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.31, websocket@^1.0.32: + version "1.0.34" + resolved "https://registry.yarnpkg.com/websocket/-/websocket-1.0.34.tgz#2bdc2602c08bf2c82253b730655c0ef7dcab3111" + 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" + +well-known-symbols@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/well-known-symbols/-/well-known-symbols-2.0.0.tgz#e9c7c07dbd132b7b84212c8174391ec1f9871ba5" + integrity sha512-ZMjC3ho+KXo0BfJb7JgtQ5IBuvnShdlACNkKkdsqBmYw3bPAaJfPeYUo6tLUaT5tG/Gkh7xkpBhKRQ9e7pyg9Q== + +whatwg-encoding@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz#e7635f597fd87020858626805a2729fa7698ac53" + integrity sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg== + dependencies: + iconv-lite "0.6.3" + +whatwg-fetch@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz#dde6a5df315f9d39991aa17621853d720b85566f" + integrity sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng== + +whatwg-mimetype@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz#5fa1a7623867ff1af6ca3dc72ad6b8a4208beba7" + integrity sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q== + +whatwg-url@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-11.0.0.tgz#0a849eebb5faf2119b901bb76fd795c2848d4018" + integrity sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ== + dependencies: + tr46 "^3.0.0" + webidl-conversions "^7.0.0" + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.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" + 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" + +which-module@^1.0.0: + version "1.0.0" + 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.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409" + integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== + +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.4" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + +which@2.0.2, which@^2.0.0, which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +which@^1.2.9: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + 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" + integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== + dependencies: + string-width "^1.0.2 || 2" + +wide-align@^1.1.2: + version "1.1.5" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" + integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== + dependencies: + string-width "^1.0.2 || 2 || 3 || 4" + +widest-line@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" + integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== + dependencies: + string-width "^4.0.0" + +widest-line@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-4.0.1.tgz#a0fc673aaba1ea6f0a0d35b3c2795c9a9cc2ebf2" + integrity sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig== + dependencies: + string-width "^5.0.1" + +window-size@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.2.0.tgz#b4315bb4214a3d7058ebeee892e13fa24d98b075" + integrity sha512-UD7d8HFA2+PZsbKyaOCEy8gMh1oDtHgJh1LfgjQ4zVXmYjAT/kvz3PueITKuqDiIXQe7yzpPnxX3lNc+AhQMyw== + +windows-release@^5.0.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/windows-release/-/windows-release-5.1.1.tgz#7ac7019f9baeaea6c00ec889b11824f46c12ee8d" + integrity sha512-NMD00arvqcq2nwqc5Q6KtrSRHK+fVD31erE5FEMahAw5PmVCgD7MUXodq3pdZSUkqA9Cda2iWx6s1XYwiJWRmw== + dependencies: + execa "^5.1.1" + +winston-transport@^4.5.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.6.0.tgz#f1c1a665ad1b366df72199e27892721832a19e1b" + integrity sha512-wbBA9PbPAHxKiygo7ub7BYRiKxms0tpfU2ljtWzb3SjRjv5yl6Ozuy/TkXf00HTAt+Uylo3gSkNwzc4ME0wiIg== + dependencies: + logform "^2.3.2" + readable-stream "^3.6.0" + triple-beam "^1.3.0" + +winston@2.x: + version "2.4.7" + resolved "https://registry.yarnpkg.com/winston/-/winston-2.4.7.tgz#5791fe08ea7e90db090f1cb31ef98f32531062f1" + integrity sha512-vLB4BqzCKDnnZH9PHGoS2ycawueX4HLqENXQitvFHczhgW2vFpSOn31LZtVr1KU8YTw7DS4tM+cqyovxo8taVg== + dependencies: + async "^2.6.4" + colors "1.0.x" + cycle "1.0.x" + eyes "0.1.x" + isstream "0.1.x" + stack-trace "0.0.x" + +winston@^3.10.0: + version "3.11.0" + resolved "https://registry.yarnpkg.com/winston/-/winston-3.11.0.tgz#2d50b0a695a2758bb1c95279f0a88e858163ed91" + integrity sha512-L3yR6/MzZAOl0DsysUXHVjOwv8mKZ71TrA/41EIduGpOOV5LQVodqN+QdQ6BS6PJ/RdIshZhq84P/fStEZkk7g== + dependencies: + "@colors/colors" "^1.6.0" + "@dabh/diagnostics" "^2.0.2" + async "^3.2.3" + is-stream "^2.0.0" + logform "^2.4.0" + one-time "^1.0.0" + readable-stream "^3.4.0" + safe-stable-stringify "^2.3.1" + stack-trace "0.0.x" + triple-beam "^1.3.0" + winston-transport "^4.5.0" + +word-wrap@~1.2.3: + version "1.2.5" + 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.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== + +worker-threads@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/worker-threads/-/worker-threads-1.0.0.tgz#2b49ea7c9692ba737d9148f2c9b2be65e14e3470" + integrity sha512-vK6Hhvph8oLxocEJIlc3YfGAZhm210uGzjZsXSu+JYLAQ/s/w4Tqgl60JrdH58hW8NSGP4m3bp8a92qPXgX05w== + +workerpool@6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.1.0.tgz#a8e038b4c94569596852de7a8ea4228eefdeb37b" + integrity sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg== + +workerpool@6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343" + 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" + integrity sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw== + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + +wrap-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-3.0.1.tgz#288a04d87eda5c286e060dfe8f135ce8d007f8ba" + integrity sha512-iXR3tDXpbnTpzjKSylUJRkLuOrEC7hwEB221cgn6wtF8wpmz28puFXAEfPT5zrjM3wahygB//VuWEr1vTkDcNQ== + dependencies: + string-width "^2.1.1" + strip-ansi "^4.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" + 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@^6.0.1, wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^7.0.0: + version "7.0.0" + 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" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^8.0.1, wrap-ansi@^8.1.0: + version "8.1.0" + 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" + string-width "^5.0.1" + strip-ansi "^7.0.1" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +write-file-atomic@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-5.0.1.tgz#68df4717c55c6fa4281a7860b4c2ba0a6d2b11e7" + integrity sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw== + dependencies: + imurmurhash "^0.1.4" + signal-exit "^4.0.1" + +write-file-atomic@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + +write-file-atomic@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd" + integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== + dependencies: + imurmurhash "^0.1.4" + signal-exit "^3.0.7" + +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@8.13.0: + version "8.13.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" + integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA== + +ws@^3.0.0: + version "3.3.3" + 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.yarnpkg.com/ws/-/ws-5.2.3.tgz#05541053414921bc29c63bee14b8b0dd50b07b3d" + integrity sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA== + dependencies: + async-limiter "~1.0.0" + +ws@^7.4.5, ws@^7.4.6, ws@^7.5.1: + version "7.5.9" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" + integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== + +ws@^8.11.0, ws@^8.12.0: + version "8.14.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.14.2.tgz#6c249a806eb2db7a20d26d51e7709eab7b2e6c7f" + integrity sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g== + +xdg-basedir@^5.0.1, xdg-basedir@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-5.1.0.tgz#1efba19425e73be1bc6f2a6ceb52a3d2c884c0c9" + integrity sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ== + +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" + 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" + 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" + +xhr2-cookies@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz#7d77449d0999197f155cb73b23df72505ed89d48" + integrity sha512-hjXUA6q+jl/bd8ADHcVfFsSPIf+tyLIjuO9TwJC9WI6JP2zKcS7C+p56I9kCLLsaCiNT035iYvEUUzdEFj/8+g== + dependencies: + cookiejar "^2.1.1" + +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" + integrity sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA== + dependencies: + global "~4.4.0" + is-function "^1.0.1" + parse-headers "^2.0.0" + xtend "^4.0.0" + +xml-name-validator@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835" + integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw== + +xmlchars@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== + +xmlhttprequest@1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" + integrity sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA== + +xorshift@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/xorshift/-/xorshift-1.2.0.tgz#30a4cdd8e9f8d09d959ed2a88c42a09c660e8148" + integrity sha512-iYgNnGyeeJ4t6U11NpA/QiKy+PXn5Aa3Azg5qkwIFz1tBLllQrjjsk9yzD7IAK0naNU4JxdeDgqW9ov4u/hc4g== + +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.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.yarnpkg.com/xtend/-/xtend-2.1.2.tgz#6efecc2a4dad8e6962c4901b337ce7ba87b5d28b" + 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" + integrity sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ== + +y18n@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" + 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" + 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" + 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" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yaml-ast-parser@^0.0.43: + version "0.0.43" + resolved "https://registry.yarnpkg.com/yaml-ast-parser/-/yaml-ast-parser-0.0.43.tgz#e8a23e6fb4c38076ab92995c5dca33f3d3d7c9bb" + integrity sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A== + +yaml-eslint-parser@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/yaml-eslint-parser/-/yaml-eslint-parser-0.3.2.tgz#c7f5f3904f1c06ad55dc7131a731b018426b4898" + integrity sha512-32kYO6kJUuZzqte82t4M/gB6/+11WAuHiEnK7FreMo20xsCKPeFH5tDBU7iWxR7zeJpNnMXfJyXwne48D0hGrg== + dependencies: + eslint-visitor-keys "^1.3.0" + lodash "^4.17.20" + yaml "^1.10.0" + +yaml@1.10.2, yaml@^1.10.0, yaml@^1.10.2, yaml@^1.7.2: + version "1.10.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" + integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== + +yaml@^2.1.3, yaml@^2.3.4: + version "2.3.4" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.4.tgz#53fc1d514be80aabf386dc6001eb29bf3b7523b2" + integrity sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA== + +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@^15.0.1: + version "15.0.3" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-15.0.3.tgz#316e263d5febe8b38eef61ac092b33dfcc9b1115" + integrity sha512-/MVEVjTXy/cGAjdtQf8dW3V9b97bPN7rNn8ETj6BmAQL7ibC7O1Q9SPJbGjgh3SlwoBNXMzj/ZGIj8mBgl12YA== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^16.1.0: + version "16.1.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-16.1.0.tgz#73747d53ae187e7b8dbe333f95714c76ea00ecf1" + integrity sha512-H/V41UNZQPkUMIT5h5hiwg4QKIY1RPvoBV4XcjUbRM8Bk2oKqqyZ0DIEbTFZB0XjbtSPG8SAa/0DxCQmiRgzKg== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^18.1.2: + version "18.1.3" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" + integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-2.4.1.tgz#85568de3cf150ff49fa51825f03a8c880ddcc5c4" + integrity sha512-9pIKIJhnI5tonzG6OnCFlz/yln8xHYcGl+pn3xR0Vzff0vzN1PbNRaelgfgRUwZ3s4i3jvxT9WhmUGL4whnasA== + dependencies: + camelcase "^3.0.0" + lodash.assign "^4.0.6" + +yargs-parser@^20.2.2, yargs-parser@^20.2.3: + 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@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + +yargs-promise@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/yargs-promise/-/yargs-promise-1.1.0.tgz#97ebb5198df734bb3b11745133ae5b501b16ab1f" + integrity sha512-nAw/GY9hhH7Y9uGW89sFLpiv9PKZUWIT5IyHdjkbrPpCDTRHn2T1b5SFhgEzut5ghki0HXTLk4HHYRaKlL26Iw== + +yargs-unparser@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" + integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== + dependencies: + camelcase "^6.0.0" + decamelize "^4.0.0" + flat "^5.0.2" + is-plain-obj "^2.1.0" + +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@^14.2.0: + version "14.2.3" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-14.2.3.tgz#1a1c3edced1afb2a2fea33604bc6d1d8d688a414" + integrity sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg== + dependencies: + cliui "^5.0.0" + decamelize "^1.2.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 "^15.0.1" + +yargs@^15.3.1: + version "15.4.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" + integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== + dependencies: + cliui "^6.0.0" + decamelize "^1.2.0" + find-up "^4.1.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 "^4.2.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^18.1.2" + +yargs@^17.0.0, yargs@^17.6.0, yargs@^17.7.2: + version "17.7.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + 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.yarnpkg.com/yargs/-/yargs-4.8.1.tgz#c0c42924ca4aaa6b0e6da1739dfb216439f9ddc0" + integrity sha512-LqodLrnIDM3IFT+Hf/5sxBnEGECrfdC1uIbgZeJmESCSo4HoCAaKEus8MylXHAkdacGc0ye+Qa+dpkuom8uVYA== + 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" + +yauzl@^2.10.0: + version "2.10.0" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" + integrity sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g== + dependencies: + buffer-crc32 "~0.2.3" + fd-slicer "~1.1.0" + +yn@3.1.1: + version "3.1.1" + 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.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +yocto-queue@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251" + integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g== + +zip-stream@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-5.0.1.tgz#cf3293bba121cad98be2ec7f05991d81d9f18134" + integrity sha512-UfZ0oa0C8LI58wJ+moL46BDIMgCQbnsb+2PoiJYtonhBsMh2bq1eRBVkvjfVsqbEHd9/EgKPUuL9saSSsec8OA== + dependencies: + archiver-utils "^4.0.1" + compress-commons "^5.0.1" + readable-stream "^3.6.0" + +zkey-manager@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/zkey-manager/-/zkey-manager-0.1.2.tgz#0e0ec8da4c6c8fa8ba8f501386a55b42e048fdf4" + integrity sha512-Ig+QQrS8IZYkLgbdrbdCgji+1NeEatzWoIqH1G0OoF9+cNrf/qFOFr1hq2k52wVcUudCboqGKDpPbl3KRpnpVw== + dependencies: + argparse "2.0.1" + circomlib "^2.0.0" + js-yaml "4.0.0" + shelljs "^0.8.4" + snarkjs "0.4.7" + +zod@^3.22.4: + version "3.22.4" + resolved "https://registry.yarnpkg.com/zod/-/zod-3.22.4.tgz#f31c3a9386f61b1f228af56faa9255e845cf3fff" + integrity sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg== From d550f6884279bc9ebbbb652c3d00673900553717 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Mon, 27 Nov 2023 02:14:05 -0500 Subject: [PATCH 092/338] update rapidsnark build step --- .github/workflows/test-scripts.yml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test-scripts.yml b/.github/workflows/test-scripts.yml index 5ad201d53..c7fd09df7 100644 --- a/.github/workflows/test-scripts.yml +++ b/.github/workflows/test-scripts.yml @@ -32,7 +32,7 @@ jobs: - name: Checkout rapidsnark source code uses: actions/checkout@v3 with: - repository: iden3/rapidsnark + repository: clrfund/rapidsnark path: rapidsnark - name: Install rapidsnark run: | @@ -40,8 +40,10 @@ jobs: npm install git submodule init git submodule update - npx task createFieldSources - npx task buildProver + ./build_gmp.sh host + mkdir build_prover && cd build_prover + cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=../package + make -j4 && make install pwd find . -name "prover" - name: Checkout source code @@ -63,7 +65,7 @@ jobs: yarn start:node & - name: Run script tests run: | - export RAPIDSNARK_DIRECTORY=$GITHUB_WORKSPACE/rapidsnark/build + export RAPIDSNARK_DIRECTORY=$GITHUB_WORKSPACE/rapidsnark/package/bin export CIRCUIT_DIRECTORY=$GITHUB_WORKSPACE/params cd monorepo/contracts ./sh/runScriptTests.sh From 64e67818c5e076937c443c7d24f26c8c5cbaee9c Mon Sep 17 00:00:00 2001 From: yuetloo Date: Mon, 27 Nov 2023 02:14:23 -0500 Subject: [PATCH 093/338] fix mising maci-crypto --- contracts/tests/deployer.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/tests/deployer.ts b/contracts/tests/deployer.ts index 1f708fade..9ed53383a 100644 --- a/contracts/tests/deployer.ts +++ b/contracts/tests/deployer.ts @@ -2,7 +2,7 @@ import { ethers, waffle, config } from 'hardhat' import { use, expect } from 'chai' import { solidity } from 'ethereum-waffle' import { Signer, Contract, ContractTransaction, constants } from 'ethers' -import { genRandomSalt } from 'maci-crypto' +import { genRandomSalt } from '@clrfund/maci-crypto' import { Keypair } from '@clrfund/common' import { ZERO_ADDRESS, UNIT } from '../utils/constants' From 743ad7e4f1ff4bec2b2238193062434fa8dfd623 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Mon, 27 Nov 2023 02:22:56 -0500 Subject: [PATCH 094/338] fix typo --- contracts/sh/runScriptTests.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/sh/runScriptTests.sh b/contracts/sh/runScriptTests.sh index 46239ef64..1dc1b37fe 100755 --- a/contracts/sh/runScriptTests.sh +++ b/contracts/sh/runScriptTests.sh @@ -39,7 +39,7 @@ export COORDINATOR_MACISK=$(echo "${MACI_KEYPAIR}" | grep -o "macisk.*$") # create a new instance of ClrFund DEPLOYER=$(extract 'deployer') -yarn ts-node cli/newClrfund.ts \ +yarn ts-node cli/newClrFund.ts \ --deployer "${DEPLOYER}" \ --user-registry-type simple \ --recipient-registry-type simple \ From eb9bc9b81a3b64b938ca29ac466d0a173decef0f Mon Sep 17 00:00:00 2001 From: yuetloo Date: Mon, 27 Nov 2023 02:25:03 -0500 Subject: [PATCH 095/338] fix missing maci-crypto --- contracts/tests/round.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/tests/round.ts b/contracts/tests/round.ts index ff822b871..1628aee99 100644 --- a/contracts/tests/round.ts +++ b/contracts/tests/round.ts @@ -4,7 +4,7 @@ import { solidity } from 'ethereum-waffle' import { deployMockContract } from '@ethereum-waffle/mock-contract' import { Contract, BigNumber, ContractTransaction } from 'ethers' import { defaultAbiCoder } from '@ethersproject/abi' -import { genRandomSalt } from 'maci-crypto' +import { genRandomSalt } from '@clrfund/maci-crypto' import { Keypair } from '@clrfund/common' import { From 899f289da8d7724ee45e008d372c93c1bce4e936 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Mon, 27 Nov 2023 11:22:41 -0500 Subject: [PATCH 096/338] update rapidsnark path and check for null or undefined tally result --- contracts/utils/maci.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/contracts/utils/maci.ts b/contracts/utils/maci.ts index ac5be4276..05cba67f4 100644 --- a/contracts/utils/maci.ts +++ b/contracts/utils/maci.ts @@ -47,7 +47,8 @@ export function getRecipientTallyResult( ): TallyResult { // Create proof for tally result const result = tally.results.tally[recipientIndex] - if (!result) { + if (result == null) { + // result is null or undefined throw Error(`Missing tally result for index ${recipientIndex}`) } @@ -196,7 +197,7 @@ type getGenProofArgsInput = { // the key get zkeys file mapping, see utils/circuits.ts circuitType: string circuitDirectory: string - rapidSnarkDirectory?: string + rapidSnark?: string // where the proof will be produced outputDir: string } @@ -234,12 +235,11 @@ export function getGenProofArgs( maciTxHash, circuitType, circuitDirectory, - rapidSnarkDirectory, + rapidSnark, outputDir, } = args const tallyFile = getTalyFilePath(outputDir) const maciStateFile = path.join(outputDir, `macistate`) - const rapidSnarkExe = path.join(rapidSnarkDirectory || '', 'prover') const { processZkFile, @@ -274,7 +274,7 @@ export function getGenProofArgs( eth_provider: providerUrl, poll_id: pollId.toString(), tally_file: tallyFile, - rapidsnark: rapidSnarkExe, + rapidsnark: rapidSnark, process_witnessgen: processWitness, tally_witnessgen: tallyWitness, process_zkey: processZkFile, From 7e56fd665f130776571505b30dc9cd691e7e3bb5 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Mon, 27 Nov 2023 11:50:22 -0500 Subject: [PATCH 097/338] update rapidsnark path --- .github/workflows/test-e2e.yml | 22 +++++++++++++++------- .github/workflows/test-scripts.yml | 6 +++++- contracts/.env.example | 4 ++-- contracts/cli/tally.ts | 6 +++--- contracts/e2e/index.ts | 2 +- contracts/sh/runScriptTests.sh | 6 ++++-- 6 files changed, 30 insertions(+), 16 deletions(-) diff --git a/.github/workflows/test-e2e.yml b/.github/workflows/test-e2e.yml index 627e94fed..9725af99a 100644 --- a/.github/workflows/test-e2e.yml +++ b/.github/workflows/test-e2e.yml @@ -37,19 +37,27 @@ jobs: cd circom cargo build --release cargo install --path circom - - name: Checkout rapidsnark + - name: Checkout rapidsnark source code uses: actions/checkout@v3 with: - repository: iden3/rapidsnark + repository: clrfund/rapidsnark path: rapidsnark - - name: Build rapidsnark + - name: Install rapidsnark run: | - cd rapidsnark + cd $GITHUB_WORKSPACE/rapidsnark npm install git submodule init git submodule update - npx task createFieldSources - npx task buildProver + ./build_gmp.sh host + mkdir build_prover && cd build_prover + cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=../package + make -j4 && make install + - name: Find rapidsnark + run: | + cd rapidsnark + pwd + echo "$GITHUB_WORKSPACE" + find . -name "prover" - name: Checkout Clrfund uses: actions/checkout@v3 with: @@ -70,7 +78,7 @@ jobs: - name: Run tests run: | export CIRCUIT_DIRECTORY="$GITHUB_WORKSPACE/params" - export RAPIDSNARK_DIRECTORY="$GITHUB_WORKSPACE/rapidsnark/build" + export RAPID_SNARK="$GITHUB_WORKSPACE/rapidsnark/package/bin/prover" cd monorepo yarn test:e2e diff --git a/.github/workflows/test-scripts.yml b/.github/workflows/test-scripts.yml index c7fd09df7..c115edf7b 100644 --- a/.github/workflows/test-scripts.yml +++ b/.github/workflows/test-scripts.yml @@ -44,7 +44,11 @@ jobs: mkdir build_prover && cd build_prover cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=../package make -j4 && make install + - name: Find rapidsnark + run: | + cd rapidsnark pwd + echo "$GITHUB_WORKSPACE" find . -name "prover" - name: Checkout source code uses: actions/checkout@v3 @@ -65,7 +69,7 @@ jobs: yarn start:node & - name: Run script tests run: | - export RAPIDSNARK_DIRECTORY=$GITHUB_WORKSPACE/rapidsnark/package/bin + export RAPID_SNARK=$GITHUB_WORKSPACE/rapidsnark/package/bin/prover export CIRCUIT_DIRECTORY=$GITHUB_WORKSPACE/params cd monorepo/contracts ./sh/runScriptTests.sh diff --git a/contracts/.env.example b/contracts/.env.example index 5c61baf56..15ea56d1e 100644 --- a/contracts/.env.example +++ b/contracts/.env.example @@ -50,10 +50,10 @@ CIRCUIT_TYPE=prod # The IPFS gateway url used by the prepare-results.ts script IPFS_GATEWAY_URL= -# Parameters used in the tally script +# Parameters used in the e2e testing CIRCUIT_TYPE= CIRCUIT_DIRECTORY= -RAPIDSNARK_DIRECTORY= +RAPID_SNARK= # Used in MACI queue merging operation before genProofs, default is 4 NUM_QUEUE_OPS= # Used in e2e testing to store intermediate states diff --git a/contracts/cli/tally.ts b/contracts/cli/tally.ts index 4b6d3a04e..4032bef96 100644 --- a/contracts/cli/tally.ts +++ b/contracts/cli/tally.ts @@ -51,7 +51,7 @@ program ) .requiredOption('-o --output-dir ', 'The proof output directory') .option('-h --maci-tx-hash ', 'The MACI creation transaction hash') - .option('-r --rapid-snark-directory ', 'The rapidsnark directory') + .option('-r --rapid-snark ', 'The rapidsnark prover path') .option( '-n --num-queue-ops ', 'The number of operation for tree merging', @@ -70,7 +70,7 @@ async function main(args: any) { outputDir, circuit, circuitDirectory, - rapidSnarkDirectory, + rapidSnark, maciTxHash, numQueueOps, } = args @@ -125,7 +125,7 @@ async function main(args: any) { pollId, coordinatorMacisk, maciTxHash, - rapidSnarkDirectory, + rapidSnark, circuitType: circuit, circuitDirectory, outputDir, diff --git a/contracts/e2e/index.ts b/contracts/e2e/index.ts index 4738c4755..1b611ef60 100644 --- a/contracts/e2e/index.ts +++ b/contracts/e2e/index.ts @@ -39,7 +39,7 @@ const roundDuration = 7 * 86400 const circuit = process.env.CIRCUIT_TYPE || DEFAULT_CIRCUIT const circuitDirectory = process.env.CIRCUIT_DIRECTORY || '../../params' const rapidSnarkDirectory = - process.env.RAPIDSNARK_DIRECTORY || '../../rapidsnark/build' + process.env.RAPID_SNARK || '~/rapidsnark/package/bin/prover' const proofOutputDirectory = process.env.PROOF_OUTPUT_DIR || './proof_output' const tallyBatchSize = Number(process.env.TALLY_BATCH_SIZE || 8) diff --git a/contracts/sh/runScriptTests.sh b/contracts/sh/runScriptTests.sh index 1dc1b37fe..6e7b218a2 100755 --- a/contracts/sh/runScriptTests.sh +++ b/contracts/sh/runScriptTests.sh @@ -13,6 +13,7 @@ export NETWORK=localhost export CIRCUIT_DIRECTORY=${CIRCUIT_DIRECTORY:-"./snark-params"} export STATE_FILE=${OUTPUT_DIR}/state.json export HARDHAT_NETWORK=localhost +export RAPID_SNARK=${RAPID_SNARK:-~/rapidsnark/package/bin/prover} # 20 mins ROUND_DURATION=1800 @@ -65,10 +66,11 @@ MACI_TRANSACTION_HASH=$(extract 'maciTxHash') NODE_OPTIONS="--max-old-space-size=4096" yarn ts-node cli/tally.ts \ --clrfund ${CLRFUND} \ - --circuit-directory "${CIRCUIT_DIRECTORY}" \ + --circuit-directory ${CIRCUIT_DIRECTORY} \ --circuit "${CIRCUIT}" \ + --rapid-snark ${RAPID_SNARK} \ --batch-size 8 \ - --output-dir "${OUTPUT_DIR}" \ + --output-dir ${OUTPUT_DIR} \ --maci-tx-hash "${MACI_TRANSACTION_HASH}" \ --state-file ${STATE_FILE} From c11fdca0f3d0f31eb62135f7d7958f66bcbc1a28 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Mon, 27 Nov 2023 15:45:54 -0500 Subject: [PATCH 098/338] fix rapidsnark path --- contracts/e2e/index.ts | 5 ++- contracts/utils/maci.ts | 77 +++++++++++++++++++++++------------------ 2 files changed, 46 insertions(+), 36 deletions(-) diff --git a/contracts/e2e/index.ts b/contracts/e2e/index.ts index 1b611ef60..6e6983b17 100644 --- a/contracts/e2e/index.ts +++ b/contracts/e2e/index.ts @@ -38,8 +38,7 @@ const roundDuration = 7 * 86400 // MACI zkFiles const circuit = process.env.CIRCUIT_TYPE || DEFAULT_CIRCUIT const circuitDirectory = process.env.CIRCUIT_DIRECTORY || '../../params' -const rapidSnarkDirectory = - process.env.RAPID_SNARK || '~/rapidsnark/package/bin/prover' +const rapidSnark = process.env.RAPID_SNARK || '~/rapidsnark/package/bin/prover' const proofOutputDirectory = process.env.PROOF_OUTPUT_DIR || './proof_output' const tallyBatchSize = Number(process.env.TALLY_BATCH_SIZE || 8) @@ -332,7 +331,7 @@ describe('End-to-end Tests', function () { pollId: pollId.toString(), coordinatorMacisk: coordinatorKeypair.privKey.serialize(), maciTxHash: maciTransactionHash, - rapidSnarkDirectory, + rapidSnark, circuitType: circuit, circuitDirectory, outputDir, diff --git a/contracts/utils/maci.ts b/contracts/utils/maci.ts index 05cba67f4..4e178d05b 100644 --- a/contracts/utils/maci.ts +++ b/contracts/utils/maci.ts @@ -19,7 +19,7 @@ import { proveOnChain, } from '@clrfund/maci-cli' -import { getTalyFilePath } from './misc' +import { getTalyFilePath, isPathExist } from './misc' import { CIRCUITS } from './circuits' import path from 'path' @@ -238,6 +238,7 @@ export function getGenProofArgs( rapidSnark, outputDir, } = args + const tallyFile = getTalyFilePath(outputDir) const maciStateFile = path.join(outputDir, `macistate`) @@ -253,38 +254,48 @@ export function getGenProofArgs( // do not cleanup threads after calling genProofs, // the script will exit and end threads at the end const cleanup = false - return isOsArm - ? { - contract: maciAddress, - eth_provider: providerUrl, - poll_id: pollId.toString(), - tally_file: tallyFile, - process_wasm: processWasm, - process_zkey: processZkFile, - tally_zkey: tallyZkFile, - tally_wasm: tallyWasm, - transaction_hash: maciTxHash, - output: outputDir, - privkey: coordinatorMacisk, - macistate: maciStateFile, - cleanup, - } - : { - contract: maciAddress, - eth_provider: providerUrl, - poll_id: pollId.toString(), - tally_file: tallyFile, - rapidsnark: rapidSnark, - process_witnessgen: processWitness, - tally_witnessgen: tallyWitness, - process_zkey: processZkFile, - tally_zkey: tallyZkFile, - transaction_hash: maciTxHash, - output: outputDir, - privkey: coordinatorMacisk, - macistate: maciStateFile, - cleanup, - } + if (isOsArm) { + return { + contract: maciAddress, + eth_provider: providerUrl, + poll_id: pollId.toString(), + tally_file: tallyFile, + process_wasm: processWasm, + process_zkey: processZkFile, + tally_zkey: tallyZkFile, + tally_wasm: tallyWasm, + transaction_hash: maciTxHash, + output: outputDir, + privkey: coordinatorMacisk, + macistate: maciStateFile, + cleanup, + } + } else { + if (!rapidSnark) { + throw new Error('Please specify the path to the rapidsnark binary') + } + + if (!isPathExist(rapidSnark)) { + throw new Error(`Path ${rapidSnark} does not exist`) + } + + return { + contract: maciAddress, + eth_provider: providerUrl, + poll_id: pollId.toString(), + tally_file: tallyFile, + rapidsnark: rapidSnark, + process_witnessgen: processWitness, + tally_witnessgen: tallyWitness, + process_zkey: processZkFile, + tally_zkey: tallyZkFile, + transaction_hash: maciTxHash, + output: outputDir, + privkey: coordinatorMacisk, + macistate: maciStateFile, + cleanup, + } + } } /** From 781e3608f9e2348f4fc961ca48d0222596dd2d5d Mon Sep 17 00:00:00 2001 From: yuetloo Date: Mon, 27 Nov 2023 18:38:54 -0500 Subject: [PATCH 099/338] move deploySponsor.ts from tasks to cli --- contracts/cli/deploySponsor.ts | 23 +++++++++++++++++++++++ contracts/tasks/deploySponsor.ts | 9 --------- 2 files changed, 23 insertions(+), 9 deletions(-) create mode 100644 contracts/cli/deploySponsor.ts delete mode 100644 contracts/tasks/deploySponsor.ts diff --git a/contracts/cli/deploySponsor.ts b/contracts/cli/deploySponsor.ts new file mode 100644 index 000000000..b5d3d04df --- /dev/null +++ b/contracts/cli/deploySponsor.ts @@ -0,0 +1,23 @@ +/** + * Deploy an instance of the BrightID sponsor contract + * + * Sample usage: + * + * HARDHAT_NETWORK=localhost yarn ts-node cli/deploySponsor.ts + */ +import { ethers } from 'hardhat' + +async function main() { + const SponsorContract = await ethers.getContractFactory('BrightIdSponsor') + const sponsor = await SponsorContract.deploy() + console.log('Deployed the sponsor contract at', sponsor.address) +} + +main() + .then(() => { + process.exit(0) + }) + .catch((err) => { + console.error(err) + process.exit(-1) + }) diff --git a/contracts/tasks/deploySponsor.ts b/contracts/tasks/deploySponsor.ts deleted file mode 100644 index 58ddaaa0c..000000000 --- a/contracts/tasks/deploySponsor.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { task } from 'hardhat/config' - -task('deploy-sponsor', 'Deploy the BrightID sponsor contract').setAction( - async (_, { ethers }) => { - const SponsorContract = await ethers.getContractFactory('BrightIdSponsor') - const sponsor = await SponsorContract.deploy() - console.log('Deployed the sponsor contract at', sponsor.address) - } -) From 3590b32f7f7a817dc555e85adbd53403e3fb4885 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Tue, 28 Nov 2023 18:12:28 -0500 Subject: [PATCH 100/338] fix contract verification error --- contracts/cli/newClrFund.ts | 55 ++++++++++++++++++++++++++++++----- contracts/cli/newRound.ts | 15 ++++++++-- contracts/hardhat.config.ts | 1 + contracts/tasks/index.ts | 29 ------------------ contracts/tasks/verifyAll.ts | 3 +- contracts/tasks/verifyMaci.ts | 40 +++++-------------------- 6 files changed, 71 insertions(+), 72 deletions(-) diff --git a/contracts/cli/newClrFund.ts b/contracts/cli/newClrFund.ts index 4d9d1ad81..22a29ec8a 100644 --- a/contracts/cli/newClrFund.ts +++ b/contracts/cli/newClrFund.ts @@ -20,6 +20,7 @@ * * If token is not provided, a new ERC20 token will be created */ +import { BigNumber } from 'ethers' import { ethers, network } from 'hardhat' import { getEventArg } from '../utils/contracts' import { newMaciPrivateKey } from '../utils/maci' @@ -31,11 +32,13 @@ import { setCoordinator, } from '../utils/deployment' import { JSONFile } from '../utils/JSONFile' -import { program } from 'commander' +import { Option, program } from 'commander' import dotenv from 'dotenv' import { UNIT } from '../utils/constants' dotenv.config() +const DEFAULT_DEPOSIT_AMOUNT = '0.001' + program .description('Deploy a new ClrFund instance') .requiredOption( @@ -44,16 +47,43 @@ program ) .option('-c --coordinator ', 'The coordinator ETH address') .option('-t --token
', 'The native token address') - .option('-a --initial-token-supply ', 'Initial token amount', '1000') - .option('-u --user-registry-type ', 'The user registry type') + .addOption( + new Option( + '-a --initial-token-supply ', + 'Initial token amount for new token' + ).default(1000) + ) + .addOption( + new Option( + '-u --user-registry-type ', + 'The user registry type' + ).choices(['simple', 'brightid', 'merkle', 'storage']) + ) .option('-x --brightid-context ', 'The brightid context') - .option('-v --brightid-verifier ', 'The brightid verifier address') + .addOption( + new Option( + '-v --brightid-verifier ', + 'The brightid verifier address' + ).default('0xdbf0b2ee9887fe11934789644096028ed3febe9c') + ) .option( '-o --brightid-sponsor ', 'The brightid sponsor contract address' ) - .option('-r --recipient-registry-type ', 'The recipient registry type') - .option('-b --deposit ', 'The optimistic recipient registry deposit') + .addOption( + new Option( + '-r --recipient-registry-type ', + 'The recipient registry type' + ) + .choices(['simple', 'optimistic']) + .default('optimistic') + ) + .addOption( + new Option( + '-b --deposit ', + 'The optimistic recipient registry deposit' + ).default(DEFAULT_DEPOSIT_AMOUNT) + ) .option( '-p --challenge-period ', 'The optimistic recipient registry challenge period in seconds', @@ -149,20 +179,23 @@ async function main(args: any) { // set recipient registry let recipientRegistryAddress = args.recipientRegistryAddress if (!recipientRegistryAddress) { + const deposit = parseDeposit(args.deposit) const recipientRegistryContract = await deployRecipientRegistry({ ethers, signer, type: args.recipientRegistryType, challengePeriod: args.challengePeriod, - deposit: args.deposit, + deposit, controller: clrfund, }) recipientRegistryAddress = recipientRegistryContract.address } + const setRecipientRegistryTx = await clrfundContract.setRecipientRegistry( recipientRegistryAddress ) await setRecipientRegistryTx.wait() + console.log( `Set ${args.recipientRegistryType} recipient registry: ${recipientRegistryAddress}` ) @@ -172,6 +205,14 @@ async function main(args: any) { } } +function parseDeposit(deposit: string): BigNumber { + try { + return ethers.utils.parseUnits(deposit) + } catch (e) { + throw new Error(`Error parsing deposit ${(e as Error).message}`) + } +} + main(program.opts()) .then(() => { process.exit(0) diff --git a/contracts/cli/newRound.ts b/contracts/cli/newRound.ts index 951dcb5ce..e13f5bdc4 100644 --- a/contracts/cli/newRound.ts +++ b/contracts/cli/newRound.ts @@ -25,9 +25,18 @@ program 'Create a new BrightId user registry', false ) - .option('-x --context ', 'The brightid context') - .option('-v --verifier ', 'The brightid verifier address') - .option('-o --sponsor ', 'The brightid sponsor contract address') + .option( + '-x --context ', + 'The brightid context for the new user registry' + ) + .option( + '-v --verifier ', + 'The brightid verifier address for the new user registry' + ) + .option( + '-o --sponsor ', + 'The brightid sponsor contract address for the new user registry' + ) .option( '-s --state-file ', 'File to store the ClrFundDeployer address for e2e testing' diff --git a/contracts/hardhat.config.ts b/contracts/hardhat.config.ts index 36b27c28f..8a7d3a827 100644 --- a/contracts/hardhat.config.ts +++ b/contracts/hardhat.config.ts @@ -8,6 +8,7 @@ import '@nomiclabs/hardhat-waffle' import '@nomiclabs/hardhat-ganache' import 'hardhat-contract-sizer' import '@nomiclabs/hardhat-etherscan' +import './tasks' dotenv.config() diff --git a/contracts/tasks/index.ts b/contracts/tasks/index.ts index 12beb4e12..16be9d08d 100644 --- a/contracts/tasks/index.ts +++ b/contracts/tasks/index.ts @@ -1,35 +1,6 @@ -import './newDeployer' -import './newClrFund' -import './newMaciKey' -import './newRound' -import './setToken' -import './setCoordinator' -import './setUserRegistry' -import './setRecipientRegistry' -import './setMaciParameters' -import './setPollFactory' -import './cancelRound' -import './addContributors' -import './addRecipients' -import './contribute' -import './vote' -import './timeTravel' -import './finalize' -import './claim' - import './verifyAll' import './verifyMaciFactory' import './verifyRound' import './verifyMaci' import './verifyRecipientRegistry' import './verifyUserRegistry' -import './auditTally' -import './exportRound' -import './mergeAllocations' -import './deploySponsor' -import './loadUsers' -import './findStorageSlot' -import './setStorageRoot' -import './loadMerkleUsers' - -import './pubkey' diff --git a/contracts/tasks/verifyAll.ts b/contracts/tasks/verifyAll.ts index 2b9da8ac3..a7f94d291 100644 --- a/contracts/tasks/verifyAll.ts +++ b/contracts/tasks/verifyAll.ts @@ -102,8 +102,9 @@ async function verifyTally(tally: Contract, run: any): Promise { async function verifyPoll(pollContract: Contract, run: any): Promise { try { + const [, duration] = await pollContract.getDeployTimeAndDuration() const constructorArguments = await Promise.all([ - pollContract.duration(), + Promise.resolve(duration), pollContract.maxValues(), pollContract.treeDepths(), pollContract.batchSizes(), diff --git a/contracts/tasks/verifyMaci.ts b/contracts/tasks/verifyMaci.ts index 11d8057ae..560c1c921 100644 --- a/contracts/tasks/verifyMaci.ts +++ b/contracts/tasks/verifyMaci.ts @@ -4,43 +4,19 @@ import { task } from 'hardhat/config' * Verifies the MACI contract * - it constructs the constructor arguments by querying the MACI contract * - it calls the etherscan hardhat plugin to verify the contract + * + * Sample usage: + * yarn hardhat verify-maci --network */ task('verify-maci', 'Verify a MACI contract') .addPositionalParam('maciAddress', 'MACI contract address') .setAction(async ({ maciAddress }, { run, ethers }) => { const maci = await ethers.getContractAt('MACI', maciAddress) - const treeDepths = await maci.treeDepths() - const tallyBatchSize = await maci.tallyBatchSize() - const messageBatchSize = await maci.messageBatchSize() - const maxUsers = await maci.maxUsers() - const maxMessages = await maci.maxMessages() - const maxVoteOptions = await maci.voteOptionsMaxLeafIndex() - const signUpGatekeeper = await maci.signUpGatekeeper() - const batchUstVerifier = await ethers.provider.getStorageAt(maciAddress, 1) - const qvtVerifier = await ethers.provider.getStorageAt(maciAddress, 2) - const signUpDurationSeconds = await maci.signUpDurationSeconds() - const votingDurationSeconds = await maci.votingDurationSeconds() - const initialVoiceCreditProxy = await maci.initialVoiceCreditProxy() - const coordinatorAddress = await maci.coordinatorAddress() - const coordinatorPubKey = await maci.coordinatorPubKey() - - const constructorArguments = [ - { - stateTreeDepth: treeDepths[0], - messageTreeDepth: treeDepths[1], - voteOptionTreeDepth: treeDepths[2], - }, - { tallyBatchSize, messageBatchSize }, - { maxUsers, maxMessages, maxVoteOptions }, - signUpGatekeeper, - ethers.utils.hexDataSlice(batchUstVerifier, 12), - ethers.utils.hexDataSlice(qvtVerifier, 12), - signUpDurationSeconds, - votingDurationSeconds, - initialVoiceCreditProxy, - { x: coordinatorPubKey.x, y: coordinatorPubKey.y }, - coordinatorAddress, - ] + const constructorArguments = await Promise.all([ + maci.pollFactory(), + maci.signUpGatekeeper(), + maci.initialVoiceCreditProxy(), + ]) console.log('Verifying the MACI contract', maciAddress) console.log('Constructor arguments', constructorArguments) From fc7d2434b500222c45f13f8a586bda16727f869a Mon Sep 17 00:00:00 2001 From: yuetloo Date: Fri, 1 Dec 2023 00:33:10 -0500 Subject: [PATCH 101/338] rename fundingRoundFactory to clrFund --- contracts/.env.example | 12 +- ...{FundingRoundFactory.json => ClrFund.json} | 278 +- subgraph/abis/FundingRound.json | 13 + subgraph/abis/MACI.json | 929 +++---- subgraph/abis/MACIFactory.json | 433 +++- .../abis/OptimisticRecipientRegistry.json | 163 +- subgraph/abis/Poll.json | 876 +++++++ subgraph/config/arbitrum-goerli.json | 2 +- subgraph/config/arbitrum.json | 2 +- subgraph/config/xdai.json | 2 +- .../BrightIdUserRegistry.ts | 0 .../ClrFund.ts} | 223 +- .../FundingRound.ts | 15 + subgraph/generated/ClrFund/MACI.ts | 1087 ++++++++ subgraph/generated/ClrFund/MACIFactory.ts | 816 ++++++ .../OptimisticRecipientRegistry.ts | 23 + subgraph/generated/ClrFund/Poll.ts | 1461 +++++++++++ .../{FundingRoundFactory => ClrFund}/Token.ts | 0 .../FundingRoundFactory/MACIFactory.ts | 643 ----- .../OptimisticRecipientRegistry.ts | 23 + subgraph/generated/schema.ts | 128 +- subgraph/generated/templates.ts | 10 + .../templates/FundingRound/FundingRound.ts | 15 + .../OptimisticRecipientRegistry.ts | 23 + .../generated/templates/MACI/FundingRound.ts | 15 + subgraph/generated/templates/MACI/MACI.ts | 1439 +++-------- .../OptimisticRecipientRegistry.ts | 23 + .../generated/templates/Poll/FundingRound.ts | 842 ++++++ subgraph/generated/templates/Poll/Poll.ts | 1461 +++++++++++ subgraph/schema.graphql | 20 +- ...undFactoryMapping.ts => ClrFundMapping.ts} | 214 +- subgraph/src/MACIMapping.ts | 70 +- subgraph/src/PollMapping.ts | 60 + subgraph/src/PublicKey.ts | 12 + subgraph/src/RecipientRegistry.ts | 22 +- subgraph/subgraph.template.yaml | 44 +- subgraph/subgraph.yaml | 42 +- vue-app/.env.example | 2 +- vue-app/src/App.vue | 4 +- vue-app/src/api/abi.ts | 6 +- vue-app/src/api/{factory.ts => clrFund.ts} | 23 +- vue-app/src/api/contributions.ts | 4 +- vue-app/src/api/core.ts | 10 +- vue-app/src/api/maci-factory.ts | 4 +- vue-app/src/api/projects.ts | 7 +- vue-app/src/api/round.ts | 64 +- vue-app/src/api/rounds.ts | 4 +- vue-app/src/api/user.ts | 4 +- vue-app/src/components/MatchingFundsModal.vue | 11 +- vue-app/src/components/RoundInformation.vue | 2 +- vue-app/src/graphql/API.ts | 2289 +++++++++-------- ...oryInfo.graphql => GetClrFundInfo.graphql} | 4 +- .../queries/GetContributorMessages.graphql | 2 +- .../graphql/queries/GetCurrentRound.graphql | 4 +- .../queries/GetRecipientRegistryInfo.graphql | 4 +- .../src/graphql/queries/GetRoundInfo.graphql | 9 + vue-app/src/router/index.ts | 2 +- vue-app/src/stores/app.ts | 42 +- vue-app/src/stores/recipient.ts | 2 +- vue-app/src/stores/user.ts | 6 +- vue-app/src/views/Project.vue | 2 +- vue-app/src/views/ProjectList.vue | 2 +- 62 files changed, 9911 insertions(+), 4043 deletions(-) rename subgraph/abis/{FundingRoundFactory.json => ClrFund.json} (61%) create mode 100644 subgraph/abis/Poll.json rename subgraph/generated/{FundingRoundFactory => ClrFund}/BrightIdUserRegistry.ts (100%) rename subgraph/generated/{FundingRoundFactory/FundingRoundFactory.ts => ClrFund/ClrFund.ts} (85%) rename subgraph/generated/{FundingRoundFactory => ClrFund}/FundingRound.ts (97%) create mode 100644 subgraph/generated/ClrFund/MACI.ts create mode 100644 subgraph/generated/ClrFund/MACIFactory.ts rename subgraph/generated/{FundingRoundFactory => ClrFund}/OptimisticRecipientRegistry.ts (96%) create mode 100644 subgraph/generated/ClrFund/Poll.ts rename subgraph/generated/{FundingRoundFactory => ClrFund}/Token.ts (100%) delete mode 100644 subgraph/generated/FundingRoundFactory/MACIFactory.ts create mode 100644 subgraph/generated/templates/Poll/FundingRound.ts create mode 100644 subgraph/generated/templates/Poll/Poll.ts rename subgraph/src/{FundingRoundFactoryMapping.ts => ClrFundMapping.ts} (55%) create mode 100644 subgraph/src/PollMapping.ts create mode 100644 subgraph/src/PublicKey.ts rename vue-app/src/api/{factory.ts => clrFund.ts} (65%) rename vue-app/src/graphql/queries/{GetFactoryInfo.graphql => GetClrFundInfo.graphql} (61%) diff --git a/contracts/.env.example b/contracts/.env.example index 15ea56d1e..c668e5a89 100644 --- a/contracts/.env.example +++ b/contracts/.env.example @@ -23,15 +23,11 @@ WALLET_PRIVATE_KEY= NATIVE_TOKEN_ADDRESS= # Required to use in the tally and finalize scripts -CLRFUND= -ROUND_ADDRESS= COORDINATOR_PK= COORDINATOR_ETH_PK= -# Used in the tally script to add tally results to funding round by batch, default is 20 +# Used in the tally script to add tally results to funding round by batch, default is 8 TALLY_BATCH_SIZE= -# The block that the MACI contract was created in. Used in fetchLogs -MACI_START_BLOCK= # Number of blocks of the MACI event logs to fetch, default is 20,000 NUM_BLOCKS_PER_REQUEST= @@ -42,9 +38,9 @@ NUM_BLOCKS_PER_REQUEST= ETHERSCAN_API_KEY= -# ZK proof circuit type, based on MACI v0.10.1 circuit type as defined in utils/deployment.ts -# e.g. test, small, medium, x32, prod -CIRCUIT_TYPE=prod +# ZK proof circuit type, based on MACI v1 circuit type as defined in utils/deployment.ts +# e.g. micro +CIRCUIT_TYPE=micro # The IPFS gateway url used by the prepare-results.ts script diff --git a/subgraph/abis/FundingRoundFactory.json b/subgraph/abis/ClrFund.json similarity index 61% rename from subgraph/abis/FundingRoundFactory.json rename to subgraph/abis/ClrFund.json index b56cf93eb..a9b7eb499 100644 --- a/subgraph/abis/FundingRoundFactory.json +++ b/subgraph/abis/ClrFund.json @@ -1,14 +1,68 @@ [ { - "inputs": [ - { - "internalType": "contract MACIFactory", - "name": "_maciFactory", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" + "inputs": [], + "name": "AlreadyFinalized", + "type": "error" + }, + { + "inputs": [], + "name": "FundingSourceAlreadyAdded", + "type": "error" + }, + { + "inputs": [], + "name": "FundingSourceNotFound", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidFundingRoundFactory", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidMaciFactory", + "type": "error" + }, + { + "inputs": [], + "name": "NoCoordinator", + "type": "error" + }, + { + "inputs": [], + "name": "NoCurrentRound", + "type": "error" + }, + { + "inputs": [], + "name": "NoRecipientRegistry", + "type": "error" + }, + { + "inputs": [], + "name": "NoToken", + "type": "error" + }, + { + "inputs": [], + "name": "NoUserRegistry", + "type": "error" + }, + { + "inputs": [], + "name": "NotAuthorized", + "type": "error" + }, + { + "inputs": [], + "name": "NotFinalized", + "type": "error" + }, + { + "inputs": [], + "name": "NotOwnerOfMaciFactory", + "type": "error" }, { "anonymous": false, @@ -23,6 +77,12 @@ "name": "CoordinatorChanged", "type": "event" }, + { + "anonymous": false, + "inputs": [], + "name": "FundingRoundTemplateChanged", + "type": "event" + }, { "anonymous": false, "inputs": [ @@ -49,6 +109,12 @@ "name": "FundingSourceRemoved", "type": "event" }, + { + "anonymous": false, + "inputs": [], + "name": "Initialized", + "type": "event" + }, { "anonymous": false, "inputs": [ @@ -68,6 +134,12 @@ "name": "OwnershipTransferred", "type": "event" }, + { + "anonymous": false, + "inputs": [], + "name": "RecipientRegistrySet", + "type": "event" + }, { "anonymous": false, "inputs": [ @@ -107,9 +179,19 @@ "name": "TokenChanged", "type": "event" }, + { + "anonymous": false, + "inputs": [], + "name": "UserRegistrySet", + "type": "event" + }, { "inputs": [ - { "internalType": "address", "name": "_source", "type": "address" } + { + "internalType": "address", + "name": "_source", + "type": "address" + } ], "name": "addFundingSource", "outputs": [], @@ -126,7 +208,13 @@ { "inputs": [], "name": "coordinator", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], "stateMutability": "view", "type": "function" }, @@ -134,8 +222,16 @@ "inputs": [], "name": "coordinatorPubKey", "outputs": [ - { "internalType": "uint256", "name": "x", "type": "uint256" }, - { "internalType": "uint256", "name": "y", "type": "uint256" } + { + "internalType": "uint256", + "name": "x", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "y", + "type": "uint256" + } ], "stateMutability": "view", "type": "function" @@ -148,7 +244,13 @@ "type": "function" }, { - "inputs": [], + "inputs": [ + { + "internalType": "uint256", + "name": "duration", + "type": "uint256" + } + ], "name": "deployNewRound", "outputs": [], "stateMutability": "nonpayable", @@ -169,18 +271,50 @@ }, { "inputs": [ - { "internalType": "contract ERC20", "name": "token", "type": "address" } + { + "internalType": "contract ERC20", + "name": "token", + "type": "address" + } ], "name": "getMatchingFunds", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "address", + "name": "_maciFactory", + "type": "address" + }, + { + "internalType": "address", + "name": "_roundFactory", + "type": "address" + } + ], + "name": "init", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [], "name": "maciFactory", "outputs": [ - { "internalType": "contract MACIFactory", "name": "", "type": "address" } + { + "internalType": "contract MACIFactory", + "name": "", + "type": "address" + } ], "stateMutability": "view", "type": "function" @@ -189,7 +323,11 @@ "inputs": [], "name": "nativeToken", "outputs": [ - { "internalType": "contract ERC20", "name": "", "type": "address" } + { + "internalType": "contract ERC20", + "name": "", + "type": "address" + } ], "stateMutability": "view", "type": "function" @@ -197,7 +335,13 @@ { "inputs": [], "name": "owner", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], "stateMutability": "view", "type": "function" }, @@ -216,7 +360,11 @@ }, { "inputs": [ - { "internalType": "address", "name": "_source", "type": "address" } + { + "internalType": "address", + "name": "_source", + "type": "address" + } ], "name": "removeFundingSource", "outputs": [], @@ -231,56 +379,44 @@ "type": "function" }, { - "inputs": [ - { "internalType": "address", "name": "_coordinator", "type": "address" }, + "inputs": [], + "name": "roundFactory", + "outputs": [ { - "components": [ - { "internalType": "uint256", "name": "x", "type": "uint256" }, - { "internalType": "uint256", "name": "y", "type": "uint256" } - ], - "internalType": "struct MACISharedObjs.PubKey", - "name": "_coordinatorPubKey", - "type": "tuple" + "internalType": "contract FundingRoundFactory", + "name": "", + "type": "address" } ], - "name": "setCoordinator", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [ - { "internalType": "uint8", "name": "_stateTreeDepth", "type": "uint8" }, - { "internalType": "uint8", "name": "_messageTreeDepth", "type": "uint8" }, - { - "internalType": "uint8", - "name": "_voteOptionTreeDepth", - "type": "uint8" - }, - { "internalType": "uint8", "name": "_tallyBatchSize", "type": "uint8" }, - { "internalType": "uint8", "name": "_messageBatchSize", "type": "uint8" }, - { - "internalType": "contract SnarkVerifier", - "name": "_batchUstVerifier", - "type": "address" - }, { - "internalType": "contract SnarkVerifier", - "name": "_qvtVerifier", + "internalType": "address", + "name": "_coordinator", "type": "address" }, { - "internalType": "uint256", - "name": "_signUpDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_votingDuration", - "type": "uint256" + "components": [ + { + "internalType": "uint256", + "name": "x", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "y", + "type": "uint256" + } + ], + "internalType": "struct IPubKey.PubKey", + "name": "_coordinatorPubKey", + "type": "tuple" } ], - "name": "setMaciParameters", + "name": "setCoordinator", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -300,7 +436,11 @@ }, { "inputs": [ - { "internalType": "address", "name": "_token", "type": "address" } + { + "internalType": "address", + "name": "_token", + "type": "address" + } ], "name": "setToken", "outputs": [], @@ -322,11 +462,25 @@ }, { "inputs": [ - { "internalType": "uint256", "name": "_totalSpent", "type": "uint256" }, + { + "internalType": "uint256", + "name": "_totalSpent", + "type": "uint256" + }, { "internalType": "uint256", "name": "_totalSpentSalt", "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_newResultCommitment", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_perVOSpentVoiceCreditsHash", + "type": "uint256" } ], "name": "transferMatchingFunds", @@ -336,7 +490,11 @@ }, { "inputs": [ - { "internalType": "address", "name": "newOwner", "type": "address" } + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } ], "name": "transferOwnership", "outputs": [], diff --git a/subgraph/abis/FundingRound.json b/subgraph/abis/FundingRound.json index 9f603757e..5abae313a 100644 --- a/subgraph/abis/FundingRound.json +++ b/subgraph/abis/FundingRound.json @@ -453,6 +453,19 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "poll", + "outputs": [ + { + "internalType": "contract Poll", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "totalSpent", diff --git a/subgraph/abis/MACI.json b/subgraph/abis/MACI.json index 9bd23ef87..09bfde2e6 100644 --- a/subgraph/abis/MACI.json +++ b/subgraph/abis/MACI.json @@ -2,209 +2,102 @@ { "inputs": [ { - "components": [ - { - "internalType": "uint8", - "name": "stateTreeDepth", - "type": "uint8" - }, - { - "internalType": "uint8", - "name": "messageTreeDepth", - "type": "uint8" - }, - { - "internalType": "uint8", - "name": "voteOptionTreeDepth", - "type": "uint8" - } - ], - "internalType": "struct MACIParameters.TreeDepths", - "name": "_treeDepths", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint8", - "name": "tallyBatchSize", - "type": "uint8" - }, - { - "internalType": "uint8", - "name": "messageBatchSize", - "type": "uint8" - } - ], - "internalType": "struct MACIParameters.BatchSizes", - "name": "_batchSizes", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "maxUsers", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxMessages", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxVoteOptions", - "type": "uint256" - } - ], - "internalType": "struct MACIParameters.MaxValues", - "name": "_maxValues", - "type": "tuple" + "internalType": "contract PollFactory", + "name": "_pollFactory", + "type": "address" }, { "internalType": "contract SignUpGatekeeper", "name": "_signUpGatekeeper", "type": "address" }, - { - "internalType": "contract SnarkVerifier", - "name": "_batchUstVerifier", - "type": "address" - }, - { - "internalType": "contract SnarkVerifier", - "name": "_qvtVerifier", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_signUpDurationSeconds", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_votingDurationSeconds", - "type": "uint256" - }, { "internalType": "contract InitialVoiceCreditProxy", "name": "_initialVoiceCreditProxy", "type": "address" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "x", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "y", - "type": "uint256" - } - ], - "internalType": "struct MACISharedObjs.PubKey", - "name": "_coordinatorPubKey", - "type": "tuple" - }, - { - "internalType": "address", - "name": "_coordinatorAddress", - "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { - "anonymous": false, + "inputs": [], + "name": "AlreadyInitialized", + "type": "error" + }, + { "inputs": [ { - "components": [ - { - "internalType": "uint256", - "name": "iv", - "type": "uint256" - }, - { - "internalType": "uint256[10]", - "name": "data", - "type": "uint256[10]" - } - ], - "indexed": false, - "internalType": "struct MACISharedObjs.Message", - "name": "_message", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "x", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "y", - "type": "uint256" - } - ], - "indexed": false, - "internalType": "struct MACISharedObjs.PubKey", - "name": "_encPubKey", - "type": "tuple" + "internalType": "address", + "name": "_caller", + "type": "address" } ], - "name": "PublishMessage", - "type": "event" + "name": "CallerMustBePoll", + "type": "error" + }, + { + "inputs": [], + "name": "MaciNotInit", + "type": "error" + }, + { + "inputs": [], + "name": "MaciPubKeyLargerThanSnarkFieldSize", + "type": "error" }, { - "anonymous": false, "inputs": [ { - "components": [ - { - "internalType": "uint256", - "name": "x", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "y", - "type": "uint256" - } - ], - "indexed": false, - "internalType": "struct MACISharedObjs.PubKey", - "name": "_userPubKey", - "type": "tuple" - }, - { - "indexed": false, "internalType": "uint256", - "name": "_stateIndex", + "name": "pollId", "type": "uint256" - }, + } + ], + "name": "PollDoesNotExist", + "type": "error" + }, + { + "inputs": [], + "name": "PoseidonHashLibrariesNotLinked", + "type": "error" + }, + { + "inputs": [ { - "indexed": false, "internalType": "uint256", - "name": "_voiceCreditBalance", + "name": "pollId", "type": "uint256" } ], - "name": "SignUp", - "type": "event" + "name": "PreviousPollNotCompleted", + "type": "error" + }, + { + "inputs": [], + "name": "TooManySignups", + "type": "error" }, { + "inputs": [], + "name": "WrongVkRegistryOwner", + "type": "error" + }, + { + "anonymous": false, "inputs": [ { + "indexed": false, "internalType": "uint256", - "name": "_newStateRoot", + "name": "_pollId", "type": "uint256" }, + { + "indexed": false, + "internalType": "address", + "name": "_pollAddr", + "type": "address" + }, { "components": [ { @@ -218,237 +111,178 @@ "type": "uint256" } ], - "internalType": "struct MACISharedObjs.PubKey[]", - "name": "_ecdhPubKeys", - "type": "tuple[]" - }, - { - "internalType": "uint256[8]", - "name": "_proof", - "type": "uint256[8]" + "indexed": false, + "internalType": "struct IPubKey.PubKey", + "name": "_pubKey", + "type": "tuple" } ], - "name": "batchProcessMessage", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "name": "DeployPoll", + "type": "event" }, { + "anonymous": false, "inputs": [ { - "internalType": "uint8", - "name": "_levels", - "type": "uint8" - } - ], - "name": "calcEmptyVoteOptionTreeRoot", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "calcSignUpDeadline", - "outputs": [ + "indexed": false, + "internalType": "contract VkRegistry", + "name": "_vkRegistry", + "type": "address" + }, { - "internalType": "uint256", - "name": "", - "type": "uint256" + "indexed": false, + "internalType": "contract TopupCredit", + "name": "_topupCredit", + "type": "address" } ], - "stateMutability": "view", - "type": "function" + "name": "Init", + "type": "event" }, { - "inputs": [], - "name": "calcVotingDeadline", - "outputs": [ + "anonymous": false, + "inputs": [ { + "indexed": false, "internalType": "uint256", - "name": "", + "name": "_pollId", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" + "name": "MergeStateAq", + "type": "event" }, { + "anonymous": false, "inputs": [ { - "internalType": "uint8", - "name": "_treeLevels", - "type": "uint8" - }, - { + "indexed": false, "internalType": "uint256", - "name": "_zeroValue", + "name": "_pollId", "type": "uint256" - } - ], - "name": "computeEmptyQuinRoot", - "outputs": [ + }, { + "indexed": false, "internalType": "uint256", - "name": "", + "name": "_numSrQueueOps", "type": "uint256" } ], - "stateMutability": "pure", - "type": "function" + "name": "MergeStateAqSubRoots", + "type": "event" }, { + "anonymous": false, "inputs": [ { - "internalType": "uint8", - "name": "_treeLevels", - "type": "uint8" + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" }, { - "internalType": "uint256", - "name": "_zeroValue", - "type": "uint256" - } - ], - "name": "computeEmptyRoot", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - - { - "inputs": [], - "name": "coordinatorAddress", - "outputs": [ - { + "indexed": true, "internalType": "address", - "name": "", + "name": "newOwner", "type": "address" } ], - "stateMutability": "view", - "type": "function" + "name": "OwnershipTransferred", + "type": "event" }, { - "inputs": [], - "name": "coordinatorPubKey", - "outputs": [ + "anonymous": false, + "inputs": [ { + "indexed": false, "internalType": "uint256", - "name": "x", + "name": "_stateIndex", "type": "uint256" }, { - "internalType": "uint256", - "name": "y", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "coordinatorReset", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "currentMessageBatchIndex", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "currentPerVOSpentVoiceCreditsCommitment", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "currentQvtBatchNum", - "outputs": [ + "components": [ + { + "internalType": "uint256", + "name": "x", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "y", + "type": "uint256" + } + ], + "indexed": false, + "internalType": "struct IPubKey.PubKey", + "name": "_userPubKey", + "type": "tuple" + }, { + "indexed": false, "internalType": "uint256", - "name": "", + "name": "_voiceCreditBalance", "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "currentResultsCommitment", - "outputs": [ + }, { + "indexed": false, "internalType": "uint256", - "name": "", + "name": "_timestamp", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" + "name": "SignUp", + "type": "event" }, { - "inputs": [], - "name": "currentSpentVoiceCreditsCommitment", - "outputs": [ + "inputs": [ { "internalType": "uint256", - "name": "", + "name": "_duration", "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "emptyVoteOptionTreeRoot", - "outputs": [ + }, { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ + "components": [ + { + "internalType": "uint256", + "name": "maxMessages", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxVoteOptions", + "type": "uint256" + } + ], + "internalType": "struct Params.MaxValues", + "name": "_maxValues", + "type": "tuple" + }, { - "internalType": "uint256", - "name": "_newStateRoot", - "type": "uint256" + "components": [ + { + "internalType": "uint8", + "name": "intStateTreeDepth", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "messageTreeSubDepth", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "messageTreeDepth", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "voteOptionTreeDepth", + "type": "uint8" + } + ], + "internalType": "struct Params.TreeDepths", + "name": "_treeDepths", + "type": "tuple" }, { "components": [ @@ -463,56 +297,36 @@ "type": "uint256" } ], - "internalType": "struct MACISharedObjs.PubKey[]", - "name": "_ecdhPubKeys", - "type": "tuple[]" + "internalType": "struct IPubKey.PubKey", + "name": "_coordinatorPubKey", + "type": "tuple" } ], - "name": "genBatchUstPublicSignals", + "name": "deployPoll", "outputs": [ { - "internalType": "uint256[]", + "internalType": "address", "name": "", - "type": "uint256[]" + "type": "address" } ], - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", - "name": "_intermediateStateRoot", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_newResultsCommitment", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_newSpentVoiceCreditsCommitment", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_newPerVOSpentVoiceCreditsCommitment", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_totalVotes", + "name": "_pollId", "type": "uint256" } ], - "name": "genQvtPublicSignals", + "name": "getPoll", "outputs": [ { - "internalType": "uint256[]", + "internalType": "contract Poll", "name": "", - "type": "uint256[]" + "type": "address" } ], "stateMutability": "view", @@ -520,7 +334,7 @@ }, { "inputs": [], - "name": "getMessageTreeRoot", + "name": "getStateAqRoot", "outputs": [ { "internalType": "uint256", @@ -532,53 +346,52 @@ "type": "function" }, { - "inputs": [], - "name": "getStateTreeRoot", - "outputs": [ + "inputs": [ { - "internalType": "uint256", - "name": "", - "type": "uint256" + "internalType": "uint256[2]", + "name": "array", + "type": "uint256[2]" } ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "hasUnprocessedMessages", + "name": "hash2", "outputs": [ { - "internalType": "bool", + "internalType": "uint256", "name": "", - "type": "bool" + "type": "uint256" } ], - "stateMutability": "view", + "stateMutability": "pure", "type": "function" }, { - "inputs": [], - "name": "hasUntalliedStateLeaves", + "inputs": [ + { + "internalType": "uint256[3]", + "name": "array", + "type": "uint256[3]" + } + ], + "name": "hash3", "outputs": [ { - "internalType": "bool", + "internalType": "uint256", "name": "", - "type": "bool" + "type": "uint256" } ], - "stateMutability": "view", + "stateMutability": "pure", "type": "function" }, { "inputs": [ { - "internalType": "uint256[]", + "internalType": "uint256[4]", "name": "array", - "type": "uint256[]" + "type": "uint256[4]" } ], - "name": "hash11", + "name": "hash4", "outputs": [ { "internalType": "uint256", @@ -632,37 +445,6 @@ "stateMutability": "pure", "type": "function" }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "iv", - "type": "uint256" - }, - { - "internalType": "uint256[10]", - "name": "data", - "type": "uint256[10]" - } - ], - "internalType": "struct MACISharedObjs.Message", - "name": "_message", - "type": "tuple" - } - ], - "name": "hashMessage", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, { "inputs": [ { @@ -680,15 +462,10 @@ "type": "uint256" } ], - "internalType": "struct MACISharedObjs.PubKey", + "internalType": "struct IPubKey.PubKey", "name": "pubKey", "type": "tuple" }, - { - "internalType": "uint256", - "name": "voteOptionTreeRoot", - "type": "uint256" - }, { "internalType": "uint256", "name": "voiceCreditBalance", @@ -696,7 +473,7 @@ }, { "internalType": "uint256", - "name": "nonce", + "name": "timestamp", "type": "uint256" } ], @@ -717,16 +494,21 @@ "type": "function" }, { - "inputs": [], - "name": "hashedBlankStateLeaf", - "outputs": [ + "inputs": [ { - "internalType": "uint256", - "name": "", - "type": "uint256" + "internalType": "contract VkRegistry", + "name": "_vkRegistry", + "type": "address" + }, + { + "internalType": "contract TopupCredit", + "name": "_topupCredit", + "type": "address" } ], - "stateMutability": "view", + "name": "init", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { @@ -744,20 +526,26 @@ }, { "inputs": [], - "name": "maxMessages", + "name": "isInitialised", "outputs": [ { - "internalType": "uint256", + "internalType": "bool", "name": "", - "type": "uint256" + "type": "bool" } ], "stateMutability": "view", "type": "function" }, { - "inputs": [], - "name": "maxUsers", + "inputs": [ + { + "internalType": "uint256", + "name": "_pollId", + "type": "uint256" + } + ], + "name": "mergeStateAq", "outputs": [ { "internalType": "uint256", @@ -765,30 +553,35 @@ "type": "uint256" } ], - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "messageBatchSize", - "outputs": [ + "inputs": [ { - "internalType": "uint8", - "name": "", - "type": "uint8" + "internalType": "uint256", + "name": "_numSrQueueOps", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_pollId", + "type": "uint256" } ], - "stateMutability": "view", + "name": "mergeStateAqSubRoots", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], - "name": "messageTree", + "name": "nextPollId", "outputs": [ { - "internalType": "contract IncrementalMerkleTree", + "internalType": "uint256", "name": "", - "type": "address" + "type": "uint256" } ], "stateMutability": "view", @@ -796,7 +589,7 @@ }, { "inputs": [], - "name": "messageTreeMaxLeafIndex", + "name": "numSignUps", "outputs": [ { "internalType": "uint256", @@ -808,21 +601,14 @@ "type": "function" }, { - "inputs": [], - "name": "numMessages", - "outputs": [ + "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "numSignUps", + "name": "numStateLeaves", "outputs": [ { "internalType": "uint256", @@ -835,12 +621,12 @@ }, { "inputs": [], - "name": "originalCurrentResultsCommitment", + "name": "owner", "outputs": [ { - "internalType": "uint256", + "internalType": "address", "name": "", - "type": "uint256" + "type": "address" } ], "stateMutability": "view", @@ -848,12 +634,12 @@ }, { "inputs": [], - "name": "originalSpentVoiceCreditsCommitment", + "name": "pollFactory", "outputs": [ { - "internalType": "uint256", + "internalType": "contract PollFactory", "name": "", - "type": "uint256" + "type": "address" } ], "stateMutability": "view", @@ -863,36 +649,24 @@ "inputs": [ { "internalType": "uint256", - "name": "_intermediateStateRoot", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_newResultsCommitment", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_newSpentVoiceCreditsCommitment", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_newPerVOSpentVoiceCreditsCommitment", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_totalVotes", + "name": "", "type": "uint256" - }, + } + ], + "name": "polls", + "outputs": [ { - "internalType": "uint256[8]", - "name": "_proof", - "type": "uint256[8]" + "internalType": "contract Poll", + "name": "", + "type": "address" } ], - "name": "proveVoteTallyBatch", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -900,43 +674,20 @@ { "inputs": [ { - "components": [ - { - "internalType": "uint256", - "name": "iv", - "type": "uint256" - }, - { - "internalType": "uint256[10]", - "name": "data", - "type": "uint256[10]" - } - ], - "internalType": "struct MACISharedObjs.Message", - "name": "_message", - "type": "tuple" - }, + "internalType": "uint256[]", + "name": "array", + "type": "uint256[]" + } + ], + "name": "sha256Hash", + "outputs": [ { - "components": [ - { - "internalType": "uint256", - "name": "x", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "y", - "type": "uint256" - } - ], - "internalType": "struct MACISharedObjs.PubKey", - "name": "_encPubKey", - "type": "tuple" + "internalType": "uint256", + "name": "", + "type": "uint256" } ], - "name": "publishMessage", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "pure", "type": "function" }, { @@ -954,8 +705,8 @@ "type": "uint256" } ], - "internalType": "struct MACISharedObjs.PubKey", - "name": "_userPubKey", + "internalType": "struct IPubKey.PubKey", + "name": "_pubKey", "type": "tuple" }, { @@ -974,19 +725,6 @@ "stateMutability": "nonpayable", "type": "function" }, - { - "inputs": [], - "name": "signUpDurationSeconds", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, { "inputs": [], "name": "signUpGatekeeper", @@ -1015,36 +753,10 @@ }, { "inputs": [], - "name": "stateRoot", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "stateRootBeforeProcessing", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "stateTree", + "name": "stateAq", "outputs": [ { - "internalType": "contract IncrementalMerkleTree", + "internalType": "contract AccQueue", "name": "", "type": "address" } @@ -1054,7 +766,7 @@ }, { "inputs": [], - "name": "tallyBatchSize", + "name": "stateTreeDepth", "outputs": [ { "internalType": "uint8", @@ -1067,35 +779,12 @@ }, { "inputs": [], - "name": "totalVotes", + "name": "topupCredit", "outputs": [ { - "internalType": "uint256", + "internalType": "contract TopupCredit", "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "treeDepths", - "outputs": [ - { - "internalType": "uint8", - "name": "stateTreeDepth", - "type": "uint8" - }, - { - "internalType": "uint8", - "name": "messageTreeDepth", - "type": "uint8" - }, - { - "internalType": "uint8", - "name": "voteOptionTreeDepth", - "type": "uint8" + "type": "address" } ], "stateMutability": "view", @@ -1104,48 +793,24 @@ { "inputs": [ { - "internalType": "uint256", - "name": "_spent", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_salt", - "type": "uint256" - } - ], - "name": "verifySpentVoiceCredits", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "voteOptionsMaxLeafIndex", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" + "internalType": "address", + "name": "newOwner", + "type": "address" } ], - "stateMutability": "view", + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], - "name": "votingDurationSeconds", + "name": "vkRegistry", "outputs": [ { - "internalType": "uint256", + "internalType": "contract VkRegistry", "name": "", - "type": "uint256" + "type": "address" } ], "stateMutability": "view", diff --git a/subgraph/abis/MACIFactory.json b/subgraph/abis/MACIFactory.json index 0a8b91ad4..d28bfa3a2 100644 --- a/subgraph/abis/MACIFactory.json +++ b/subgraph/abis/MACIFactory.json @@ -2,54 +2,44 @@ { "inputs": [ { - "internalType": "uint8", - "name": "_stateTreeDepth", - "type": "uint8" - }, - { - "internalType": "uint8", - "name": "_messageTreeDepth", - "type": "uint8" - }, - { - "internalType": "uint8", - "name": "_voteOptionTreeDepth", - "type": "uint8" - }, - { - "internalType": "uint8", - "name": "_tallyBatchSize", - "type": "uint8" - }, - { - "internalType": "uint8", - "name": "_messageBatchSize", - "type": "uint8" - }, - { - "internalType": "contract SnarkVerifier", - "name": "_batchUstVerifier", + "internalType": "address", + "name": "_vkRegistry", "type": "address" }, { - "internalType": "contract SnarkVerifier", - "name": "_qvtVerifier", + "internalType": "address", + "name": "_pollFactory", "type": "address" - }, - { - "internalType": "uint256", - "name": "_signUpDuration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_votingDuration", - "type": "uint256" } ], "stateMutability": "nonpayable", "type": "constructor" }, + { + "inputs": [], + "name": "InvalidPollFactory", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidVkRegistry", + "type": "error" + }, + { + "inputs": [], + "name": "NotInitialized", + "type": "error" + }, + { + "inputs": [], + "name": "ProcessVkNotSet", + "type": "error" + }, + { + "inputs": [], + "name": "TallyVkNotSet", + "type": "error" + }, { "anonymous": false, "inputs": [ @@ -88,52 +78,31 @@ "name": "OwnershipTransferred", "type": "event" }, - { - "inputs": [], - "name": "batchSizes", - "outputs": [ - { - "internalType": "uint8", - "name": "tallyBatchSize", - "type": "uint8" - }, - { - "internalType": "uint8", - "name": "messageBatchSize", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "batchUstVerifier", - "outputs": [ - { - "internalType": "contract SnarkVerifier", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, { "inputs": [ { "internalType": "contract SignUpGatekeeper", - "name": "_signUpGatekeeper", + "name": "signUpGatekeeper", "type": "address" }, { "internalType": "contract InitialVoiceCreditProxy", - "name": "_initialVoiceCreditProxy", + "name": "initialVoiceCreditProxy", "type": "address" }, { "internalType": "address", - "name": "_coordinator", + "name": "topupCredit", + "type": "address" + }, + { + "internalType": "uint256", + "name": "duration", + "type": "uint256" + }, + { + "internalType": "address", + "name": "coordinator", "type": "address" }, { @@ -149,8 +118,8 @@ "type": "uint256" } ], - "internalType": "struct MACISharedObjs.PubKey", - "name": "_coordinatorPubKey", + "internalType": "struct IPubKey.PubKey", + "name": "coordinatorPubKey", "type": "tuple" } ], @@ -171,17 +140,25 @@ "outputs": [ { "internalType": "uint256", - "name": "maxUsers", + "name": "maxMessages", "type": "uint256" }, { "internalType": "uint256", - "name": "maxMessages", + "name": "maxVoteOptions", "type": "uint256" - }, + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "messageBatchSize", + "outputs": [ { "internalType": "uint256", - "name": "maxVoteOptions", + "name": "", "type": "uint256" } ], @@ -203,10 +180,10 @@ }, { "inputs": [], - "name": "qvtVerifier", + "name": "pollFactory", "outputs": [ { - "internalType": "contract SnarkVerifier", + "internalType": "contract PollFactory", "name": "", "type": "address" } @@ -229,59 +206,278 @@ "type": "uint8" }, { - "internalType": "uint8", - "name": "_messageTreeDepth", - "type": "uint8" - }, - { - "internalType": "uint8", - "name": "_voteOptionTreeDepth", - "type": "uint8" + "components": [ + { + "internalType": "uint8", + "name": "intStateTreeDepth", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "messageTreeSubDepth", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "messageTreeDepth", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "voteOptionTreeDepth", + "type": "uint8" + } + ], + "internalType": "struct Params.TreeDepths", + "name": "_treeDepths", + "type": "tuple" }, { - "internalType": "uint8", - "name": "_tallyBatchSize", - "type": "uint8" + "components": [ + { + "internalType": "uint256", + "name": "maxMessages", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxVoteOptions", + "type": "uint256" + } + ], + "internalType": "struct Params.MaxValues", + "name": "_maxValues", + "type": "tuple" }, { - "internalType": "uint8", + "internalType": "uint256", "name": "_messageBatchSize", - "type": "uint8" + "type": "uint256" }, { - "internalType": "contract SnarkVerifier", - "name": "_batchUstVerifier", - "type": "address" + "components": [ + { + "components": [ + { + "internalType": "uint256", + "name": "x", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "y", + "type": "uint256" + } + ], + "internalType": "struct Pairing.G1Point", + "name": "alpha1", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256[2]", + "name": "x", + "type": "uint256[2]" + }, + { + "internalType": "uint256[2]", + "name": "y", + "type": "uint256[2]" + } + ], + "internalType": "struct Pairing.G2Point", + "name": "beta2", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256[2]", + "name": "x", + "type": "uint256[2]" + }, + { + "internalType": "uint256[2]", + "name": "y", + "type": "uint256[2]" + } + ], + "internalType": "struct Pairing.G2Point", + "name": "gamma2", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256[2]", + "name": "x", + "type": "uint256[2]" + }, + { + "internalType": "uint256[2]", + "name": "y", + "type": "uint256[2]" + } + ], + "internalType": "struct Pairing.G2Point", + "name": "delta2", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "x", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "y", + "type": "uint256" + } + ], + "internalType": "struct Pairing.G1Point[]", + "name": "ic", + "type": "tuple[]" + } + ], + "internalType": "struct SnarkCommon.VerifyingKey", + "name": "_processVk", + "type": "tuple" }, { - "internalType": "contract SnarkVerifier", - "name": "_qvtVerifier", - "type": "address" - }, + "components": [ + { + "components": [ + { + "internalType": "uint256", + "name": "x", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "y", + "type": "uint256" + } + ], + "internalType": "struct Pairing.G1Point", + "name": "alpha1", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256[2]", + "name": "x", + "type": "uint256[2]" + }, + { + "internalType": "uint256[2]", + "name": "y", + "type": "uint256[2]" + } + ], + "internalType": "struct Pairing.G2Point", + "name": "beta2", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256[2]", + "name": "x", + "type": "uint256[2]" + }, + { + "internalType": "uint256[2]", + "name": "y", + "type": "uint256[2]" + } + ], + "internalType": "struct Pairing.G2Point", + "name": "gamma2", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256[2]", + "name": "x", + "type": "uint256[2]" + }, + { + "internalType": "uint256[2]", + "name": "y", + "type": "uint256[2]" + } + ], + "internalType": "struct Pairing.G2Point", + "name": "delta2", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "x", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "y", + "type": "uint256" + } + ], + "internalType": "struct Pairing.G1Point[]", + "name": "ic", + "type": "tuple[]" + } + ], + "internalType": "struct SnarkCommon.VerifyingKey", + "name": "_tallyVk", + "type": "tuple" + } + ], + "name": "setMaciParameters", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ { - "internalType": "uint256", - "name": "_signUpDuration", - "type": "uint256" - }, + "internalType": "address", + "name": "_pollFactory", + "type": "address" + } + ], + "name": "setPollFactory", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ { - "internalType": "uint256", - "name": "_votingDuration", - "type": "uint256" + "internalType": "address", + "name": "_vkRegistry", + "type": "address" } ], - "name": "setMaciParameters", + "name": "setVkRegistry", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], - "name": "signUpDuration", + "name": "stateTreeDepth", "outputs": [ { - "internalType": "uint256", + "internalType": "uint8", "name": "", - "type": "uint256" + "type": "uint8" } ], "stateMutability": "view", @@ -306,7 +502,12 @@ "outputs": [ { "internalType": "uint8", - "name": "stateTreeDepth", + "name": "intStateTreeDepth", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "messageTreeSubDepth", "type": "uint8" }, { @@ -325,12 +526,12 @@ }, { "inputs": [], - "name": "votingDuration", + "name": "vkRegistry", "outputs": [ { - "internalType": "uint256", + "internalType": "contract VkRegistry", "name": "", - "type": "uint256" + "type": "address" } ], "stateMutability": "view", diff --git a/subgraph/abis/OptimisticRecipientRegistry.json b/subgraph/abis/OptimisticRecipientRegistry.json index cf953b474..ab62d0daf 100644 --- a/subgraph/abis/OptimisticRecipientRegistry.json +++ b/subgraph/abis/OptimisticRecipientRegistry.json @@ -1,13 +1,21 @@ [ { "inputs": [ - { "internalType": "uint256", "name": "_baseDeposit", "type": "uint256" }, + { + "internalType": "uint256", + "name": "_baseDeposit", + "type": "uint256" + }, { "internalType": "uint256", "name": "_challengePeriodDuration", "type": "uint256" }, - { "internalType": "address", "name": "_controller", "type": "address" } + { + "internalType": "address", + "name": "_controller", + "type": "address" + } ], "stateMutability": "nonpayable", "type": "constructor" @@ -107,8 +115,16 @@ }, { "inputs": [ - { "internalType": "address", "name": "_recipient", "type": "address" }, - { "internalType": "string", "name": "_metadata", "type": "string" } + { + "internalType": "address", + "name": "_recipient", + "type": "address" + }, + { + "internalType": "string", + "name": "_metadata", + "type": "string" + } ], "name": "addRecipient", "outputs": [], @@ -118,20 +134,36 @@ { "inputs": [], "name": "baseDeposit", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "challengePeriodDuration", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], "stateMutability": "view", "type": "function" }, { "inputs": [ - { "internalType": "bytes32", "name": "_recipientId", "type": "bytes32" }, + { + "internalType": "bytes32", + "name": "_recipientId", + "type": "bytes32" + }, { "internalType": "address payable", "name": "_beneficiary", @@ -139,54 +171,123 @@ } ], "name": "challengeRequest", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "controller", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], "stateMutability": "view", "type": "function" }, { "inputs": [ - { "internalType": "bytes32", "name": "_recipientId", "type": "bytes32" } + { + "internalType": "bytes32", + "name": "_recipientId", + "type": "bytes32" + } ], "name": "executeRequest", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ - { "internalType": "uint256", "name": "_index", "type": "uint256" }, - { "internalType": "uint256", "name": "_startTime", "type": "uint256" }, - { "internalType": "uint256", "name": "_endTime", "type": "uint256" } + { + "internalType": "uint256", + "name": "_index", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_startTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_endTime", + "type": "uint256" + } ], "name": "getRecipientAddress", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getRecipientCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxRecipients", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], "stateMutability": "view", "type": "function" }, { "inputs": [ - { "internalType": "bytes32", "name": "_recipientId", "type": "bytes32" } + { + "internalType": "bytes32", + "name": "_recipientId", + "type": "bytes32" + } ], "name": "removeRecipient", "outputs": [], @@ -202,7 +303,11 @@ }, { "inputs": [ - { "internalType": "uint256", "name": "_baseDeposit", "type": "uint256" } + { + "internalType": "uint256", + "name": "_baseDeposit", + "type": "uint256" + } ], "name": "setBaseDeposit", "outputs": [], @@ -224,16 +329,30 @@ }, { "inputs": [ - { "internalType": "uint256", "name": "_maxRecipients", "type": "uint256" } + { + "internalType": "uint256", + "name": "_maxRecipients", + "type": "uint256" + } ], "name": "setMaxRecipients", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ - { "internalType": "address", "name": "newOwner", "type": "address" } + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } ], "name": "transferOwnership", "outputs": [], diff --git a/subgraph/abis/Poll.json b/subgraph/abis/Poll.json new file mode 100644 index 000000000..50f42ffc5 --- /dev/null +++ b/subgraph/abis/Poll.json @@ -0,0 +1,876 @@ +[ + { + "inputs": [ + { + "internalType": "uint256", + "name": "_duration", + "type": "uint256" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "maxMessages", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxVoteOptions", + "type": "uint256" + } + ], + "internalType": "struct Params.MaxValues", + "name": "_maxValues", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint8", + "name": "intStateTreeDepth", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "messageTreeSubDepth", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "messageTreeDepth", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "voteOptionTreeDepth", + "type": "uint8" + } + ], + "internalType": "struct Params.TreeDepths", + "name": "_treeDepths", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint24", + "name": "messageBatchSize", + "type": "uint24" + }, + { + "internalType": "uint24", + "name": "tallyBatchSize", + "type": "uint24" + }, + { + "internalType": "uint24", + "name": "subsidyBatchSize", + "type": "uint24" + } + ], + "internalType": "struct Params.BatchSizes", + "name": "_batchSizes", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "x", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "y", + "type": "uint256" + } + ], + "internalType": "struct IPubKey.PubKey", + "name": "_coordinatorPubKey", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "contract VkRegistry", + "name": "vkRegistry", + "type": "address" + }, + { + "internalType": "contract IMACI", + "name": "maci", + "type": "address" + }, + { + "internalType": "contract AccQueue", + "name": "messageAq", + "type": "address" + }, + { + "internalType": "contract TopupCredit", + "name": "topupCredit", + "type": "address" + } + ], + "internalType": "struct PollDeploymentParams.ExtContracts", + "name": "_extContracts", + "type": "tuple" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "MaciPubKeyLargerThanSnarkFieldSize", + "type": "error" + }, + { + "inputs": [], + "name": "PollAlreadyInit", + "type": "error" + }, + { + "inputs": [], + "name": "StateAqAlreadyMerged", + "type": "error" + }, + { + "inputs": [], + "name": "StateAqSubtreesNeedMerge", + "type": "error" + }, + { + "inputs": [], + "name": "TooManyMessages", + "type": "error" + }, + { + "inputs": [], + "name": "VotingPeriodNotOver", + "type": "error" + }, + { + "inputs": [], + "name": "VotingPeriodOver", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_stateRoot", + "type": "uint256" + } + ], + "name": "MergeMaciStateAq", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_numSrQueueOps", + "type": "uint256" + } + ], + "name": "MergeMaciStateAqSubRoots", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_messageRoot", + "type": "uint256" + } + ], + "name": "MergeMessageAq", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_numSrQueueOps", + "type": "uint256" + } + ], + "name": "MergeMessageAqSubRoots", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "msgType", + "type": "uint256" + }, + { + "internalType": "uint256[10]", + "name": "data", + "type": "uint256[10]" + } + ], + "indexed": false, + "internalType": "struct IMessage.Message", + "name": "_message", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "x", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "y", + "type": "uint256" + } + ], + "indexed": false, + "internalType": "struct IPubKey.PubKey", + "name": "_encPubKey", + "type": "tuple" + } + ], + "name": "PublishMessage", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "msgType", + "type": "uint256" + }, + { + "internalType": "uint256[10]", + "name": "data", + "type": "uint256[10]" + } + ], + "indexed": false, + "internalType": "struct IMessage.Message", + "name": "_message", + "type": "tuple" + } + ], + "name": "TopupMessage", + "type": "event" + }, + { + "inputs": [], + "name": "batchSizes", + "outputs": [ + { + "internalType": "uint24", + "name": "messageBatchSize", + "type": "uint24" + }, + { + "internalType": "uint24", + "name": "tallyBatchSize", + "type": "uint24" + }, + { + "internalType": "uint24", + "name": "subsidyBatchSize", + "type": "uint24" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "coordinatorPubKey", + "outputs": [ + { + "internalType": "uint256", + "name": "x", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "y", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "coordinatorPubKeyHash", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "currentSbCommitment", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "extContracts", + "outputs": [ + { + "internalType": "contract VkRegistry", + "name": "vkRegistry", + "type": "address" + }, + { + "internalType": "contract IMACI", + "name": "maci", + "type": "address" + }, + { + "internalType": "contract AccQueue", + "name": "messageAq", + "type": "address" + }, + { + "internalType": "contract TopupCredit", + "name": "topupCredit", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getDeployTimeAndDuration", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256[2]", + "name": "array", + "type": "uint256[2]" + } + ], + "name": "hash2", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256[3]", + "name": "array", + "type": "uint256[3]" + } + ], + "name": "hash3", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256[4]", + "name": "array", + "type": "uint256[4]" + } + ], + "name": "hash4", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256[5]", + "name": "array", + "type": "uint256[5]" + } + ], + "name": "hash5", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_left", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_right", + "type": "uint256" + } + ], + "name": "hashLeftRight", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "msgType", + "type": "uint256" + }, + { + "internalType": "uint256[10]", + "name": "data", + "type": "uint256[10]" + } + ], + "internalType": "struct IMessage.Message", + "name": "_message", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "x", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "y", + "type": "uint256" + } + ], + "internalType": "struct IPubKey.PubKey", + "name": "_encPubKey", + "type": "tuple" + } + ], + "name": "hashMessageAndEncPubKey", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "init", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "maxValues", + "outputs": [ + { + "internalType": "uint256", + "name": "maxMessages", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxVoteOptions", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_pollId", + "type": "uint256" + } + ], + "name": "mergeMaciStateAq", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_numSrQueueOps", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_pollId", + "type": "uint256" + } + ], + "name": "mergeMaciStateAqSubRoots", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "mergeMessageAq", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_numSrQueueOps", + "type": "uint256" + } + ], + "name": "mergeMessageAqSubRoots", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "mergedStateRoot", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "numSignUpsAndMessages", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256[2]", + "name": "dataToPad", + "type": "uint256[2]" + }, + { + "internalType": "uint256", + "name": "msgType", + "type": "uint256" + } + ], + "name": "padAndHashMessage", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "msgType", + "type": "uint256" + }, + { + "internalType": "uint256[10]", + "name": "data", + "type": "uint256[10]" + } + ], + "internalType": "struct IMessage.Message", + "name": "", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "x", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "y", + "type": "uint256" + } + ], + "internalType": "struct IPubKey.PubKey", + "name": "", + "type": "tuple" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "msgType", + "type": "uint256" + }, + { + "internalType": "uint256[10]", + "name": "data", + "type": "uint256[10]" + } + ], + "internalType": "struct IMessage.Message", + "name": "_message", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "x", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "y", + "type": "uint256" + } + ], + "internalType": "struct IPubKey.PubKey", + "name": "_encPubKey", + "type": "tuple" + } + ], + "name": "publishMessage", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256[]", + "name": "array", + "type": "uint256[]" + } + ], + "name": "sha256Hash", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "stateAqMerged", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "stateIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "topup", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "treeDepths", + "outputs": [ + { + "internalType": "uint8", + "name": "intStateTreeDepth", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "messageTreeSubDepth", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "messageTreeDepth", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "voteOptionTreeDepth", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + } +] diff --git a/subgraph/config/arbitrum-goerli.json b/subgraph/config/arbitrum-goerli.json index 2126aa6b6..b3053c192 100644 --- a/subgraph/config/arbitrum-goerli.json +++ b/subgraph/config/arbitrum-goerli.json @@ -1,6 +1,6 @@ { "network": "arbitrum-goerli", "address": "0x0a12CE1B7a95f2067AB930f0b2316FF21Cd5A430", - "factoryStartBlock": 325577, + "clrFundStartBlock": 325577, "recipientRegistryStartBlock": 325577 } diff --git a/subgraph/config/arbitrum.json b/subgraph/config/arbitrum.json index 8f72d1d1f..66548bb55 100644 --- a/subgraph/config/arbitrum.json +++ b/subgraph/config/arbitrum.json @@ -1,6 +1,6 @@ { "network": "arbitrum-one", "address": "0x2e89494a8fE02891511a43f7877b726787E0C160", - "factoryStartBlock": 3461582, + "clrFundStartBlock": 3461582, "recipientRegistryStartBlock": 3461582 } diff --git a/subgraph/config/xdai.json b/subgraph/config/xdai.json index b026df2a1..ab3c34558 100644 --- a/subgraph/config/xdai.json +++ b/subgraph/config/xdai.json @@ -1,6 +1,6 @@ { "network": "xdai", "address": "0x4ede8f30d9c2dc96a9d6787e9c4a478424fb960a", - "factoryStartBlock": 15217676, + "clrFundStartBlock": 15217676, "recipientRegistryStartBlock": 15217676 } diff --git a/subgraph/generated/FundingRoundFactory/BrightIdUserRegistry.ts b/subgraph/generated/ClrFund/BrightIdUserRegistry.ts similarity index 100% rename from subgraph/generated/FundingRoundFactory/BrightIdUserRegistry.ts rename to subgraph/generated/ClrFund/BrightIdUserRegistry.ts diff --git a/subgraph/generated/FundingRoundFactory/FundingRoundFactory.ts b/subgraph/generated/ClrFund/ClrFund.ts similarity index 85% rename from subgraph/generated/FundingRoundFactory/FundingRoundFactory.ts rename to subgraph/generated/ClrFund/ClrFund.ts index f2c5e52e3..e89208f27 100644 --- a/subgraph/generated/FundingRoundFactory/FundingRoundFactory.ts +++ b/subgraph/generated/ClrFund/ClrFund.ts @@ -28,6 +28,20 @@ export class CoordinatorChanged__Params { } } +export class FundingRoundTemplateChanged extends ethereum.Event { + get params(): FundingRoundTemplateChanged__Params { + return new FundingRoundTemplateChanged__Params(this); + } +} + +export class FundingRoundTemplateChanged__Params { + _event: FundingRoundTemplateChanged; + + constructor(event: FundingRoundTemplateChanged) { + this._event = event; + } +} + export class FundingSourceAdded extends ethereum.Event { get params(): FundingSourceAdded__Params { return new FundingSourceAdded__Params(this); @@ -64,6 +78,20 @@ export class FundingSourceRemoved__Params { } } +export class Initialized extends ethereum.Event { + get params(): Initialized__Params { + return new Initialized__Params(this); + } +} + +export class Initialized__Params { + _event: Initialized; + + constructor(event: Initialized) { + this._event = event; + } +} + export class OwnershipTransferred extends ethereum.Event { get params(): OwnershipTransferred__Params { return new OwnershipTransferred__Params(this); @@ -86,6 +114,20 @@ export class OwnershipTransferred__Params { } } +export class RecipientRegistrySet extends ethereum.Event { + get params(): RecipientRegistrySet__Params { + return new RecipientRegistrySet__Params(this); + } +} + +export class RecipientRegistrySet__Params { + _event: RecipientRegistrySet; + + constructor(event: RecipientRegistrySet) { + this._event = event; + } +} + export class RoundFinalized extends ethereum.Event { get params(): RoundFinalized__Params { return new RoundFinalized__Params(this); @@ -140,7 +182,21 @@ export class TokenChanged__Params { } } -export class FundingRoundFactory__coordinatorPubKeyResult { +export class UserRegistrySet extends ethereum.Event { + get params(): UserRegistrySet__Params { + return new UserRegistrySet__Params(this); + } +} + +export class UserRegistrySet__Params { + _event: UserRegistrySet; + + constructor(event: UserRegistrySet) { + this._event = event; + } +} + +export class ClrFund__coordinatorPubKeyResult { value0: BigInt; value1: BigInt; @@ -165,9 +221,9 @@ export class FundingRoundFactory__coordinatorPubKeyResult { } } -export class FundingRoundFactory extends ethereum.SmartContract { - static bind(address: Address): FundingRoundFactory { - return new FundingRoundFactory("FundingRoundFactory", address); +export class ClrFund extends ethereum.SmartContract { + static bind(address: Address): ClrFund { + return new ClrFund("ClrFund", address); } coordinator(): Address { @@ -185,21 +241,21 @@ export class FundingRoundFactory extends ethereum.SmartContract { return ethereum.CallResult.fromValue(value[0].toAddress()); } - coordinatorPubKey(): FundingRoundFactory__coordinatorPubKeyResult { + coordinatorPubKey(): ClrFund__coordinatorPubKeyResult { let result = super.call( "coordinatorPubKey", "coordinatorPubKey():(uint256,uint256)", [] ); - return new FundingRoundFactory__coordinatorPubKeyResult( + return new ClrFund__coordinatorPubKeyResult( result[0].toBigInt(), result[1].toBigInt() ); } try_coordinatorPubKey(): ethereum.CallResult< - FundingRoundFactory__coordinatorPubKeyResult + ClrFund__coordinatorPubKeyResult > { let result = super.tryCall( "coordinatorPubKey", @@ -211,7 +267,7 @@ export class FundingRoundFactory extends ethereum.SmartContract { } let value = result.value; return ethereum.CallResult.fromValue( - new FundingRoundFactory__coordinatorPubKeyResult( + new ClrFund__coordinatorPubKeyResult( value[0].toBigInt(), value[1].toBigInt() ) @@ -332,49 +388,34 @@ export class FundingRoundFactory extends ethereum.SmartContract { return ethereum.CallResult.fromValue(value[0].toAddress()); } - userRegistry(): Address { - let result = super.call("userRegistry", "userRegistry():(address)", []); + roundFactory(): Address { + let result = super.call("roundFactory", "roundFactory():(address)", []); return result[0].toAddress(); } - try_userRegistry(): ethereum.CallResult
{ - let result = super.tryCall("userRegistry", "userRegistry():(address)", []); + try_roundFactory(): ethereum.CallResult
{ + let result = super.tryCall("roundFactory", "roundFactory():(address)", []); if (result.reverted) { return new ethereum.CallResult(); } let value = result.value; return ethereum.CallResult.fromValue(value[0].toAddress()); } -} - -export class ConstructorCall extends ethereum.Call { - get inputs(): ConstructorCall__Inputs { - return new ConstructorCall__Inputs(this); - } - get outputs(): ConstructorCall__Outputs { - return new ConstructorCall__Outputs(this); - } -} - -export class ConstructorCall__Inputs { - _call: ConstructorCall; - - constructor(call: ConstructorCall) { - this._call = call; - } + userRegistry(): Address { + let result = super.call("userRegistry", "userRegistry():(address)", []); - get _maciFactory(): Address { - return this._call.inputValues[0].value.toAddress(); + return result[0].toAddress(); } -} - -export class ConstructorCall__Outputs { - _call: ConstructorCall; - constructor(call: ConstructorCall) { - this._call = call; + try_userRegistry(): ethereum.CallResult
{ + let result = super.tryCall("userRegistry", "userRegistry():(address)", []); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toAddress()); } } @@ -476,6 +517,10 @@ export class DeployNewRoundCall__Inputs { constructor(call: DeployNewRoundCall) { this._call = call; } + + get duration(): BigInt { + return this._call.inputValues[0].value.toBigInt(); + } } export class DeployNewRoundCall__Outputs { @@ -486,6 +531,40 @@ export class DeployNewRoundCall__Outputs { } } +export class InitCall extends ethereum.Call { + get inputs(): InitCall__Inputs { + return new InitCall__Inputs(this); + } + + get outputs(): InitCall__Outputs { + return new InitCall__Outputs(this); + } +} + +export class InitCall__Inputs { + _call: InitCall; + + constructor(call: InitCall) { + this._call = call; + } + + get _maciFactory(): Address { + return this._call.inputValues[0].value.toAddress(); + } + + get _roundFactory(): Address { + return this._call.inputValues[1].value.toAddress(); + } +} + +export class InitCall__Outputs { + _call: InitCall; + + constructor(call: InitCall) { + this._call = call; + } +} + export class RemoveFundingSourceCall extends ethereum.Call { get inputs(): RemoveFundingSourceCall__Inputs { return new RemoveFundingSourceCall__Inputs(this); @@ -588,68 +667,6 @@ export class SetCoordinatorCall_coordinatorPubKeyStruct extends ethereum.Tuple { } } -export class SetMaciParametersCall extends ethereum.Call { - get inputs(): SetMaciParametersCall__Inputs { - return new SetMaciParametersCall__Inputs(this); - } - - get outputs(): SetMaciParametersCall__Outputs { - return new SetMaciParametersCall__Outputs(this); - } -} - -export class SetMaciParametersCall__Inputs { - _call: SetMaciParametersCall; - - constructor(call: SetMaciParametersCall) { - this._call = call; - } - - get _stateTreeDepth(): i32 { - return this._call.inputValues[0].value.toI32(); - } - - get _messageTreeDepth(): i32 { - return this._call.inputValues[1].value.toI32(); - } - - get _voteOptionTreeDepth(): i32 { - return this._call.inputValues[2].value.toI32(); - } - - get _tallyBatchSize(): i32 { - return this._call.inputValues[3].value.toI32(); - } - - get _messageBatchSize(): i32 { - return this._call.inputValues[4].value.toI32(); - } - - get _batchUstVerifier(): Address { - return this._call.inputValues[5].value.toAddress(); - } - - get _qvtVerifier(): Address { - return this._call.inputValues[6].value.toAddress(); - } - - get _signUpDuration(): BigInt { - return this._call.inputValues[7].value.toBigInt(); - } - - get _votingDuration(): BigInt { - return this._call.inputValues[8].value.toBigInt(); - } -} - -export class SetMaciParametersCall__Outputs { - _call: SetMaciParametersCall; - - constructor(call: SetMaciParametersCall) { - this._call = call; - } -} - export class SetRecipientRegistryCall extends ethereum.Call { get inputs(): SetRecipientRegistryCall__Inputs { return new SetRecipientRegistryCall__Inputs(this); @@ -764,6 +781,14 @@ export class TransferMatchingFundsCall__Inputs { get _totalSpentSalt(): BigInt { return this._call.inputValues[1].value.toBigInt(); } + + get _newResultCommitment(): BigInt { + return this._call.inputValues[2].value.toBigInt(); + } + + get _perVOSpentVoiceCreditsHash(): BigInt { + return this._call.inputValues[3].value.toBigInt(); + } } export class TransferMatchingFundsCall__Outputs { diff --git a/subgraph/generated/FundingRoundFactory/FundingRound.ts b/subgraph/generated/ClrFund/FundingRound.ts similarity index 97% rename from subgraph/generated/FundingRoundFactory/FundingRound.ts rename to subgraph/generated/ClrFund/FundingRound.ts index 6c3bcd6cb..bde4327d0 100644 --- a/subgraph/generated/FundingRoundFactory/FundingRound.ts +++ b/subgraph/generated/ClrFund/FundingRound.ts @@ -371,6 +371,21 @@ export class FundingRound extends ethereum.SmartContract { return ethereum.CallResult.fromValue(value[0].toString()); } + poll(): Address { + let result = super.call("poll", "poll():(address)", []); + + return result[0].toAddress(); + } + + try_poll(): ethereum.CallResult
{ + let result = super.tryCall("poll", "poll():(address)", []); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toAddress()); + } + totalSpent(): BigInt { let result = super.call("totalSpent", "totalSpent():(uint256)", []); diff --git a/subgraph/generated/ClrFund/MACI.ts b/subgraph/generated/ClrFund/MACI.ts new file mode 100644 index 000000000..18150f402 --- /dev/null +++ b/subgraph/generated/ClrFund/MACI.ts @@ -0,0 +1,1087 @@ +// THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. + +import { + ethereum, + JSONValue, + TypedMap, + Entity, + Bytes, + Address, + BigInt +} from "@graphprotocol/graph-ts"; + +export class DeployPoll extends ethereum.Event { + get params(): DeployPoll__Params { + return new DeployPoll__Params(this); + } +} + +export class DeployPoll__Params { + _event: DeployPoll; + + constructor(event: DeployPoll) { + this._event = event; + } + + get _pollId(): BigInt { + return this._event.parameters[0].value.toBigInt(); + } + + get _pollAddr(): Address { + return this._event.parameters[1].value.toAddress(); + } + + get _pubKey(): DeployPoll_pubKeyStruct { + return changetype( + this._event.parameters[2].value.toTuple() + ); + } +} + +export class DeployPoll_pubKeyStruct extends ethereum.Tuple { + get x(): BigInt { + return this[0].toBigInt(); + } + + get y(): BigInt { + return this[1].toBigInt(); + } +} + +export class Init extends ethereum.Event { + get params(): Init__Params { + return new Init__Params(this); + } +} + +export class Init__Params { + _event: Init; + + constructor(event: Init) { + this._event = event; + } + + get _vkRegistry(): Address { + return this._event.parameters[0].value.toAddress(); + } + + get _topupCredit(): Address { + return this._event.parameters[1].value.toAddress(); + } +} + +export class MergeStateAq extends ethereum.Event { + get params(): MergeStateAq__Params { + return new MergeStateAq__Params(this); + } +} + +export class MergeStateAq__Params { + _event: MergeStateAq; + + constructor(event: MergeStateAq) { + this._event = event; + } + + get _pollId(): BigInt { + return this._event.parameters[0].value.toBigInt(); + } +} + +export class MergeStateAqSubRoots extends ethereum.Event { + get params(): MergeStateAqSubRoots__Params { + return new MergeStateAqSubRoots__Params(this); + } +} + +export class MergeStateAqSubRoots__Params { + _event: MergeStateAqSubRoots; + + constructor(event: MergeStateAqSubRoots) { + this._event = event; + } + + get _pollId(): BigInt { + return this._event.parameters[0].value.toBigInt(); + } + + get _numSrQueueOps(): BigInt { + return this._event.parameters[1].value.toBigInt(); + } +} + +export class OwnershipTransferred extends ethereum.Event { + get params(): OwnershipTransferred__Params { + return new OwnershipTransferred__Params(this); + } +} + +export class OwnershipTransferred__Params { + _event: OwnershipTransferred; + + constructor(event: OwnershipTransferred) { + this._event = event; + } + + get previousOwner(): Address { + return this._event.parameters[0].value.toAddress(); + } + + get newOwner(): Address { + return this._event.parameters[1].value.toAddress(); + } +} + +export class SignUp extends ethereum.Event { + get params(): SignUp__Params { + return new SignUp__Params(this); + } +} + +export class SignUp__Params { + _event: SignUp; + + constructor(event: SignUp) { + this._event = event; + } + + get _stateIndex(): BigInt { + return this._event.parameters[0].value.toBigInt(); + } + + get _userPubKey(): SignUp_userPubKeyStruct { + return changetype( + this._event.parameters[1].value.toTuple() + ); + } + + get _voiceCreditBalance(): BigInt { + return this._event.parameters[2].value.toBigInt(); + } + + get _timestamp(): BigInt { + return this._event.parameters[3].value.toBigInt(); + } +} + +export class SignUp_userPubKeyStruct extends ethereum.Tuple { + get x(): BigInt { + return this[0].toBigInt(); + } + + get y(): BigInt { + return this[1].toBigInt(); + } +} + +export class MACI__deployPollInput_maxValuesStruct extends ethereum.Tuple { + get maxMessages(): BigInt { + return this[0].toBigInt(); + } + + get maxVoteOptions(): BigInt { + return this[1].toBigInt(); + } +} + +export class MACI__deployPollInput_treeDepthsStruct extends ethereum.Tuple { + get intStateTreeDepth(): i32 { + return this[0].toI32(); + } + + get messageTreeSubDepth(): i32 { + return this[1].toI32(); + } + + get messageTreeDepth(): i32 { + return this[2].toI32(); + } + + get voteOptionTreeDepth(): i32 { + return this[3].toI32(); + } +} + +export class MACI__deployPollInput_coordinatorPubKeyStruct extends ethereum.Tuple { + get x(): BigInt { + return this[0].toBigInt(); + } + + get y(): BigInt { + return this[1].toBigInt(); + } +} + +export class MACI__hashStateLeafInput_stateLeafStruct extends ethereum.Tuple { + get pubKey(): MACI__hashStateLeafInput_stateLeafPubKeyStruct { + return changetype( + this[0].toTuple() + ); + } + + get voiceCreditBalance(): BigInt { + return this[1].toBigInt(); + } + + get timestamp(): BigInt { + return this[2].toBigInt(); + } +} + +export class MACI__hashStateLeafInput_stateLeafPubKeyStruct extends ethereum.Tuple { + get x(): BigInt { + return this[0].toBigInt(); + } + + get y(): BigInt { + return this[1].toBigInt(); + } +} + +export class MACI extends ethereum.SmartContract { + static bind(address: Address): MACI { + return new MACI("MACI", address); + } + + deployPoll( + _duration: BigInt, + _maxValues: MACI__deployPollInput_maxValuesStruct, + _treeDepths: MACI__deployPollInput_treeDepthsStruct, + _coordinatorPubKey: MACI__deployPollInput_coordinatorPubKeyStruct + ): Address { + let result = super.call( + "deployPoll", + "deployPoll(uint256,(uint256,uint256),(uint8,uint8,uint8,uint8),(uint256,uint256)):(address)", + [ + ethereum.Value.fromUnsignedBigInt(_duration), + ethereum.Value.fromTuple(_maxValues), + ethereum.Value.fromTuple(_treeDepths), + ethereum.Value.fromTuple(_coordinatorPubKey) + ] + ); + + return result[0].toAddress(); + } + + try_deployPoll( + _duration: BigInt, + _maxValues: MACI__deployPollInput_maxValuesStruct, + _treeDepths: MACI__deployPollInput_treeDepthsStruct, + _coordinatorPubKey: MACI__deployPollInput_coordinatorPubKeyStruct + ): ethereum.CallResult
{ + let result = super.tryCall( + "deployPoll", + "deployPoll(uint256,(uint256,uint256),(uint8,uint8,uint8,uint8),(uint256,uint256)):(address)", + [ + ethereum.Value.fromUnsignedBigInt(_duration), + ethereum.Value.fromTuple(_maxValues), + ethereum.Value.fromTuple(_treeDepths), + ethereum.Value.fromTuple(_coordinatorPubKey) + ] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toAddress()); + } + + getPoll(_pollId: BigInt): Address { + let result = super.call("getPoll", "getPoll(uint256):(address)", [ + ethereum.Value.fromUnsignedBigInt(_pollId) + ]); + + return result[0].toAddress(); + } + + try_getPoll(_pollId: BigInt): ethereum.CallResult
{ + let result = super.tryCall("getPoll", "getPoll(uint256):(address)", [ + ethereum.Value.fromUnsignedBigInt(_pollId) + ]); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toAddress()); + } + + getStateAqRoot(): BigInt { + let result = super.call("getStateAqRoot", "getStateAqRoot():(uint256)", []); + + return result[0].toBigInt(); + } + + try_getStateAqRoot(): ethereum.CallResult { + let result = super.tryCall( + "getStateAqRoot", + "getStateAqRoot():(uint256)", + [] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBigInt()); + } + + hash2(array: Array): BigInt { + let result = super.call("hash2", "hash2(uint256[2]):(uint256)", [ + ethereum.Value.fromUnsignedBigIntArray(array) + ]); + + return result[0].toBigInt(); + } + + try_hash2(array: Array): ethereum.CallResult { + let result = super.tryCall("hash2", "hash2(uint256[2]):(uint256)", [ + ethereum.Value.fromUnsignedBigIntArray(array) + ]); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBigInt()); + } + + hash3(array: Array): BigInt { + let result = super.call("hash3", "hash3(uint256[3]):(uint256)", [ + ethereum.Value.fromUnsignedBigIntArray(array) + ]); + + return result[0].toBigInt(); + } + + try_hash3(array: Array): ethereum.CallResult { + let result = super.tryCall("hash3", "hash3(uint256[3]):(uint256)", [ + ethereum.Value.fromUnsignedBigIntArray(array) + ]); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBigInt()); + } + + hash4(array: Array): BigInt { + let result = super.call("hash4", "hash4(uint256[4]):(uint256)", [ + ethereum.Value.fromUnsignedBigIntArray(array) + ]); + + return result[0].toBigInt(); + } + + try_hash4(array: Array): ethereum.CallResult { + let result = super.tryCall("hash4", "hash4(uint256[4]):(uint256)", [ + ethereum.Value.fromUnsignedBigIntArray(array) + ]); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBigInt()); + } + + hash5(array: Array): BigInt { + let result = super.call("hash5", "hash5(uint256[5]):(uint256)", [ + ethereum.Value.fromUnsignedBigIntArray(array) + ]); + + return result[0].toBigInt(); + } + + try_hash5(array: Array): ethereum.CallResult { + let result = super.tryCall("hash5", "hash5(uint256[5]):(uint256)", [ + ethereum.Value.fromUnsignedBigIntArray(array) + ]); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBigInt()); + } + + hashLeftRight(_left: BigInt, _right: BigInt): BigInt { + let result = super.call( + "hashLeftRight", + "hashLeftRight(uint256,uint256):(uint256)", + [ + ethereum.Value.fromUnsignedBigInt(_left), + ethereum.Value.fromUnsignedBigInt(_right) + ] + ); + + return result[0].toBigInt(); + } + + try_hashLeftRight( + _left: BigInt, + _right: BigInt + ): ethereum.CallResult { + let result = super.tryCall( + "hashLeftRight", + "hashLeftRight(uint256,uint256):(uint256)", + [ + ethereum.Value.fromUnsignedBigInt(_left), + ethereum.Value.fromUnsignedBigInt(_right) + ] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBigInt()); + } + + hashStateLeaf(_stateLeaf: MACI__hashStateLeafInput_stateLeafStruct): BigInt { + let result = super.call( + "hashStateLeaf", + "hashStateLeaf(((uint256,uint256),uint256,uint256)):(uint256)", + [ethereum.Value.fromTuple(_stateLeaf)] + ); + + return result[0].toBigInt(); + } + + try_hashStateLeaf( + _stateLeaf: MACI__hashStateLeafInput_stateLeafStruct + ): ethereum.CallResult { + let result = super.tryCall( + "hashStateLeaf", + "hashStateLeaf(((uint256,uint256),uint256,uint256)):(uint256)", + [ethereum.Value.fromTuple(_stateLeaf)] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBigInt()); + } + + initialVoiceCreditProxy(): Address { + let result = super.call( + "initialVoiceCreditProxy", + "initialVoiceCreditProxy():(address)", + [] + ); + + return result[0].toAddress(); + } + + try_initialVoiceCreditProxy(): ethereum.CallResult
{ + let result = super.tryCall( + "initialVoiceCreditProxy", + "initialVoiceCreditProxy():(address)", + [] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toAddress()); + } + + isInitialised(): boolean { + let result = super.call("isInitialised", "isInitialised():(bool)", []); + + return result[0].toBoolean(); + } + + try_isInitialised(): ethereum.CallResult { + let result = super.tryCall("isInitialised", "isInitialised():(bool)", []); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBoolean()); + } + + mergeStateAq(_pollId: BigInt): BigInt { + let result = super.call("mergeStateAq", "mergeStateAq(uint256):(uint256)", [ + ethereum.Value.fromUnsignedBigInt(_pollId) + ]); + + return result[0].toBigInt(); + } + + try_mergeStateAq(_pollId: BigInt): ethereum.CallResult { + let result = super.tryCall( + "mergeStateAq", + "mergeStateAq(uint256):(uint256)", + [ethereum.Value.fromUnsignedBigInt(_pollId)] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBigInt()); + } + + nextPollId(): BigInt { + let result = super.call("nextPollId", "nextPollId():(uint256)", []); + + return result[0].toBigInt(); + } + + try_nextPollId(): ethereum.CallResult { + let result = super.tryCall("nextPollId", "nextPollId():(uint256)", []); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBigInt()); + } + + numSignUps(): BigInt { + let result = super.call("numSignUps", "numSignUps():(uint256)", []); + + return result[0].toBigInt(); + } + + try_numSignUps(): ethereum.CallResult { + let result = super.tryCall("numSignUps", "numSignUps():(uint256)", []); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBigInt()); + } + + numStateLeaves(param0: BigInt): BigInt { + let result = super.call( + "numStateLeaves", + "numStateLeaves(uint256):(uint256)", + [ethereum.Value.fromUnsignedBigInt(param0)] + ); + + return result[0].toBigInt(); + } + + try_numStateLeaves(param0: BigInt): ethereum.CallResult { + let result = super.tryCall( + "numStateLeaves", + "numStateLeaves(uint256):(uint256)", + [ethereum.Value.fromUnsignedBigInt(param0)] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBigInt()); + } + + owner(): Address { + let result = super.call("owner", "owner():(address)", []); + + return result[0].toAddress(); + } + + try_owner(): ethereum.CallResult
{ + let result = super.tryCall("owner", "owner():(address)", []); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toAddress()); + } + + pollFactory(): Address { + let result = super.call("pollFactory", "pollFactory():(address)", []); + + return result[0].toAddress(); + } + + try_pollFactory(): ethereum.CallResult
{ + let result = super.tryCall("pollFactory", "pollFactory():(address)", []); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toAddress()); + } + + polls(param0: BigInt): Address { + let result = super.call("polls", "polls(uint256):(address)", [ + ethereum.Value.fromUnsignedBigInt(param0) + ]); + + return result[0].toAddress(); + } + + try_polls(param0: BigInt): ethereum.CallResult
{ + let result = super.tryCall("polls", "polls(uint256):(address)", [ + ethereum.Value.fromUnsignedBigInt(param0) + ]); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toAddress()); + } + + sha256Hash(array: Array): BigInt { + let result = super.call("sha256Hash", "sha256Hash(uint256[]):(uint256)", [ + ethereum.Value.fromUnsignedBigIntArray(array) + ]); + + return result[0].toBigInt(); + } + + try_sha256Hash(array: Array): ethereum.CallResult { + let result = super.tryCall( + "sha256Hash", + "sha256Hash(uint256[]):(uint256)", + [ethereum.Value.fromUnsignedBigIntArray(array)] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBigInt()); + } + + signUpGatekeeper(): Address { + let result = super.call( + "signUpGatekeeper", + "signUpGatekeeper():(address)", + [] + ); + + return result[0].toAddress(); + } + + try_signUpGatekeeper(): ethereum.CallResult
{ + let result = super.tryCall( + "signUpGatekeeper", + "signUpGatekeeper():(address)", + [] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toAddress()); + } + + signUpTimestamp(): BigInt { + let result = super.call( + "signUpTimestamp", + "signUpTimestamp():(uint256)", + [] + ); + + return result[0].toBigInt(); + } + + try_signUpTimestamp(): ethereum.CallResult { + let result = super.tryCall( + "signUpTimestamp", + "signUpTimestamp():(uint256)", + [] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBigInt()); + } + + stateAq(): Address { + let result = super.call("stateAq", "stateAq():(address)", []); + + return result[0].toAddress(); + } + + try_stateAq(): ethereum.CallResult
{ + let result = super.tryCall("stateAq", "stateAq():(address)", []); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toAddress()); + } + + stateTreeDepth(): i32 { + let result = super.call("stateTreeDepth", "stateTreeDepth():(uint8)", []); + + return result[0].toI32(); + } + + try_stateTreeDepth(): ethereum.CallResult { + let result = super.tryCall( + "stateTreeDepth", + "stateTreeDepth():(uint8)", + [] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toI32()); + } + + topupCredit(): Address { + let result = super.call("topupCredit", "topupCredit():(address)", []); + + return result[0].toAddress(); + } + + try_topupCredit(): ethereum.CallResult
{ + let result = super.tryCall("topupCredit", "topupCredit():(address)", []); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toAddress()); + } + + vkRegistry(): Address { + let result = super.call("vkRegistry", "vkRegistry():(address)", []); + + return result[0].toAddress(); + } + + try_vkRegistry(): ethereum.CallResult
{ + let result = super.tryCall("vkRegistry", "vkRegistry():(address)", []); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toAddress()); + } +} + +export class ConstructorCall extends ethereum.Call { + get inputs(): ConstructorCall__Inputs { + return new ConstructorCall__Inputs(this); + } + + get outputs(): ConstructorCall__Outputs { + return new ConstructorCall__Outputs(this); + } +} + +export class ConstructorCall__Inputs { + _call: ConstructorCall; + + constructor(call: ConstructorCall) { + this._call = call; + } + + get _pollFactory(): Address { + return this._call.inputValues[0].value.toAddress(); + } + + get _signUpGatekeeper(): Address { + return this._call.inputValues[1].value.toAddress(); + } + + get _initialVoiceCreditProxy(): Address { + return this._call.inputValues[2].value.toAddress(); + } +} + +export class ConstructorCall__Outputs { + _call: ConstructorCall; + + constructor(call: ConstructorCall) { + this._call = call; + } +} + +export class DeployPollCall extends ethereum.Call { + get inputs(): DeployPollCall__Inputs { + return new DeployPollCall__Inputs(this); + } + + get outputs(): DeployPollCall__Outputs { + return new DeployPollCall__Outputs(this); + } +} + +export class DeployPollCall__Inputs { + _call: DeployPollCall; + + constructor(call: DeployPollCall) { + this._call = call; + } + + get _duration(): BigInt { + return this._call.inputValues[0].value.toBigInt(); + } + + get _maxValues(): DeployPollCall_maxValuesStruct { + return changetype( + this._call.inputValues[1].value.toTuple() + ); + } + + get _treeDepths(): DeployPollCall_treeDepthsStruct { + return changetype( + this._call.inputValues[2].value.toTuple() + ); + } + + get _coordinatorPubKey(): DeployPollCall_coordinatorPubKeyStruct { + return changetype( + this._call.inputValues[3].value.toTuple() + ); + } +} + +export class DeployPollCall__Outputs { + _call: DeployPollCall; + + constructor(call: DeployPollCall) { + this._call = call; + } + + get value0(): Address { + return this._call.outputValues[0].value.toAddress(); + } +} + +export class DeployPollCall_maxValuesStruct extends ethereum.Tuple { + get maxMessages(): BigInt { + return this[0].toBigInt(); + } + + get maxVoteOptions(): BigInt { + return this[1].toBigInt(); + } +} + +export class DeployPollCall_treeDepthsStruct extends ethereum.Tuple { + get intStateTreeDepth(): i32 { + return this[0].toI32(); + } + + get messageTreeSubDepth(): i32 { + return this[1].toI32(); + } + + get messageTreeDepth(): i32 { + return this[2].toI32(); + } + + get voteOptionTreeDepth(): i32 { + return this[3].toI32(); + } +} + +export class DeployPollCall_coordinatorPubKeyStruct extends ethereum.Tuple { + get x(): BigInt { + return this[0].toBigInt(); + } + + get y(): BigInt { + return this[1].toBigInt(); + } +} + +export class InitCall extends ethereum.Call { + get inputs(): InitCall__Inputs { + return new InitCall__Inputs(this); + } + + get outputs(): InitCall__Outputs { + return new InitCall__Outputs(this); + } +} + +export class InitCall__Inputs { + _call: InitCall; + + constructor(call: InitCall) { + this._call = call; + } + + get _vkRegistry(): Address { + return this._call.inputValues[0].value.toAddress(); + } + + get _topupCredit(): Address { + return this._call.inputValues[1].value.toAddress(); + } +} + +export class InitCall__Outputs { + _call: InitCall; + + constructor(call: InitCall) { + this._call = call; + } +} + +export class MergeStateAqCall extends ethereum.Call { + get inputs(): MergeStateAqCall__Inputs { + return new MergeStateAqCall__Inputs(this); + } + + get outputs(): MergeStateAqCall__Outputs { + return new MergeStateAqCall__Outputs(this); + } +} + +export class MergeStateAqCall__Inputs { + _call: MergeStateAqCall; + + constructor(call: MergeStateAqCall) { + this._call = call; + } + + get _pollId(): BigInt { + return this._call.inputValues[0].value.toBigInt(); + } +} + +export class MergeStateAqCall__Outputs { + _call: MergeStateAqCall; + + constructor(call: MergeStateAqCall) { + this._call = call; + } + + get value0(): BigInt { + return this._call.outputValues[0].value.toBigInt(); + } +} + +export class MergeStateAqSubRootsCall extends ethereum.Call { + get inputs(): MergeStateAqSubRootsCall__Inputs { + return new MergeStateAqSubRootsCall__Inputs(this); + } + + get outputs(): MergeStateAqSubRootsCall__Outputs { + return new MergeStateAqSubRootsCall__Outputs(this); + } +} + +export class MergeStateAqSubRootsCall__Inputs { + _call: MergeStateAqSubRootsCall; + + constructor(call: MergeStateAqSubRootsCall) { + this._call = call; + } + + get _numSrQueueOps(): BigInt { + return this._call.inputValues[0].value.toBigInt(); + } + + get _pollId(): BigInt { + return this._call.inputValues[1].value.toBigInt(); + } +} + +export class MergeStateAqSubRootsCall__Outputs { + _call: MergeStateAqSubRootsCall; + + constructor(call: MergeStateAqSubRootsCall) { + this._call = call; + } +} + +export class RenounceOwnershipCall extends ethereum.Call { + get inputs(): RenounceOwnershipCall__Inputs { + return new RenounceOwnershipCall__Inputs(this); + } + + get outputs(): RenounceOwnershipCall__Outputs { + return new RenounceOwnershipCall__Outputs(this); + } +} + +export class RenounceOwnershipCall__Inputs { + _call: RenounceOwnershipCall; + + constructor(call: RenounceOwnershipCall) { + this._call = call; + } +} + +export class RenounceOwnershipCall__Outputs { + _call: RenounceOwnershipCall; + + constructor(call: RenounceOwnershipCall) { + this._call = call; + } +} + +export class SignUpCall extends ethereum.Call { + get inputs(): SignUpCall__Inputs { + return new SignUpCall__Inputs(this); + } + + get outputs(): SignUpCall__Outputs { + return new SignUpCall__Outputs(this); + } +} + +export class SignUpCall__Inputs { + _call: SignUpCall; + + constructor(call: SignUpCall) { + this._call = call; + } + + get _pubKey(): SignUpCall_pubKeyStruct { + return changetype( + this._call.inputValues[0].value.toTuple() + ); + } + + get _signUpGatekeeperData(): Bytes { + return this._call.inputValues[1].value.toBytes(); + } + + get _initialVoiceCreditProxyData(): Bytes { + return this._call.inputValues[2].value.toBytes(); + } +} + +export class SignUpCall__Outputs { + _call: SignUpCall; + + constructor(call: SignUpCall) { + this._call = call; + } +} + +export class SignUpCall_pubKeyStruct extends ethereum.Tuple { + get x(): BigInt { + return this[0].toBigInt(); + } + + get y(): BigInt { + return this[1].toBigInt(); + } +} + +export class TransferOwnershipCall extends ethereum.Call { + get inputs(): TransferOwnershipCall__Inputs { + return new TransferOwnershipCall__Inputs(this); + } + + get outputs(): TransferOwnershipCall__Outputs { + return new TransferOwnershipCall__Outputs(this); + } +} + +export class TransferOwnershipCall__Inputs { + _call: TransferOwnershipCall; + + constructor(call: TransferOwnershipCall) { + this._call = call; + } + + get newOwner(): Address { + return this._call.inputValues[0].value.toAddress(); + } +} + +export class TransferOwnershipCall__Outputs { + _call: TransferOwnershipCall; + + constructor(call: TransferOwnershipCall) { + this._call = call; + } +} diff --git a/subgraph/generated/ClrFund/MACIFactory.ts b/subgraph/generated/ClrFund/MACIFactory.ts new file mode 100644 index 000000000..a19443043 --- /dev/null +++ b/subgraph/generated/ClrFund/MACIFactory.ts @@ -0,0 +1,816 @@ +// THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. + +import { + ethereum, + JSONValue, + TypedMap, + Entity, + Bytes, + Address, + BigInt +} from "@graphprotocol/graph-ts"; + +export class MaciDeployed extends ethereum.Event { + get params(): MaciDeployed__Params { + return new MaciDeployed__Params(this); + } +} + +export class MaciDeployed__Params { + _event: MaciDeployed; + + constructor(event: MaciDeployed) { + this._event = event; + } + + get _maci(): Address { + return this._event.parameters[0].value.toAddress(); + } +} + +export class MaciParametersChanged extends ethereum.Event { + get params(): MaciParametersChanged__Params { + return new MaciParametersChanged__Params(this); + } +} + +export class MaciParametersChanged__Params { + _event: MaciParametersChanged; + + constructor(event: MaciParametersChanged) { + this._event = event; + } +} + +export class OwnershipTransferred extends ethereum.Event { + get params(): OwnershipTransferred__Params { + return new OwnershipTransferred__Params(this); + } +} + +export class OwnershipTransferred__Params { + _event: OwnershipTransferred; + + constructor(event: OwnershipTransferred) { + this._event = event; + } + + get previousOwner(): Address { + return this._event.parameters[0].value.toAddress(); + } + + get newOwner(): Address { + return this._event.parameters[1].value.toAddress(); + } +} + +export class MACIFactory__deployMaciInputCoordinatorPubKeyStruct extends ethereum.Tuple { + get x(): BigInt { + return this[0].toBigInt(); + } + + get y(): BigInt { + return this[1].toBigInt(); + } +} + +export class MACIFactory__maxValuesResult { + value0: BigInt; + value1: BigInt; + + constructor(value0: BigInt, value1: BigInt) { + this.value0 = value0; + this.value1 = value1; + } + + toMap(): TypedMap { + let map = new TypedMap(); + map.set("value0", ethereum.Value.fromUnsignedBigInt(this.value0)); + map.set("value1", ethereum.Value.fromUnsignedBigInt(this.value1)); + return map; + } + + getMaxMessages(): BigInt { + return this.value0; + } + + getMaxVoteOptions(): BigInt { + return this.value1; + } +} + +export class MACIFactory__treeDepthsResult { + value0: i32; + value1: i32; + value2: i32; + value3: i32; + + constructor(value0: i32, value1: i32, value2: i32, value3: i32) { + this.value0 = value0; + this.value1 = value1; + this.value2 = value2; + this.value3 = value3; + } + + toMap(): TypedMap { + let map = new TypedMap(); + map.set( + "value0", + ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(this.value0)) + ); + map.set( + "value1", + ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(this.value1)) + ); + map.set( + "value2", + ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(this.value2)) + ); + map.set( + "value3", + ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(this.value3)) + ); + return map; + } + + getIntStateTreeDepth(): i32 { + return this.value0; + } + + getMessageTreeSubDepth(): i32 { + return this.value1; + } + + getMessageTreeDepth(): i32 { + return this.value2; + } + + getVoteOptionTreeDepth(): i32 { + return this.value3; + } +} + +export class MACIFactory extends ethereum.SmartContract { + static bind(address: Address): MACIFactory { + return new MACIFactory("MACIFactory", address); + } + + deployMaci( + signUpGatekeeper: Address, + initialVoiceCreditProxy: Address, + topupCredit: Address, + duration: BigInt, + coordinator: Address, + coordinatorPubKey: MACIFactory__deployMaciInputCoordinatorPubKeyStruct + ): Address { + let result = super.call( + "deployMaci", + "deployMaci(address,address,address,uint256,address,(uint256,uint256)):(address)", + [ + ethereum.Value.fromAddress(signUpGatekeeper), + ethereum.Value.fromAddress(initialVoiceCreditProxy), + ethereum.Value.fromAddress(topupCredit), + ethereum.Value.fromUnsignedBigInt(duration), + ethereum.Value.fromAddress(coordinator), + ethereum.Value.fromTuple(coordinatorPubKey) + ] + ); + + return result[0].toAddress(); + } + + try_deployMaci( + signUpGatekeeper: Address, + initialVoiceCreditProxy: Address, + topupCredit: Address, + duration: BigInt, + coordinator: Address, + coordinatorPubKey: MACIFactory__deployMaciInputCoordinatorPubKeyStruct + ): ethereum.CallResult
{ + let result = super.tryCall( + "deployMaci", + "deployMaci(address,address,address,uint256,address,(uint256,uint256)):(address)", + [ + ethereum.Value.fromAddress(signUpGatekeeper), + ethereum.Value.fromAddress(initialVoiceCreditProxy), + ethereum.Value.fromAddress(topupCredit), + ethereum.Value.fromUnsignedBigInt(duration), + ethereum.Value.fromAddress(coordinator), + ethereum.Value.fromTuple(coordinatorPubKey) + ] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toAddress()); + } + + maxValues(): MACIFactory__maxValuesResult { + let result = super.call("maxValues", "maxValues():(uint256,uint256)", []); + + return new MACIFactory__maxValuesResult( + result[0].toBigInt(), + result[1].toBigInt() + ); + } + + try_maxValues(): ethereum.CallResult { + let result = super.tryCall( + "maxValues", + "maxValues():(uint256,uint256)", + [] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue( + new MACIFactory__maxValuesResult(value[0].toBigInt(), value[1].toBigInt()) + ); + } + + messageBatchSize(): BigInt { + let result = super.call( + "messageBatchSize", + "messageBatchSize():(uint256)", + [] + ); + + return result[0].toBigInt(); + } + + try_messageBatchSize(): ethereum.CallResult { + let result = super.tryCall( + "messageBatchSize", + "messageBatchSize():(uint256)", + [] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBigInt()); + } + + owner(): Address { + let result = super.call("owner", "owner():(address)", []); + + return result[0].toAddress(); + } + + try_owner(): ethereum.CallResult
{ + let result = super.tryCall("owner", "owner():(address)", []); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toAddress()); + } + + pollFactory(): Address { + let result = super.call("pollFactory", "pollFactory():(address)", []); + + return result[0].toAddress(); + } + + try_pollFactory(): ethereum.CallResult
{ + let result = super.tryCall("pollFactory", "pollFactory():(address)", []); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toAddress()); + } + + stateTreeDepth(): i32 { + let result = super.call("stateTreeDepth", "stateTreeDepth():(uint8)", []); + + return result[0].toI32(); + } + + try_stateTreeDepth(): ethereum.CallResult { + let result = super.tryCall( + "stateTreeDepth", + "stateTreeDepth():(uint8)", + [] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toI32()); + } + + treeDepths(): MACIFactory__treeDepthsResult { + let result = super.call( + "treeDepths", + "treeDepths():(uint8,uint8,uint8,uint8)", + [] + ); + + return new MACIFactory__treeDepthsResult( + result[0].toI32(), + result[1].toI32(), + result[2].toI32(), + result[3].toI32() + ); + } + + try_treeDepths(): ethereum.CallResult { + let result = super.tryCall( + "treeDepths", + "treeDepths():(uint8,uint8,uint8,uint8)", + [] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue( + new MACIFactory__treeDepthsResult( + value[0].toI32(), + value[1].toI32(), + value[2].toI32(), + value[3].toI32() + ) + ); + } + + vkRegistry(): Address { + let result = super.call("vkRegistry", "vkRegistry():(address)", []); + + return result[0].toAddress(); + } + + try_vkRegistry(): ethereum.CallResult
{ + let result = super.tryCall("vkRegistry", "vkRegistry():(address)", []); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toAddress()); + } +} + +export class ConstructorCall extends ethereum.Call { + get inputs(): ConstructorCall__Inputs { + return new ConstructorCall__Inputs(this); + } + + get outputs(): ConstructorCall__Outputs { + return new ConstructorCall__Outputs(this); + } +} + +export class ConstructorCall__Inputs { + _call: ConstructorCall; + + constructor(call: ConstructorCall) { + this._call = call; + } + + get _vkRegistry(): Address { + return this._call.inputValues[0].value.toAddress(); + } + + get _pollFactory(): Address { + return this._call.inputValues[1].value.toAddress(); + } +} + +export class ConstructorCall__Outputs { + _call: ConstructorCall; + + constructor(call: ConstructorCall) { + this._call = call; + } +} + +export class DeployMaciCall extends ethereum.Call { + get inputs(): DeployMaciCall__Inputs { + return new DeployMaciCall__Inputs(this); + } + + get outputs(): DeployMaciCall__Outputs { + return new DeployMaciCall__Outputs(this); + } +} + +export class DeployMaciCall__Inputs { + _call: DeployMaciCall; + + constructor(call: DeployMaciCall) { + this._call = call; + } + + get signUpGatekeeper(): Address { + return this._call.inputValues[0].value.toAddress(); + } + + get initialVoiceCreditProxy(): Address { + return this._call.inputValues[1].value.toAddress(); + } + + get topupCredit(): Address { + return this._call.inputValues[2].value.toAddress(); + } + + get duration(): BigInt { + return this._call.inputValues[3].value.toBigInt(); + } + + get coordinator(): Address { + return this._call.inputValues[4].value.toAddress(); + } + + get coordinatorPubKey(): DeployMaciCallCoordinatorPubKeyStruct { + return changetype( + this._call.inputValues[5].value.toTuple() + ); + } +} + +export class DeployMaciCall__Outputs { + _call: DeployMaciCall; + + constructor(call: DeployMaciCall) { + this._call = call; + } + + get _maci(): Address { + return this._call.outputValues[0].value.toAddress(); + } +} + +export class DeployMaciCallCoordinatorPubKeyStruct extends ethereum.Tuple { + get x(): BigInt { + return this[0].toBigInt(); + } + + get y(): BigInt { + return this[1].toBigInt(); + } +} + +export class RenounceOwnershipCall extends ethereum.Call { + get inputs(): RenounceOwnershipCall__Inputs { + return new RenounceOwnershipCall__Inputs(this); + } + + get outputs(): RenounceOwnershipCall__Outputs { + return new RenounceOwnershipCall__Outputs(this); + } +} + +export class RenounceOwnershipCall__Inputs { + _call: RenounceOwnershipCall; + + constructor(call: RenounceOwnershipCall) { + this._call = call; + } +} + +export class RenounceOwnershipCall__Outputs { + _call: RenounceOwnershipCall; + + constructor(call: RenounceOwnershipCall) { + this._call = call; + } +} + +export class SetMaciParametersCall extends ethereum.Call { + get inputs(): SetMaciParametersCall__Inputs { + return new SetMaciParametersCall__Inputs(this); + } + + get outputs(): SetMaciParametersCall__Outputs { + return new SetMaciParametersCall__Outputs(this); + } +} + +export class SetMaciParametersCall__Inputs { + _call: SetMaciParametersCall; + + constructor(call: SetMaciParametersCall) { + this._call = call; + } + + get _stateTreeDepth(): i32 { + return this._call.inputValues[0].value.toI32(); + } + + get _treeDepths(): SetMaciParametersCall_treeDepthsStruct { + return changetype( + this._call.inputValues[1].value.toTuple() + ); + } + + get _maxValues(): SetMaciParametersCall_maxValuesStruct { + return changetype( + this._call.inputValues[2].value.toTuple() + ); + } + + get _messageBatchSize(): BigInt { + return this._call.inputValues[3].value.toBigInt(); + } + + get _processVk(): SetMaciParametersCall_processVkStruct { + return changetype( + this._call.inputValues[4].value.toTuple() + ); + } + + get _tallyVk(): SetMaciParametersCall_tallyVkStruct { + return changetype( + this._call.inputValues[5].value.toTuple() + ); + } +} + +export class SetMaciParametersCall__Outputs { + _call: SetMaciParametersCall; + + constructor(call: SetMaciParametersCall) { + this._call = call; + } +} + +export class SetMaciParametersCall_treeDepthsStruct extends ethereum.Tuple { + get intStateTreeDepth(): i32 { + return this[0].toI32(); + } + + get messageTreeSubDepth(): i32 { + return this[1].toI32(); + } + + get messageTreeDepth(): i32 { + return this[2].toI32(); + } + + get voteOptionTreeDepth(): i32 { + return this[3].toI32(); + } +} + +export class SetMaciParametersCall_maxValuesStruct extends ethereum.Tuple { + get maxMessages(): BigInt { + return this[0].toBigInt(); + } + + get maxVoteOptions(): BigInt { + return this[1].toBigInt(); + } +} + +export class SetMaciParametersCall_processVkStruct extends ethereum.Tuple { + get alpha1(): SetMaciParametersCall_processVkAlpha1Struct { + return changetype( + this[0].toTuple() + ); + } + + get beta2(): SetMaciParametersCall_processVkBeta2Struct { + return changetype( + this[1].toTuple() + ); + } + + get gamma2(): SetMaciParametersCall_processVkGamma2Struct { + return changetype( + this[2].toTuple() + ); + } + + get delta2(): SetMaciParametersCall_processVkDelta2Struct { + return changetype( + this[3].toTuple() + ); + } + + get ic(): Array { + return this[4].toTupleArray(); + } +} + +export class SetMaciParametersCall_processVkAlpha1Struct extends ethereum.Tuple { + get x(): BigInt { + return this[0].toBigInt(); + } + + get y(): BigInt { + return this[1].toBigInt(); + } +} + +export class SetMaciParametersCall_processVkBeta2Struct extends ethereum.Tuple { + get x(): Array { + return this[0].toBigIntArray(); + } + + get y(): Array { + return this[1].toBigIntArray(); + } +} + +export class SetMaciParametersCall_processVkGamma2Struct extends ethereum.Tuple { + get x(): Array { + return this[0].toBigIntArray(); + } + + get y(): Array { + return this[1].toBigIntArray(); + } +} + +export class SetMaciParametersCall_processVkDelta2Struct extends ethereum.Tuple { + get x(): Array { + return this[0].toBigIntArray(); + } + + get y(): Array { + return this[1].toBigIntArray(); + } +} + +export class SetMaciParametersCall_processVkIcStruct extends ethereum.Tuple { + get x(): BigInt { + return this[0].toBigInt(); + } + + get y(): BigInt { + return this[1].toBigInt(); + } +} + +export class SetMaciParametersCall_tallyVkStruct extends ethereum.Tuple { + get alpha1(): SetMaciParametersCall_tallyVkAlpha1Struct { + return changetype( + this[0].toTuple() + ); + } + + get beta2(): SetMaciParametersCall_tallyVkBeta2Struct { + return changetype( + this[1].toTuple() + ); + } + + get gamma2(): SetMaciParametersCall_tallyVkGamma2Struct { + return changetype( + this[2].toTuple() + ); + } + + get delta2(): SetMaciParametersCall_tallyVkDelta2Struct { + return changetype( + this[3].toTuple() + ); + } + + get ic(): Array { + return this[4].toTupleArray(); + } +} + +export class SetMaciParametersCall_tallyVkAlpha1Struct extends ethereum.Tuple { + get x(): BigInt { + return this[0].toBigInt(); + } + + get y(): BigInt { + return this[1].toBigInt(); + } +} + +export class SetMaciParametersCall_tallyVkBeta2Struct extends ethereum.Tuple { + get x(): Array { + return this[0].toBigIntArray(); + } + + get y(): Array { + return this[1].toBigIntArray(); + } +} + +export class SetMaciParametersCall_tallyVkGamma2Struct extends ethereum.Tuple { + get x(): Array { + return this[0].toBigIntArray(); + } + + get y(): Array { + return this[1].toBigIntArray(); + } +} + +export class SetMaciParametersCall_tallyVkDelta2Struct extends ethereum.Tuple { + get x(): Array { + return this[0].toBigIntArray(); + } + + get y(): Array { + return this[1].toBigIntArray(); + } +} + +export class SetMaciParametersCall_tallyVkIcStruct extends ethereum.Tuple { + get x(): BigInt { + return this[0].toBigInt(); + } + + get y(): BigInt { + return this[1].toBigInt(); + } +} + +export class SetPollFactoryCall extends ethereum.Call { + get inputs(): SetPollFactoryCall__Inputs { + return new SetPollFactoryCall__Inputs(this); + } + + get outputs(): SetPollFactoryCall__Outputs { + return new SetPollFactoryCall__Outputs(this); + } +} + +export class SetPollFactoryCall__Inputs { + _call: SetPollFactoryCall; + + constructor(call: SetPollFactoryCall) { + this._call = call; + } + + get _pollFactory(): Address { + return this._call.inputValues[0].value.toAddress(); + } +} + +export class SetPollFactoryCall__Outputs { + _call: SetPollFactoryCall; + + constructor(call: SetPollFactoryCall) { + this._call = call; + } +} + +export class SetVkRegistryCall extends ethereum.Call { + get inputs(): SetVkRegistryCall__Inputs { + return new SetVkRegistryCall__Inputs(this); + } + + get outputs(): SetVkRegistryCall__Outputs { + return new SetVkRegistryCall__Outputs(this); + } +} + +export class SetVkRegistryCall__Inputs { + _call: SetVkRegistryCall; + + constructor(call: SetVkRegistryCall) { + this._call = call; + } + + get _vkRegistry(): Address { + return this._call.inputValues[0].value.toAddress(); + } +} + +export class SetVkRegistryCall__Outputs { + _call: SetVkRegistryCall; + + constructor(call: SetVkRegistryCall) { + this._call = call; + } +} + +export class TransferOwnershipCall extends ethereum.Call { + get inputs(): TransferOwnershipCall__Inputs { + return new TransferOwnershipCall__Inputs(this); + } + + get outputs(): TransferOwnershipCall__Outputs { + return new TransferOwnershipCall__Outputs(this); + } +} + +export class TransferOwnershipCall__Inputs { + _call: TransferOwnershipCall; + + constructor(call: TransferOwnershipCall) { + this._call = call; + } + + get newOwner(): Address { + return this._call.inputValues[0].value.toAddress(); + } +} + +export class TransferOwnershipCall__Outputs { + _call: TransferOwnershipCall; + + constructor(call: TransferOwnershipCall) { + this._call = call; + } +} diff --git a/subgraph/generated/FundingRoundFactory/OptimisticRecipientRegistry.ts b/subgraph/generated/ClrFund/OptimisticRecipientRegistry.ts similarity index 96% rename from subgraph/generated/FundingRoundFactory/OptimisticRecipientRegistry.ts rename to subgraph/generated/ClrFund/OptimisticRecipientRegistry.ts index 20d805ce5..afb85c261 100644 --- a/subgraph/generated/FundingRoundFactory/OptimisticRecipientRegistry.ts +++ b/subgraph/generated/ClrFund/OptimisticRecipientRegistry.ts @@ -255,6 +255,29 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { return ethereum.CallResult.fromValue(value[0].toAddress()); } + getRecipientCount(): BigInt { + let result = super.call( + "getRecipientCount", + "getRecipientCount():(uint256)", + [] + ); + + return result[0].toBigInt(); + } + + try_getRecipientCount(): ethereum.CallResult { + let result = super.tryCall( + "getRecipientCount", + "getRecipientCount():(uint256)", + [] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBigInt()); + } + maxRecipients(): BigInt { let result = super.call("maxRecipients", "maxRecipients():(uint256)", []); diff --git a/subgraph/generated/ClrFund/Poll.ts b/subgraph/generated/ClrFund/Poll.ts new file mode 100644 index 000000000..193c7b156 --- /dev/null +++ b/subgraph/generated/ClrFund/Poll.ts @@ -0,0 +1,1461 @@ +// THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. + +import { + ethereum, + JSONValue, + TypedMap, + Entity, + Bytes, + Address, + BigInt +} from "@graphprotocol/graph-ts"; + +export class MergeMaciStateAq extends ethereum.Event { + get params(): MergeMaciStateAq__Params { + return new MergeMaciStateAq__Params(this); + } +} + +export class MergeMaciStateAq__Params { + _event: MergeMaciStateAq; + + constructor(event: MergeMaciStateAq) { + this._event = event; + } + + get _stateRoot(): BigInt { + return this._event.parameters[0].value.toBigInt(); + } +} + +export class MergeMaciStateAqSubRoots extends ethereum.Event { + get params(): MergeMaciStateAqSubRoots__Params { + return new MergeMaciStateAqSubRoots__Params(this); + } +} + +export class MergeMaciStateAqSubRoots__Params { + _event: MergeMaciStateAqSubRoots; + + constructor(event: MergeMaciStateAqSubRoots) { + this._event = event; + } + + get _numSrQueueOps(): BigInt { + return this._event.parameters[0].value.toBigInt(); + } +} + +export class MergeMessageAq extends ethereum.Event { + get params(): MergeMessageAq__Params { + return new MergeMessageAq__Params(this); + } +} + +export class MergeMessageAq__Params { + _event: MergeMessageAq; + + constructor(event: MergeMessageAq) { + this._event = event; + } + + get _messageRoot(): BigInt { + return this._event.parameters[0].value.toBigInt(); + } +} + +export class MergeMessageAqSubRoots extends ethereum.Event { + get params(): MergeMessageAqSubRoots__Params { + return new MergeMessageAqSubRoots__Params(this); + } +} + +export class MergeMessageAqSubRoots__Params { + _event: MergeMessageAqSubRoots; + + constructor(event: MergeMessageAqSubRoots) { + this._event = event; + } + + get _numSrQueueOps(): BigInt { + return this._event.parameters[0].value.toBigInt(); + } +} + +export class OwnershipTransferred extends ethereum.Event { + get params(): OwnershipTransferred__Params { + return new OwnershipTransferred__Params(this); + } +} + +export class OwnershipTransferred__Params { + _event: OwnershipTransferred; + + constructor(event: OwnershipTransferred) { + this._event = event; + } + + get previousOwner(): Address { + return this._event.parameters[0].value.toAddress(); + } + + get newOwner(): Address { + return this._event.parameters[1].value.toAddress(); + } +} + +export class PublishMessage extends ethereum.Event { + get params(): PublishMessage__Params { + return new PublishMessage__Params(this); + } +} + +export class PublishMessage__Params { + _event: PublishMessage; + + constructor(event: PublishMessage) { + this._event = event; + } + + get _message(): PublishMessage_messageStruct { + return changetype( + this._event.parameters[0].value.toTuple() + ); + } + + get _encPubKey(): PublishMessage_encPubKeyStruct { + return changetype( + this._event.parameters[1].value.toTuple() + ); + } +} + +export class PublishMessage_messageStruct extends ethereum.Tuple { + get msgType(): BigInt { + return this[0].toBigInt(); + } + + get data(): Array { + return this[1].toBigIntArray(); + } +} + +export class PublishMessage_encPubKeyStruct extends ethereum.Tuple { + get x(): BigInt { + return this[0].toBigInt(); + } + + get y(): BigInt { + return this[1].toBigInt(); + } +} + +export class TopupMessage extends ethereum.Event { + get params(): TopupMessage__Params { + return new TopupMessage__Params(this); + } +} + +export class TopupMessage__Params { + _event: TopupMessage; + + constructor(event: TopupMessage) { + this._event = event; + } + + get _message(): TopupMessage_messageStruct { + return changetype( + this._event.parameters[0].value.toTuple() + ); + } +} + +export class TopupMessage_messageStruct extends ethereum.Tuple { + get msgType(): BigInt { + return this[0].toBigInt(); + } + + get data(): Array { + return this[1].toBigIntArray(); + } +} + +export class Poll__batchSizesResult { + value0: i32; + value1: i32; + value2: i32; + + constructor(value0: i32, value1: i32, value2: i32) { + this.value0 = value0; + this.value1 = value1; + this.value2 = value2; + } + + toMap(): TypedMap { + let map = new TypedMap(); + map.set( + "value0", + ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(this.value0)) + ); + map.set( + "value1", + ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(this.value1)) + ); + map.set( + "value2", + ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(this.value2)) + ); + return map; + } + + getMessageBatchSize(): i32 { + return this.value0; + } + + getTallyBatchSize(): i32 { + return this.value1; + } + + getSubsidyBatchSize(): i32 { + return this.value2; + } +} + +export class Poll__coordinatorPubKeyResult { + value0: BigInt; + value1: BigInt; + + constructor(value0: BigInt, value1: BigInt) { + this.value0 = value0; + this.value1 = value1; + } + + toMap(): TypedMap { + let map = new TypedMap(); + map.set("value0", ethereum.Value.fromUnsignedBigInt(this.value0)); + map.set("value1", ethereum.Value.fromUnsignedBigInt(this.value1)); + return map; + } + + getX(): BigInt { + return this.value0; + } + + getY(): BigInt { + return this.value1; + } +} + +export class Poll__extContractsResult { + value0: Address; + value1: Address; + value2: Address; + value3: Address; + + constructor( + value0: Address, + value1: Address, + value2: Address, + value3: Address + ) { + this.value0 = value0; + this.value1 = value1; + this.value2 = value2; + this.value3 = value3; + } + + toMap(): TypedMap { + let map = new TypedMap(); + map.set("value0", ethereum.Value.fromAddress(this.value0)); + map.set("value1", ethereum.Value.fromAddress(this.value1)); + map.set("value2", ethereum.Value.fromAddress(this.value2)); + map.set("value3", ethereum.Value.fromAddress(this.value3)); + return map; + } + + getVkRegistry(): Address { + return this.value0; + } + + getMaci(): Address { + return this.value1; + } + + getMessageAq(): Address { + return this.value2; + } + + getTopupCredit(): Address { + return this.value3; + } +} + +export class Poll__getDeployTimeAndDurationResult { + value0: BigInt; + value1: BigInt; + + constructor(value0: BigInt, value1: BigInt) { + this.value0 = value0; + this.value1 = value1; + } + + toMap(): TypedMap { + let map = new TypedMap(); + map.set("value0", ethereum.Value.fromUnsignedBigInt(this.value0)); + map.set("value1", ethereum.Value.fromUnsignedBigInt(this.value1)); + return map; + } + + getValue0(): BigInt { + return this.value0; + } + + getValue1(): BigInt { + return this.value1; + } +} + +export class Poll__hashMessageAndEncPubKeyInput_messageStruct extends ethereum.Tuple { + get msgType(): BigInt { + return this[0].toBigInt(); + } + + get data(): Array { + return this[1].toBigIntArray(); + } +} + +export class Poll__hashMessageAndEncPubKeyInput_encPubKeyStruct extends ethereum.Tuple { + get x(): BigInt { + return this[0].toBigInt(); + } + + get y(): BigInt { + return this[1].toBigInt(); + } +} + +export class Poll__maxValuesResult { + value0: BigInt; + value1: BigInt; + + constructor(value0: BigInt, value1: BigInt) { + this.value0 = value0; + this.value1 = value1; + } + + toMap(): TypedMap { + let map = new TypedMap(); + map.set("value0", ethereum.Value.fromUnsignedBigInt(this.value0)); + map.set("value1", ethereum.Value.fromUnsignedBigInt(this.value1)); + return map; + } + + getMaxMessages(): BigInt { + return this.value0; + } + + getMaxVoteOptions(): BigInt { + return this.value1; + } +} + +export class Poll__numSignUpsAndMessagesResult { + value0: BigInt; + value1: BigInt; + + constructor(value0: BigInt, value1: BigInt) { + this.value0 = value0; + this.value1 = value1; + } + + toMap(): TypedMap { + let map = new TypedMap(); + map.set("value0", ethereum.Value.fromUnsignedBigInt(this.value0)); + map.set("value1", ethereum.Value.fromUnsignedBigInt(this.value1)); + return map; + } + + getValue0(): BigInt { + return this.value0; + } + + getValue1(): BigInt { + return this.value1; + } +} + +export class Poll__padAndHashMessageResultValue0Struct extends ethereum.Tuple { + get msgType(): BigInt { + return this[0].toBigInt(); + } + + get data(): Array { + return this[1].toBigIntArray(); + } +} + +export class Poll__padAndHashMessageResultValue1Struct extends ethereum.Tuple { + get x(): BigInt { + return this[0].toBigInt(); + } + + get y(): BigInt { + return this[1].toBigInt(); + } +} + +export class Poll__padAndHashMessageResult { + value0: Poll__padAndHashMessageResultValue0Struct; + value1: Poll__padAndHashMessageResultValue1Struct; + value2: BigInt; + + constructor( + value0: Poll__padAndHashMessageResultValue0Struct, + value1: Poll__padAndHashMessageResultValue1Struct, + value2: BigInt + ) { + this.value0 = value0; + this.value1 = value1; + this.value2 = value2; + } + + toMap(): TypedMap { + let map = new TypedMap(); + map.set("value0", ethereum.Value.fromTuple(this.value0)); + map.set("value1", ethereum.Value.fromTuple(this.value1)); + map.set("value2", ethereum.Value.fromUnsignedBigInt(this.value2)); + return map; + } + + getValue0(): Poll__padAndHashMessageResultValue0Struct { + return this.value0; + } + + getValue1(): Poll__padAndHashMessageResultValue1Struct { + return this.value1; + } + + getValue2(): BigInt { + return this.value2; + } +} + +export class Poll__treeDepthsResult { + value0: i32; + value1: i32; + value2: i32; + value3: i32; + + constructor(value0: i32, value1: i32, value2: i32, value3: i32) { + this.value0 = value0; + this.value1 = value1; + this.value2 = value2; + this.value3 = value3; + } + + toMap(): TypedMap { + let map = new TypedMap(); + map.set( + "value0", + ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(this.value0)) + ); + map.set( + "value1", + ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(this.value1)) + ); + map.set( + "value2", + ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(this.value2)) + ); + map.set( + "value3", + ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(this.value3)) + ); + return map; + } + + getIntStateTreeDepth(): i32 { + return this.value0; + } + + getMessageTreeSubDepth(): i32 { + return this.value1; + } + + getMessageTreeDepth(): i32 { + return this.value2; + } + + getVoteOptionTreeDepth(): i32 { + return this.value3; + } +} + +export class Poll extends ethereum.SmartContract { + static bind(address: Address): Poll { + return new Poll("Poll", address); + } + + batchSizes(): Poll__batchSizesResult { + let result = super.call( + "batchSizes", + "batchSizes():(uint24,uint24,uint24)", + [] + ); + + return new Poll__batchSizesResult( + result[0].toI32(), + result[1].toI32(), + result[2].toI32() + ); + } + + try_batchSizes(): ethereum.CallResult { + let result = super.tryCall( + "batchSizes", + "batchSizes():(uint24,uint24,uint24)", + [] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue( + new Poll__batchSizesResult( + value[0].toI32(), + value[1].toI32(), + value[2].toI32() + ) + ); + } + + coordinatorPubKey(): Poll__coordinatorPubKeyResult { + let result = super.call( + "coordinatorPubKey", + "coordinatorPubKey():(uint256,uint256)", + [] + ); + + return new Poll__coordinatorPubKeyResult( + result[0].toBigInt(), + result[1].toBigInt() + ); + } + + try_coordinatorPubKey(): ethereum.CallResult { + let result = super.tryCall( + "coordinatorPubKey", + "coordinatorPubKey():(uint256,uint256)", + [] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue( + new Poll__coordinatorPubKeyResult( + value[0].toBigInt(), + value[1].toBigInt() + ) + ); + } + + coordinatorPubKeyHash(): BigInt { + let result = super.call( + "coordinatorPubKeyHash", + "coordinatorPubKeyHash():(uint256)", + [] + ); + + return result[0].toBigInt(); + } + + try_coordinatorPubKeyHash(): ethereum.CallResult { + let result = super.tryCall( + "coordinatorPubKeyHash", + "coordinatorPubKeyHash():(uint256)", + [] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBigInt()); + } + + currentSbCommitment(): BigInt { + let result = super.call( + "currentSbCommitment", + "currentSbCommitment():(uint256)", + [] + ); + + return result[0].toBigInt(); + } + + try_currentSbCommitment(): ethereum.CallResult { + let result = super.tryCall( + "currentSbCommitment", + "currentSbCommitment():(uint256)", + [] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBigInt()); + } + + extContracts(): Poll__extContractsResult { + let result = super.call( + "extContracts", + "extContracts():(address,address,address,address)", + [] + ); + + return new Poll__extContractsResult( + result[0].toAddress(), + result[1].toAddress(), + result[2].toAddress(), + result[3].toAddress() + ); + } + + try_extContracts(): ethereum.CallResult { + let result = super.tryCall( + "extContracts", + "extContracts():(address,address,address,address)", + [] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue( + new Poll__extContractsResult( + value[0].toAddress(), + value[1].toAddress(), + value[2].toAddress(), + value[3].toAddress() + ) + ); + } + + getDeployTimeAndDuration(): Poll__getDeployTimeAndDurationResult { + let result = super.call( + "getDeployTimeAndDuration", + "getDeployTimeAndDuration():(uint256,uint256)", + [] + ); + + return new Poll__getDeployTimeAndDurationResult( + result[0].toBigInt(), + result[1].toBigInt() + ); + } + + try_getDeployTimeAndDuration(): ethereum.CallResult< + Poll__getDeployTimeAndDurationResult + > { + let result = super.tryCall( + "getDeployTimeAndDuration", + "getDeployTimeAndDuration():(uint256,uint256)", + [] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue( + new Poll__getDeployTimeAndDurationResult( + value[0].toBigInt(), + value[1].toBigInt() + ) + ); + } + + hash2(array: Array): BigInt { + let result = super.call("hash2", "hash2(uint256[2]):(uint256)", [ + ethereum.Value.fromUnsignedBigIntArray(array) + ]); + + return result[0].toBigInt(); + } + + try_hash2(array: Array): ethereum.CallResult { + let result = super.tryCall("hash2", "hash2(uint256[2]):(uint256)", [ + ethereum.Value.fromUnsignedBigIntArray(array) + ]); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBigInt()); + } + + hash3(array: Array): BigInt { + let result = super.call("hash3", "hash3(uint256[3]):(uint256)", [ + ethereum.Value.fromUnsignedBigIntArray(array) + ]); + + return result[0].toBigInt(); + } + + try_hash3(array: Array): ethereum.CallResult { + let result = super.tryCall("hash3", "hash3(uint256[3]):(uint256)", [ + ethereum.Value.fromUnsignedBigIntArray(array) + ]); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBigInt()); + } + + hash4(array: Array): BigInt { + let result = super.call("hash4", "hash4(uint256[4]):(uint256)", [ + ethereum.Value.fromUnsignedBigIntArray(array) + ]); + + return result[0].toBigInt(); + } + + try_hash4(array: Array): ethereum.CallResult { + let result = super.tryCall("hash4", "hash4(uint256[4]):(uint256)", [ + ethereum.Value.fromUnsignedBigIntArray(array) + ]); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBigInt()); + } + + hash5(array: Array): BigInt { + let result = super.call("hash5", "hash5(uint256[5]):(uint256)", [ + ethereum.Value.fromUnsignedBigIntArray(array) + ]); + + return result[0].toBigInt(); + } + + try_hash5(array: Array): ethereum.CallResult { + let result = super.tryCall("hash5", "hash5(uint256[5]):(uint256)", [ + ethereum.Value.fromUnsignedBigIntArray(array) + ]); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBigInt()); + } + + hashLeftRight(_left: BigInt, _right: BigInt): BigInt { + let result = super.call( + "hashLeftRight", + "hashLeftRight(uint256,uint256):(uint256)", + [ + ethereum.Value.fromUnsignedBigInt(_left), + ethereum.Value.fromUnsignedBigInt(_right) + ] + ); + + return result[0].toBigInt(); + } + + try_hashLeftRight( + _left: BigInt, + _right: BigInt + ): ethereum.CallResult { + let result = super.tryCall( + "hashLeftRight", + "hashLeftRight(uint256,uint256):(uint256)", + [ + ethereum.Value.fromUnsignedBigInt(_left), + ethereum.Value.fromUnsignedBigInt(_right) + ] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBigInt()); + } + + hashMessageAndEncPubKey( + _message: Poll__hashMessageAndEncPubKeyInput_messageStruct, + _encPubKey: Poll__hashMessageAndEncPubKeyInput_encPubKeyStruct + ): BigInt { + let result = super.call( + "hashMessageAndEncPubKey", + "hashMessageAndEncPubKey((uint256,uint256[10]),(uint256,uint256)):(uint256)", + [ethereum.Value.fromTuple(_message), ethereum.Value.fromTuple(_encPubKey)] + ); + + return result[0].toBigInt(); + } + + try_hashMessageAndEncPubKey( + _message: Poll__hashMessageAndEncPubKeyInput_messageStruct, + _encPubKey: Poll__hashMessageAndEncPubKeyInput_encPubKeyStruct + ): ethereum.CallResult { + let result = super.tryCall( + "hashMessageAndEncPubKey", + "hashMessageAndEncPubKey((uint256,uint256[10]),(uint256,uint256)):(uint256)", + [ethereum.Value.fromTuple(_message), ethereum.Value.fromTuple(_encPubKey)] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBigInt()); + } + + maxValues(): Poll__maxValuesResult { + let result = super.call("maxValues", "maxValues():(uint256,uint256)", []); + + return new Poll__maxValuesResult( + result[0].toBigInt(), + result[1].toBigInt() + ); + } + + try_maxValues(): ethereum.CallResult { + let result = super.tryCall( + "maxValues", + "maxValues():(uint256,uint256)", + [] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue( + new Poll__maxValuesResult(value[0].toBigInt(), value[1].toBigInt()) + ); + } + + mergedStateRoot(): BigInt { + let result = super.call( + "mergedStateRoot", + "mergedStateRoot():(uint256)", + [] + ); + + return result[0].toBigInt(); + } + + try_mergedStateRoot(): ethereum.CallResult { + let result = super.tryCall( + "mergedStateRoot", + "mergedStateRoot():(uint256)", + [] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBigInt()); + } + + numSignUpsAndMessages(): Poll__numSignUpsAndMessagesResult { + let result = super.call( + "numSignUpsAndMessages", + "numSignUpsAndMessages():(uint256,uint256)", + [] + ); + + return new Poll__numSignUpsAndMessagesResult( + result[0].toBigInt(), + result[1].toBigInt() + ); + } + + try_numSignUpsAndMessages(): ethereum.CallResult< + Poll__numSignUpsAndMessagesResult + > { + let result = super.tryCall( + "numSignUpsAndMessages", + "numSignUpsAndMessages():(uint256,uint256)", + [] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue( + new Poll__numSignUpsAndMessagesResult( + value[0].toBigInt(), + value[1].toBigInt() + ) + ); + } + + owner(): Address { + let result = super.call("owner", "owner():(address)", []); + + return result[0].toAddress(); + } + + try_owner(): ethereum.CallResult
{ + let result = super.tryCall("owner", "owner():(address)", []); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toAddress()); + } + + padAndHashMessage( + dataToPad: Array, + msgType: BigInt + ): Poll__padAndHashMessageResult { + let result = super.call( + "padAndHashMessage", + "padAndHashMessage(uint256[2],uint256):((uint256,uint256[10]),(uint256,uint256),uint256)", + [ + ethereum.Value.fromUnsignedBigIntArray(dataToPad), + ethereum.Value.fromUnsignedBigInt(msgType) + ] + ); + + return changetype( + new Poll__padAndHashMessageResult( + changetype( + result[0].toTuple() + ), + changetype( + result[1].toTuple() + ), + result[2].toBigInt() + ) + ); + } + + try_padAndHashMessage( + dataToPad: Array, + msgType: BigInt + ): ethereum.CallResult { + let result = super.tryCall( + "padAndHashMessage", + "padAndHashMessage(uint256[2],uint256):((uint256,uint256[10]),(uint256,uint256),uint256)", + [ + ethereum.Value.fromUnsignedBigIntArray(dataToPad), + ethereum.Value.fromUnsignedBigInt(msgType) + ] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue( + changetype( + new Poll__padAndHashMessageResult( + changetype( + value[0].toTuple() + ), + changetype( + value[1].toTuple() + ), + value[2].toBigInt() + ) + ) + ); + } + + sha256Hash(array: Array): BigInt { + let result = super.call("sha256Hash", "sha256Hash(uint256[]):(uint256)", [ + ethereum.Value.fromUnsignedBigIntArray(array) + ]); + + return result[0].toBigInt(); + } + + try_sha256Hash(array: Array): ethereum.CallResult { + let result = super.tryCall( + "sha256Hash", + "sha256Hash(uint256[]):(uint256)", + [ethereum.Value.fromUnsignedBigIntArray(array)] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBigInt()); + } + + stateAqMerged(): boolean { + let result = super.call("stateAqMerged", "stateAqMerged():(bool)", []); + + return result[0].toBoolean(); + } + + try_stateAqMerged(): ethereum.CallResult { + let result = super.tryCall("stateAqMerged", "stateAqMerged():(bool)", []); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBoolean()); + } + + treeDepths(): Poll__treeDepthsResult { + let result = super.call( + "treeDepths", + "treeDepths():(uint8,uint8,uint8,uint8)", + [] + ); + + return new Poll__treeDepthsResult( + result[0].toI32(), + result[1].toI32(), + result[2].toI32(), + result[3].toI32() + ); + } + + try_treeDepths(): ethereum.CallResult { + let result = super.tryCall( + "treeDepths", + "treeDepths():(uint8,uint8,uint8,uint8)", + [] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue( + new Poll__treeDepthsResult( + value[0].toI32(), + value[1].toI32(), + value[2].toI32(), + value[3].toI32() + ) + ); + } +} + +export class ConstructorCall extends ethereum.Call { + get inputs(): ConstructorCall__Inputs { + return new ConstructorCall__Inputs(this); + } + + get outputs(): ConstructorCall__Outputs { + return new ConstructorCall__Outputs(this); + } +} + +export class ConstructorCall__Inputs { + _call: ConstructorCall; + + constructor(call: ConstructorCall) { + this._call = call; + } + + get _duration(): BigInt { + return this._call.inputValues[0].value.toBigInt(); + } + + get _maxValues(): ConstructorCall_maxValuesStruct { + return changetype( + this._call.inputValues[1].value.toTuple() + ); + } + + get _treeDepths(): ConstructorCall_treeDepthsStruct { + return changetype( + this._call.inputValues[2].value.toTuple() + ); + } + + get _batchSizes(): ConstructorCall_batchSizesStruct { + return changetype( + this._call.inputValues[3].value.toTuple() + ); + } + + get _coordinatorPubKey(): ConstructorCall_coordinatorPubKeyStruct { + return changetype( + this._call.inputValues[4].value.toTuple() + ); + } + + get _extContracts(): ConstructorCall_extContractsStruct { + return changetype( + this._call.inputValues[5].value.toTuple() + ); + } +} + +export class ConstructorCall__Outputs { + _call: ConstructorCall; + + constructor(call: ConstructorCall) { + this._call = call; + } +} + +export class ConstructorCall_maxValuesStruct extends ethereum.Tuple { + get maxMessages(): BigInt { + return this[0].toBigInt(); + } + + get maxVoteOptions(): BigInt { + return this[1].toBigInt(); + } +} + +export class ConstructorCall_treeDepthsStruct extends ethereum.Tuple { + get intStateTreeDepth(): i32 { + return this[0].toI32(); + } + + get messageTreeSubDepth(): i32 { + return this[1].toI32(); + } + + get messageTreeDepth(): i32 { + return this[2].toI32(); + } + + get voteOptionTreeDepth(): i32 { + return this[3].toI32(); + } +} + +export class ConstructorCall_batchSizesStruct extends ethereum.Tuple { + get messageBatchSize(): i32 { + return this[0].toI32(); + } + + get tallyBatchSize(): i32 { + return this[1].toI32(); + } + + get subsidyBatchSize(): i32 { + return this[2].toI32(); + } +} + +export class ConstructorCall_coordinatorPubKeyStruct extends ethereum.Tuple { + get x(): BigInt { + return this[0].toBigInt(); + } + + get y(): BigInt { + return this[1].toBigInt(); + } +} + +export class ConstructorCall_extContractsStruct extends ethereum.Tuple { + get vkRegistry(): Address { + return this[0].toAddress(); + } + + get maci(): Address { + return this[1].toAddress(); + } + + get messageAq(): Address { + return this[2].toAddress(); + } + + get topupCredit(): Address { + return this[3].toAddress(); + } +} + +export class InitCall extends ethereum.Call { + get inputs(): InitCall__Inputs { + return new InitCall__Inputs(this); + } + + get outputs(): InitCall__Outputs { + return new InitCall__Outputs(this); + } +} + +export class InitCall__Inputs { + _call: InitCall; + + constructor(call: InitCall) { + this._call = call; + } +} + +export class InitCall__Outputs { + _call: InitCall; + + constructor(call: InitCall) { + this._call = call; + } +} + +export class MergeMaciStateAqCall extends ethereum.Call { + get inputs(): MergeMaciStateAqCall__Inputs { + return new MergeMaciStateAqCall__Inputs(this); + } + + get outputs(): MergeMaciStateAqCall__Outputs { + return new MergeMaciStateAqCall__Outputs(this); + } +} + +export class MergeMaciStateAqCall__Inputs { + _call: MergeMaciStateAqCall; + + constructor(call: MergeMaciStateAqCall) { + this._call = call; + } + + get _pollId(): BigInt { + return this._call.inputValues[0].value.toBigInt(); + } +} + +export class MergeMaciStateAqCall__Outputs { + _call: MergeMaciStateAqCall; + + constructor(call: MergeMaciStateAqCall) { + this._call = call; + } +} + +export class MergeMaciStateAqSubRootsCall extends ethereum.Call { + get inputs(): MergeMaciStateAqSubRootsCall__Inputs { + return new MergeMaciStateAqSubRootsCall__Inputs(this); + } + + get outputs(): MergeMaciStateAqSubRootsCall__Outputs { + return new MergeMaciStateAqSubRootsCall__Outputs(this); + } +} + +export class MergeMaciStateAqSubRootsCall__Inputs { + _call: MergeMaciStateAqSubRootsCall; + + constructor(call: MergeMaciStateAqSubRootsCall) { + this._call = call; + } + + get _numSrQueueOps(): BigInt { + return this._call.inputValues[0].value.toBigInt(); + } + + get _pollId(): BigInt { + return this._call.inputValues[1].value.toBigInt(); + } +} + +export class MergeMaciStateAqSubRootsCall__Outputs { + _call: MergeMaciStateAqSubRootsCall; + + constructor(call: MergeMaciStateAqSubRootsCall) { + this._call = call; + } +} + +export class MergeMessageAqCall extends ethereum.Call { + get inputs(): MergeMessageAqCall__Inputs { + return new MergeMessageAqCall__Inputs(this); + } + + get outputs(): MergeMessageAqCall__Outputs { + return new MergeMessageAqCall__Outputs(this); + } +} + +export class MergeMessageAqCall__Inputs { + _call: MergeMessageAqCall; + + constructor(call: MergeMessageAqCall) { + this._call = call; + } +} + +export class MergeMessageAqCall__Outputs { + _call: MergeMessageAqCall; + + constructor(call: MergeMessageAqCall) { + this._call = call; + } +} + +export class MergeMessageAqSubRootsCall extends ethereum.Call { + get inputs(): MergeMessageAqSubRootsCall__Inputs { + return new MergeMessageAqSubRootsCall__Inputs(this); + } + + get outputs(): MergeMessageAqSubRootsCall__Outputs { + return new MergeMessageAqSubRootsCall__Outputs(this); + } +} + +export class MergeMessageAqSubRootsCall__Inputs { + _call: MergeMessageAqSubRootsCall; + + constructor(call: MergeMessageAqSubRootsCall) { + this._call = call; + } + + get _numSrQueueOps(): BigInt { + return this._call.inputValues[0].value.toBigInt(); + } +} + +export class MergeMessageAqSubRootsCall__Outputs { + _call: MergeMessageAqSubRootsCall; + + constructor(call: MergeMessageAqSubRootsCall) { + this._call = call; + } +} + +export class PublishMessageCall extends ethereum.Call { + get inputs(): PublishMessageCall__Inputs { + return new PublishMessageCall__Inputs(this); + } + + get outputs(): PublishMessageCall__Outputs { + return new PublishMessageCall__Outputs(this); + } +} + +export class PublishMessageCall__Inputs { + _call: PublishMessageCall; + + constructor(call: PublishMessageCall) { + this._call = call; + } + + get _message(): PublishMessageCall_messageStruct { + return changetype( + this._call.inputValues[0].value.toTuple() + ); + } + + get _encPubKey(): PublishMessageCall_encPubKeyStruct { + return changetype( + this._call.inputValues[1].value.toTuple() + ); + } +} + +export class PublishMessageCall__Outputs { + _call: PublishMessageCall; + + constructor(call: PublishMessageCall) { + this._call = call; + } +} + +export class PublishMessageCall_messageStruct extends ethereum.Tuple { + get msgType(): BigInt { + return this[0].toBigInt(); + } + + get data(): Array { + return this[1].toBigIntArray(); + } +} + +export class PublishMessageCall_encPubKeyStruct extends ethereum.Tuple { + get x(): BigInt { + return this[0].toBigInt(); + } + + get y(): BigInt { + return this[1].toBigInt(); + } +} + +export class RenounceOwnershipCall extends ethereum.Call { + get inputs(): RenounceOwnershipCall__Inputs { + return new RenounceOwnershipCall__Inputs(this); + } + + get outputs(): RenounceOwnershipCall__Outputs { + return new RenounceOwnershipCall__Outputs(this); + } +} + +export class RenounceOwnershipCall__Inputs { + _call: RenounceOwnershipCall; + + constructor(call: RenounceOwnershipCall) { + this._call = call; + } +} + +export class RenounceOwnershipCall__Outputs { + _call: RenounceOwnershipCall; + + constructor(call: RenounceOwnershipCall) { + this._call = call; + } +} + +export class TopupCall extends ethereum.Call { + get inputs(): TopupCall__Inputs { + return new TopupCall__Inputs(this); + } + + get outputs(): TopupCall__Outputs { + return new TopupCall__Outputs(this); + } +} + +export class TopupCall__Inputs { + _call: TopupCall; + + constructor(call: TopupCall) { + this._call = call; + } + + get stateIndex(): BigInt { + return this._call.inputValues[0].value.toBigInt(); + } + + get amount(): BigInt { + return this._call.inputValues[1].value.toBigInt(); + } +} + +export class TopupCall__Outputs { + _call: TopupCall; + + constructor(call: TopupCall) { + this._call = call; + } +} + +export class TransferOwnershipCall extends ethereum.Call { + get inputs(): TransferOwnershipCall__Inputs { + return new TransferOwnershipCall__Inputs(this); + } + + get outputs(): TransferOwnershipCall__Outputs { + return new TransferOwnershipCall__Outputs(this); + } +} + +export class TransferOwnershipCall__Inputs { + _call: TransferOwnershipCall; + + constructor(call: TransferOwnershipCall) { + this._call = call; + } + + get newOwner(): Address { + return this._call.inputValues[0].value.toAddress(); + } +} + +export class TransferOwnershipCall__Outputs { + _call: TransferOwnershipCall; + + constructor(call: TransferOwnershipCall) { + this._call = call; + } +} diff --git a/subgraph/generated/FundingRoundFactory/Token.ts b/subgraph/generated/ClrFund/Token.ts similarity index 100% rename from subgraph/generated/FundingRoundFactory/Token.ts rename to subgraph/generated/ClrFund/Token.ts diff --git a/subgraph/generated/FundingRoundFactory/MACIFactory.ts b/subgraph/generated/FundingRoundFactory/MACIFactory.ts deleted file mode 100644 index a806996ad..000000000 --- a/subgraph/generated/FundingRoundFactory/MACIFactory.ts +++ /dev/null @@ -1,643 +0,0 @@ -// THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. - -import { - ethereum, - JSONValue, - TypedMap, - Entity, - Bytes, - Address, - BigInt -} from "@graphprotocol/graph-ts"; - -export class MaciDeployed extends ethereum.Event { - get params(): MaciDeployed__Params { - return new MaciDeployed__Params(this); - } -} - -export class MaciDeployed__Params { - _event: MaciDeployed; - - constructor(event: MaciDeployed) { - this._event = event; - } - - get _maci(): Address { - return this._event.parameters[0].value.toAddress(); - } -} - -export class MaciParametersChanged extends ethereum.Event { - get params(): MaciParametersChanged__Params { - return new MaciParametersChanged__Params(this); - } -} - -export class MaciParametersChanged__Params { - _event: MaciParametersChanged; - - constructor(event: MaciParametersChanged) { - this._event = event; - } -} - -export class OwnershipTransferred extends ethereum.Event { - get params(): OwnershipTransferred__Params { - return new OwnershipTransferred__Params(this); - } -} - -export class OwnershipTransferred__Params { - _event: OwnershipTransferred; - - constructor(event: OwnershipTransferred) { - this._event = event; - } - - get previousOwner(): Address { - return this._event.parameters[0].value.toAddress(); - } - - get newOwner(): Address { - return this._event.parameters[1].value.toAddress(); - } -} - -export class MACIFactory__batchSizesResult { - value0: i32; - value1: i32; - - constructor(value0: i32, value1: i32) { - this.value0 = value0; - this.value1 = value1; - } - - toMap(): TypedMap { - let map = new TypedMap(); - map.set( - "value0", - ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(this.value0)) - ); - map.set( - "value1", - ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(this.value1)) - ); - return map; - } - - getTallyBatchSize(): i32 { - return this.value0; - } - - getMessageBatchSize(): i32 { - return this.value1; - } -} - -export class MACIFactory__deployMaciInput_coordinatorPubKeyStruct extends ethereum.Tuple { - get x(): BigInt { - return this[0].toBigInt(); - } - - get y(): BigInt { - return this[1].toBigInt(); - } -} - -export class MACIFactory__maxValuesResult { - value0: BigInt; - value1: BigInt; - value2: BigInt; - - constructor(value0: BigInt, value1: BigInt, value2: BigInt) { - this.value0 = value0; - this.value1 = value1; - this.value2 = value2; - } - - toMap(): TypedMap { - let map = new TypedMap(); - map.set("value0", ethereum.Value.fromUnsignedBigInt(this.value0)); - map.set("value1", ethereum.Value.fromUnsignedBigInt(this.value1)); - map.set("value2", ethereum.Value.fromUnsignedBigInt(this.value2)); - return map; - } - - getMaxUsers(): BigInt { - return this.value0; - } - - getMaxMessages(): BigInt { - return this.value1; - } - - getMaxVoteOptions(): BigInt { - return this.value2; - } -} - -export class MACIFactory__treeDepthsResult { - value0: i32; - value1: i32; - value2: i32; - - constructor(value0: i32, value1: i32, value2: i32) { - this.value0 = value0; - this.value1 = value1; - this.value2 = value2; - } - - toMap(): TypedMap { - let map = new TypedMap(); - map.set( - "value0", - ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(this.value0)) - ); - map.set( - "value1", - ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(this.value1)) - ); - map.set( - "value2", - ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(this.value2)) - ); - return map; - } - - getStateTreeDepth(): i32 { - return this.value0; - } - - getMessageTreeDepth(): i32 { - return this.value1; - } - - getVoteOptionTreeDepth(): i32 { - return this.value2; - } -} - -export class MACIFactory extends ethereum.SmartContract { - static bind(address: Address): MACIFactory { - return new MACIFactory("MACIFactory", address); - } - - batchSizes(): MACIFactory__batchSizesResult { - let result = super.call("batchSizes", "batchSizes():(uint8,uint8)", []); - - return new MACIFactory__batchSizesResult( - result[0].toI32(), - result[1].toI32() - ); - } - - try_batchSizes(): ethereum.CallResult { - let result = super.tryCall("batchSizes", "batchSizes():(uint8,uint8)", []); - if (result.reverted) { - return new ethereum.CallResult(); - } - let value = result.value; - return ethereum.CallResult.fromValue( - new MACIFactory__batchSizesResult(value[0].toI32(), value[1].toI32()) - ); - } - - batchUstVerifier(): Address { - let result = super.call( - "batchUstVerifier", - "batchUstVerifier():(address)", - [] - ); - - return result[0].toAddress(); - } - - try_batchUstVerifier(): ethereum.CallResult
{ - let result = super.tryCall( - "batchUstVerifier", - "batchUstVerifier():(address)", - [] - ); - if (result.reverted) { - return new ethereum.CallResult(); - } - let value = result.value; - return ethereum.CallResult.fromValue(value[0].toAddress()); - } - - deployMaci( - _signUpGatekeeper: Address, - _initialVoiceCreditProxy: Address, - _coordinator: Address, - _coordinatorPubKey: MACIFactory__deployMaciInput_coordinatorPubKeyStruct - ): Address { - let result = super.call( - "deployMaci", - "deployMaci(address,address,address,(uint256,uint256)):(address)", - [ - ethereum.Value.fromAddress(_signUpGatekeeper), - ethereum.Value.fromAddress(_initialVoiceCreditProxy), - ethereum.Value.fromAddress(_coordinator), - ethereum.Value.fromTuple(_coordinatorPubKey) - ] - ); - - return result[0].toAddress(); - } - - try_deployMaci( - _signUpGatekeeper: Address, - _initialVoiceCreditProxy: Address, - _coordinator: Address, - _coordinatorPubKey: MACIFactory__deployMaciInput_coordinatorPubKeyStruct - ): ethereum.CallResult
{ - let result = super.tryCall( - "deployMaci", - "deployMaci(address,address,address,(uint256,uint256)):(address)", - [ - ethereum.Value.fromAddress(_signUpGatekeeper), - ethereum.Value.fromAddress(_initialVoiceCreditProxy), - ethereum.Value.fromAddress(_coordinator), - ethereum.Value.fromTuple(_coordinatorPubKey) - ] - ); - if (result.reverted) { - return new ethereum.CallResult(); - } - let value = result.value; - return ethereum.CallResult.fromValue(value[0].toAddress()); - } - - maxValues(): MACIFactory__maxValuesResult { - let result = super.call( - "maxValues", - "maxValues():(uint256,uint256,uint256)", - [] - ); - - return new MACIFactory__maxValuesResult( - result[0].toBigInt(), - result[1].toBigInt(), - result[2].toBigInt() - ); - } - - try_maxValues(): ethereum.CallResult { - let result = super.tryCall( - "maxValues", - "maxValues():(uint256,uint256,uint256)", - [] - ); - if (result.reverted) { - return new ethereum.CallResult(); - } - let value = result.value; - return ethereum.CallResult.fromValue( - new MACIFactory__maxValuesResult( - value[0].toBigInt(), - value[1].toBigInt(), - value[2].toBigInt() - ) - ); - } - - owner(): Address { - let result = super.call("owner", "owner():(address)", []); - - return result[0].toAddress(); - } - - try_owner(): ethereum.CallResult
{ - let result = super.tryCall("owner", "owner():(address)", []); - if (result.reverted) { - return new ethereum.CallResult(); - } - let value = result.value; - return ethereum.CallResult.fromValue(value[0].toAddress()); - } - - qvtVerifier(): Address { - let result = super.call("qvtVerifier", "qvtVerifier():(address)", []); - - return result[0].toAddress(); - } - - try_qvtVerifier(): ethereum.CallResult
{ - let result = super.tryCall("qvtVerifier", "qvtVerifier():(address)", []); - if (result.reverted) { - return new ethereum.CallResult(); - } - let value = result.value; - return ethereum.CallResult.fromValue(value[0].toAddress()); - } - - signUpDuration(): BigInt { - let result = super.call("signUpDuration", "signUpDuration():(uint256)", []); - - return result[0].toBigInt(); - } - - try_signUpDuration(): ethereum.CallResult { - let result = super.tryCall( - "signUpDuration", - "signUpDuration():(uint256)", - [] - ); - if (result.reverted) { - return new ethereum.CallResult(); - } - let value = result.value; - return ethereum.CallResult.fromValue(value[0].toBigInt()); - } - - treeDepths(): MACIFactory__treeDepthsResult { - let result = super.call( - "treeDepths", - "treeDepths():(uint8,uint8,uint8)", - [] - ); - - return new MACIFactory__treeDepthsResult( - result[0].toI32(), - result[1].toI32(), - result[2].toI32() - ); - } - - try_treeDepths(): ethereum.CallResult { - let result = super.tryCall( - "treeDepths", - "treeDepths():(uint8,uint8,uint8)", - [] - ); - if (result.reverted) { - return new ethereum.CallResult(); - } - let value = result.value; - return ethereum.CallResult.fromValue( - new MACIFactory__treeDepthsResult( - value[0].toI32(), - value[1].toI32(), - value[2].toI32() - ) - ); - } - - votingDuration(): BigInt { - let result = super.call("votingDuration", "votingDuration():(uint256)", []); - - return result[0].toBigInt(); - } - - try_votingDuration(): ethereum.CallResult { - let result = super.tryCall( - "votingDuration", - "votingDuration():(uint256)", - [] - ); - if (result.reverted) { - return new ethereum.CallResult(); - } - let value = result.value; - return ethereum.CallResult.fromValue(value[0].toBigInt()); - } -} - -export class ConstructorCall extends ethereum.Call { - get inputs(): ConstructorCall__Inputs { - return new ConstructorCall__Inputs(this); - } - - get outputs(): ConstructorCall__Outputs { - return new ConstructorCall__Outputs(this); - } -} - -export class ConstructorCall__Inputs { - _call: ConstructorCall; - - constructor(call: ConstructorCall) { - this._call = call; - } - - get _stateTreeDepth(): i32 { - return this._call.inputValues[0].value.toI32(); - } - - get _messageTreeDepth(): i32 { - return this._call.inputValues[1].value.toI32(); - } - - get _voteOptionTreeDepth(): i32 { - return this._call.inputValues[2].value.toI32(); - } - - get _tallyBatchSize(): i32 { - return this._call.inputValues[3].value.toI32(); - } - - get _messageBatchSize(): i32 { - return this._call.inputValues[4].value.toI32(); - } - - get _batchUstVerifier(): Address { - return this._call.inputValues[5].value.toAddress(); - } - - get _qvtVerifier(): Address { - return this._call.inputValues[6].value.toAddress(); - } - - get _signUpDuration(): BigInt { - return this._call.inputValues[7].value.toBigInt(); - } - - get _votingDuration(): BigInt { - return this._call.inputValues[8].value.toBigInt(); - } -} - -export class ConstructorCall__Outputs { - _call: ConstructorCall; - - constructor(call: ConstructorCall) { - this._call = call; - } -} - -export class DeployMaciCall extends ethereum.Call { - get inputs(): DeployMaciCall__Inputs { - return new DeployMaciCall__Inputs(this); - } - - get outputs(): DeployMaciCall__Outputs { - return new DeployMaciCall__Outputs(this); - } -} - -export class DeployMaciCall__Inputs { - _call: DeployMaciCall; - - constructor(call: DeployMaciCall) { - this._call = call; - } - - get _signUpGatekeeper(): Address { - return this._call.inputValues[0].value.toAddress(); - } - - get _initialVoiceCreditProxy(): Address { - return this._call.inputValues[1].value.toAddress(); - } - - get _coordinator(): Address { - return this._call.inputValues[2].value.toAddress(); - } - - get _coordinatorPubKey(): DeployMaciCall_coordinatorPubKeyStruct { - return changetype( - this._call.inputValues[3].value.toTuple() - ); - } -} - -export class DeployMaciCall__Outputs { - _call: DeployMaciCall; - - constructor(call: DeployMaciCall) { - this._call = call; - } - - get _maci(): Address { - return this._call.outputValues[0].value.toAddress(); - } -} - -export class DeployMaciCall_coordinatorPubKeyStruct extends ethereum.Tuple { - get x(): BigInt { - return this[0].toBigInt(); - } - - get y(): BigInt { - return this[1].toBigInt(); - } -} - -export class RenounceOwnershipCall extends ethereum.Call { - get inputs(): RenounceOwnershipCall__Inputs { - return new RenounceOwnershipCall__Inputs(this); - } - - get outputs(): RenounceOwnershipCall__Outputs { - return new RenounceOwnershipCall__Outputs(this); - } -} - -export class RenounceOwnershipCall__Inputs { - _call: RenounceOwnershipCall; - - constructor(call: RenounceOwnershipCall) { - this._call = call; - } -} - -export class RenounceOwnershipCall__Outputs { - _call: RenounceOwnershipCall; - - constructor(call: RenounceOwnershipCall) { - this._call = call; - } -} - -export class SetMaciParametersCall extends ethereum.Call { - get inputs(): SetMaciParametersCall__Inputs { - return new SetMaciParametersCall__Inputs(this); - } - - get outputs(): SetMaciParametersCall__Outputs { - return new SetMaciParametersCall__Outputs(this); - } -} - -export class SetMaciParametersCall__Inputs { - _call: SetMaciParametersCall; - - constructor(call: SetMaciParametersCall) { - this._call = call; - } - - get _stateTreeDepth(): i32 { - return this._call.inputValues[0].value.toI32(); - } - - get _messageTreeDepth(): i32 { - return this._call.inputValues[1].value.toI32(); - } - - get _voteOptionTreeDepth(): i32 { - return this._call.inputValues[2].value.toI32(); - } - - get _tallyBatchSize(): i32 { - return this._call.inputValues[3].value.toI32(); - } - - get _messageBatchSize(): i32 { - return this._call.inputValues[4].value.toI32(); - } - - get _batchUstVerifier(): Address { - return this._call.inputValues[5].value.toAddress(); - } - - get _qvtVerifier(): Address { - return this._call.inputValues[6].value.toAddress(); - } - - get _signUpDuration(): BigInt { - return this._call.inputValues[7].value.toBigInt(); - } - - get _votingDuration(): BigInt { - return this._call.inputValues[8].value.toBigInt(); - } -} - -export class SetMaciParametersCall__Outputs { - _call: SetMaciParametersCall; - - constructor(call: SetMaciParametersCall) { - this._call = call; - } -} - -export class TransferOwnershipCall extends ethereum.Call { - get inputs(): TransferOwnershipCall__Inputs { - return new TransferOwnershipCall__Inputs(this); - } - - get outputs(): TransferOwnershipCall__Outputs { - return new TransferOwnershipCall__Outputs(this); - } -} - -export class TransferOwnershipCall__Inputs { - _call: TransferOwnershipCall; - - constructor(call: TransferOwnershipCall) { - this._call = call; - } - - get newOwner(): Address { - return this._call.inputValues[0].value.toAddress(); - } -} - -export class TransferOwnershipCall__Outputs { - _call: TransferOwnershipCall; - - constructor(call: TransferOwnershipCall) { - this._call = call; - } -} diff --git a/subgraph/generated/OptimisticRecipientRegistry/OptimisticRecipientRegistry.ts b/subgraph/generated/OptimisticRecipientRegistry/OptimisticRecipientRegistry.ts index 20d805ce5..afb85c261 100644 --- a/subgraph/generated/OptimisticRecipientRegistry/OptimisticRecipientRegistry.ts +++ b/subgraph/generated/OptimisticRecipientRegistry/OptimisticRecipientRegistry.ts @@ -255,6 +255,29 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { return ethereum.CallResult.fromValue(value[0].toAddress()); } + getRecipientCount(): BigInt { + let result = super.call( + "getRecipientCount", + "getRecipientCount():(uint256)", + [] + ); + + return result[0].toBigInt(); + } + + try_getRecipientCount(): ethereum.CallResult { + let result = super.tryCall( + "getRecipientCount", + "getRecipientCount():(uint256)", + [] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBigInt()); + } + maxRecipients(): BigInt { let result = super.call("maxRecipients", "maxRecipients():(uint256)", []); diff --git a/subgraph/generated/schema.ts b/subgraph/generated/schema.ts index b18f21bdc..7a5649125 100644 --- a/subgraph/generated/schema.ts +++ b/subgraph/generated/schema.ts @@ -11,7 +11,7 @@ import { BigDecimal } from "@graphprotocol/graph-ts"; -export class FundingRoundFactory extends Entity { +export class ClrFund extends Entity { constructor(id: string) { super(); this.set("id", Value.fromString(id)); @@ -19,20 +19,18 @@ export class FundingRoundFactory extends Entity { save(): void { let id = this.get("id"); - assert(id != null, "Cannot save FundingRoundFactory entity without an ID"); + assert(id != null, "Cannot save ClrFund entity without an ID"); if (id) { assert( id.kind == ValueKind.STRING, - `Entities of type FundingRoundFactory must have an ID of type String but the id '${id.displayData()}' is of type ${id.displayKind()}` + `Entities of type ClrFund must have an ID of type String but the id '${id.displayData()}' is of type ${id.displayKind()}` ); - store.set("FundingRoundFactory", id.toString(), this); + store.set("ClrFund", id.toString(), this); } } - static load(id: string): FundingRoundFactory | null { - return changetype( - store.get("FundingRoundFactory", id) - ); + static load(id: string): ClrFund | null { + return changetype(store.get("ClrFund", id)); } get id(): string { @@ -527,13 +525,13 @@ export class Message extends Entity { } } - get iv(): BigInt { - let value = this.get("iv"); + get msgType(): BigInt { + let value = this.get("msgType"); return value!.toBigInt(); } - set iv(value: BigInt) { - this.set("iv", Value.fromBigInt(value)); + set msgType(value: BigInt) { + this.set("msgType", Value.fromBigInt(value)); } get publicKey(): string | null { @@ -764,8 +762,8 @@ export class FundingRound extends Entity { this.set("id", Value.fromString(value)); } - get fundingRoundFactory(): string | null { - let value = this.get("fundingRoundFactory"); + get clrFund(): string | null { + let value = this.get("clrFund"); if (!value || value.kind == ValueKind.NULL) { return null; } else { @@ -773,11 +771,11 @@ export class FundingRound extends Entity { } } - set fundingRoundFactory(value: string | null) { + set clrFund(value: string | null) { if (!value) { - this.unset("fundingRoundFactory"); + this.unset("clrFund"); } else { - this.set("fundingRoundFactory", Value.fromString(value)); + this.set("clrFund", Value.fromString(value)); } } @@ -798,6 +796,23 @@ export class FundingRound extends Entity { } } + get pollAddress(): Bytes | null { + let value = this.get("pollAddress"); + if (!value || value.kind == ValueKind.NULL) { + return null; + } else { + return value.toBytes(); + } + } + + set pollAddress(value: Bytes | null) { + if (!value) { + this.unset("pollAddress"); + } else { + this.set("pollAddress", Value.fromBytes(value)); + } + } + get messages(): Array | null { let value = this.get("messages"); if (!value || value.kind == ValueKind.NULL) { @@ -960,6 +975,67 @@ export class FundingRound extends Entity { } } + get stateTreeDepth(): i32 { + let value = this.get("stateTreeDepth"); + return value!.toI32(); + } + + set stateTreeDepth(value: i32) { + this.set("stateTreeDepth", Value.fromI32(value)); + } + + get messageTreeDepth(): i32 { + let value = this.get("messageTreeDepth"); + return value!.toI32(); + } + + set messageTreeDepth(value: i32) { + this.set("messageTreeDepth", Value.fromI32(value)); + } + + get voteOptionTreeDepth(): i32 { + let value = this.get("voteOptionTreeDepth"); + return value!.toI32(); + } + + set voteOptionTreeDepth(value: i32) { + this.set("voteOptionTreeDepth", Value.fromI32(value)); + } + + get coordinatorPubKeyX(): BigInt | null { + let value = this.get("coordinatorPubKeyX"); + if (!value || value.kind == ValueKind.NULL) { + return null; + } else { + return value.toBigInt(); + } + } + + set coordinatorPubKeyX(value: BigInt | null) { + if (!value) { + this.unset("coordinatorPubKeyX"); + } else { + this.set("coordinatorPubKeyX", Value.fromBigInt(value)); + } + } + + get coordinatorPubKeyY(): BigInt | null { + let value = this.get("coordinatorPubKeyY"); + if (!value || value.kind == ValueKind.NULL) { + return null; + } else { + return value.toBigInt(); + } + } + + set coordinatorPubKeyY(value: BigInt | null) { + if (!value) { + this.unset("coordinatorPubKeyY"); + } else { + this.set("coordinatorPubKeyY", Value.fromBigInt(value)); + } + } + get coordinator(): Bytes | null { let value = this.get("coordinator"); if (!value || value.kind == ValueKind.NULL) { @@ -1202,8 +1278,8 @@ export class RecipientRegistry extends Entity { this.set("id", Value.fromString(value)); } - get fundingRoundFactory(): string | null { - let value = this.get("fundingRoundFactory"); + get clrFund(): string | null { + let value = this.get("clrFund"); if (!value || value.kind == ValueKind.NULL) { return null; } else { @@ -1211,11 +1287,11 @@ export class RecipientRegistry extends Entity { } } - set fundingRoundFactory(value: string | null) { + set clrFund(value: string | null) { if (!value) { - this.unset("fundingRoundFactory"); + this.unset("clrFund"); } else { - this.set("fundingRoundFactory", Value.fromString(value)); + this.set("clrFund", Value.fromString(value)); } } @@ -1669,13 +1745,13 @@ export class ContributorRegistry extends Entity { this.set("id", Value.fromString(value)); } - get fundingRoundFactory(): string { - let value = this.get("fundingRoundFactory"); + get clrFund(): string { + let value = this.get("clrFund"); return value!.toString(); } - set fundingRoundFactory(value: string) { - this.set("fundingRoundFactory", Value.fromString(value)); + set clrFund(value: string) { + this.set("clrFund", Value.fromString(value)); } get context(): string | null { diff --git a/subgraph/generated/templates.ts b/subgraph/generated/templates.ts index 754dd9bd0..a5ec12ccf 100644 --- a/subgraph/generated/templates.ts +++ b/subgraph/generated/templates.ts @@ -57,3 +57,13 @@ export class MACI extends DataSourceTemplate { DataSourceTemplate.createWithContext("MACI", [address.toHex()], context); } } + +export class Poll extends DataSourceTemplate { + static create(address: Address): void { + DataSourceTemplate.create("Poll", [address.toHex()]); + } + + static createWithContext(address: Address, context: DataSourceContext): void { + DataSourceTemplate.createWithContext("Poll", [address.toHex()], context); + } +} diff --git a/subgraph/generated/templates/FundingRound/FundingRound.ts b/subgraph/generated/templates/FundingRound/FundingRound.ts index 6c3bcd6cb..bde4327d0 100644 --- a/subgraph/generated/templates/FundingRound/FundingRound.ts +++ b/subgraph/generated/templates/FundingRound/FundingRound.ts @@ -371,6 +371,21 @@ export class FundingRound extends ethereum.SmartContract { return ethereum.CallResult.fromValue(value[0].toString()); } + poll(): Address { + let result = super.call("poll", "poll():(address)", []); + + return result[0].toAddress(); + } + + try_poll(): ethereum.CallResult
{ + let result = super.tryCall("poll", "poll():(address)", []); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toAddress()); + } + totalSpent(): BigInt { let result = super.call("totalSpent", "totalSpent():(uint256)", []); diff --git a/subgraph/generated/templates/FundingRound/OptimisticRecipientRegistry.ts b/subgraph/generated/templates/FundingRound/OptimisticRecipientRegistry.ts index 20d805ce5..afb85c261 100644 --- a/subgraph/generated/templates/FundingRound/OptimisticRecipientRegistry.ts +++ b/subgraph/generated/templates/FundingRound/OptimisticRecipientRegistry.ts @@ -255,6 +255,29 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { return ethereum.CallResult.fromValue(value[0].toAddress()); } + getRecipientCount(): BigInt { + let result = super.call( + "getRecipientCount", + "getRecipientCount():(uint256)", + [] + ); + + return result[0].toBigInt(); + } + + try_getRecipientCount(): ethereum.CallResult { + let result = super.tryCall( + "getRecipientCount", + "getRecipientCount():(uint256)", + [] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBigInt()); + } + maxRecipients(): BigInt { let result = super.call("maxRecipients", "maxRecipients():(uint256)", []); diff --git a/subgraph/generated/templates/MACI/FundingRound.ts b/subgraph/generated/templates/MACI/FundingRound.ts index 6c3bcd6cb..bde4327d0 100644 --- a/subgraph/generated/templates/MACI/FundingRound.ts +++ b/subgraph/generated/templates/MACI/FundingRound.ts @@ -371,6 +371,21 @@ export class FundingRound extends ethereum.SmartContract { return ethereum.CallResult.fromValue(value[0].toString()); } + poll(): Address { + let result = super.call("poll", "poll():(address)", []); + + return result[0].toAddress(); + } + + try_poll(): ethereum.CallResult
{ + let result = super.tryCall("poll", "poll():(address)", []); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toAddress()); + } + totalSpent(): BigInt { let result = super.call("totalSpent", "totalSpent():(uint256)", []); diff --git a/subgraph/generated/templates/MACI/MACI.ts b/subgraph/generated/templates/MACI/MACI.ts index 34c923d6f..18150f402 100644 --- a/subgraph/generated/templates/MACI/MACI.ts +++ b/subgraph/generated/templates/MACI/MACI.ts @@ -10,43 +10,35 @@ import { BigInt } from "@graphprotocol/graph-ts"; -export class PublishMessage extends ethereum.Event { - get params(): PublishMessage__Params { - return new PublishMessage__Params(this); +export class DeployPoll extends ethereum.Event { + get params(): DeployPoll__Params { + return new DeployPoll__Params(this); } } -export class PublishMessage__Params { - _event: PublishMessage; +export class DeployPoll__Params { + _event: DeployPoll; - constructor(event: PublishMessage) { + constructor(event: DeployPoll) { this._event = event; } - get _message(): PublishMessage_messageStruct { - return changetype( - this._event.parameters[0].value.toTuple() - ); + get _pollId(): BigInt { + return this._event.parameters[0].value.toBigInt(); } - get _encPubKey(): PublishMessage_encPubKeyStruct { - return changetype( - this._event.parameters[1].value.toTuple() - ); - } -} - -export class PublishMessage_messageStruct extends ethereum.Tuple { - get iv(): BigInt { - return this[0].toBigInt(); + get _pollAddr(): Address { + return this._event.parameters[1].value.toAddress(); } - get data(): Array { - return this[1].toBigIntArray(); + get _pubKey(): DeployPoll_pubKeyStruct { + return changetype( + this._event.parameters[2].value.toTuple() + ); } } -export class PublishMessage_encPubKeyStruct extends ethereum.Tuple { +export class DeployPoll_pubKeyStruct extends ethereum.Tuple { get x(): BigInt { return this[0].toBigInt(); } @@ -56,586 +48,273 @@ export class PublishMessage_encPubKeyStruct extends ethereum.Tuple { } } -export class SignUp extends ethereum.Event { - get params(): SignUp__Params { - return new SignUp__Params(this); +export class Init extends ethereum.Event { + get params(): Init__Params { + return new Init__Params(this); } } -export class SignUp__Params { - _event: SignUp; +export class Init__Params { + _event: Init; - constructor(event: SignUp) { + constructor(event: Init) { this._event = event; } - get _userPubKey(): SignUp_userPubKeyStruct { - return changetype( - this._event.parameters[0].value.toTuple() - ); - } - - get _stateIndex(): BigInt { - return this._event.parameters[1].value.toBigInt(); + get _vkRegistry(): Address { + return this._event.parameters[0].value.toAddress(); } - get _voiceCreditBalance(): BigInt { - return this._event.parameters[2].value.toBigInt(); + get _topupCredit(): Address { + return this._event.parameters[1].value.toAddress(); } } -export class SignUp_userPubKeyStruct extends ethereum.Tuple { - get x(): BigInt { - return this[0].toBigInt(); - } - - get y(): BigInt { - return this[1].toBigInt(); +export class MergeStateAq extends ethereum.Event { + get params(): MergeStateAq__Params { + return new MergeStateAq__Params(this); } } -export class MACI__coordinatorPubKeyResult { - value0: BigInt; - value1: BigInt; - - constructor(value0: BigInt, value1: BigInt) { - this.value0 = value0; - this.value1 = value1; - } +export class MergeStateAq__Params { + _event: MergeStateAq; - toMap(): TypedMap { - let map = new TypedMap(); - map.set("value0", ethereum.Value.fromUnsignedBigInt(this.value0)); - map.set("value1", ethereum.Value.fromUnsignedBigInt(this.value1)); - return map; - } - - getX(): BigInt { - return this.value0; + constructor(event: MergeStateAq) { + this._event = event; } - getY(): BigInt { - return this.value1; + get _pollId(): BigInt { + return this._event.parameters[0].value.toBigInt(); } } -export class MACI__genBatchUstPublicSignalsInput_ecdhPubKeysStruct extends ethereum.Tuple { - get x(): BigInt { - return this[0].toBigInt(); - } - - get y(): BigInt { - return this[1].toBigInt(); +export class MergeStateAqSubRoots extends ethereum.Event { + get params(): MergeStateAqSubRoots__Params { + return new MergeStateAqSubRoots__Params(this); } } -export class MACI__hashMessageInput_messageStruct extends ethereum.Tuple { - get iv(): BigInt { - return this[0].toBigInt(); - } - - get data(): Array { - return this[1].toBigIntArray(); - } -} +export class MergeStateAqSubRoots__Params { + _event: MergeStateAqSubRoots; -export class MACI__hashStateLeafInput_stateLeafStruct extends ethereum.Tuple { - get pubKey(): MACI__hashStateLeafInput_stateLeafPubKeyStruct { - return changetype( - this[0].toTuple() - ); + constructor(event: MergeStateAqSubRoots) { + this._event = event; } - get voteOptionTreeRoot(): BigInt { - return this[1].toBigInt(); + get _pollId(): BigInt { + return this._event.parameters[0].value.toBigInt(); } - get voiceCreditBalance(): BigInt { - return this[2].toBigInt(); - } - - get nonce(): BigInt { - return this[3].toBigInt(); + get _numSrQueueOps(): BigInt { + return this._event.parameters[1].value.toBigInt(); } } -export class MACI__hashStateLeafInput_stateLeafPubKeyStruct extends ethereum.Tuple { - get x(): BigInt { - return this[0].toBigInt(); - } - - get y(): BigInt { - return this[1].toBigInt(); +export class OwnershipTransferred extends ethereum.Event { + get params(): OwnershipTransferred__Params { + return new OwnershipTransferred__Params(this); } } -export class MACI__treeDepthsResult { - value0: i32; - value1: i32; - value2: i32; - - constructor(value0: i32, value1: i32, value2: i32) { - this.value0 = value0; - this.value1 = value1; - this.value2 = value2; - } - - toMap(): TypedMap { - let map = new TypedMap(); - map.set( - "value0", - ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(this.value0)) - ); - map.set( - "value1", - ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(this.value1)) - ); - map.set( - "value2", - ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(this.value2)) - ); - return map; - } +export class OwnershipTransferred__Params { + _event: OwnershipTransferred; - getStateTreeDepth(): i32 { - return this.value0; + constructor(event: OwnershipTransferred) { + this._event = event; } - getMessageTreeDepth(): i32 { - return this.value1; + get previousOwner(): Address { + return this._event.parameters[0].value.toAddress(); } - getVoteOptionTreeDepth(): i32 { - return this.value2; + get newOwner(): Address { + return this._event.parameters[1].value.toAddress(); } } -export class MACI extends ethereum.SmartContract { - static bind(address: Address): MACI { - return new MACI("MACI", address); - } - - calcEmptyVoteOptionTreeRoot(_levels: i32): BigInt { - let result = super.call( - "calcEmptyVoteOptionTreeRoot", - "calcEmptyVoteOptionTreeRoot(uint8):(uint256)", - [ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(_levels))] - ); - - return result[0].toBigInt(); - } - - try_calcEmptyVoteOptionTreeRoot(_levels: i32): ethereum.CallResult { - let result = super.tryCall( - "calcEmptyVoteOptionTreeRoot", - "calcEmptyVoteOptionTreeRoot(uint8):(uint256)", - [ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(_levels))] - ); - if (result.reverted) { - return new ethereum.CallResult(); - } - let value = result.value; - return ethereum.CallResult.fromValue(value[0].toBigInt()); - } - - calcSignUpDeadline(): BigInt { - let result = super.call( - "calcSignUpDeadline", - "calcSignUpDeadline():(uint256)", - [] - ); - - return result[0].toBigInt(); - } - - try_calcSignUpDeadline(): ethereum.CallResult { - let result = super.tryCall( - "calcSignUpDeadline", - "calcSignUpDeadline():(uint256)", - [] - ); - if (result.reverted) { - return new ethereum.CallResult(); - } - let value = result.value; - return ethereum.CallResult.fromValue(value[0].toBigInt()); +export class SignUp extends ethereum.Event { + get params(): SignUp__Params { + return new SignUp__Params(this); } +} - calcVotingDeadline(): BigInt { - let result = super.call( - "calcVotingDeadline", - "calcVotingDeadline():(uint256)", - [] - ); - - return result[0].toBigInt(); - } +export class SignUp__Params { + _event: SignUp; - try_calcVotingDeadline(): ethereum.CallResult { - let result = super.tryCall( - "calcVotingDeadline", - "calcVotingDeadline():(uint256)", - [] - ); - if (result.reverted) { - return new ethereum.CallResult(); - } - let value = result.value; - return ethereum.CallResult.fromValue(value[0].toBigInt()); + constructor(event: SignUp) { + this._event = event; } - computeEmptyQuinRoot(_treeLevels: i32, _zeroValue: BigInt): BigInt { - let result = super.call( - "computeEmptyQuinRoot", - "computeEmptyQuinRoot(uint8,uint256):(uint256)", - [ - ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(_treeLevels)), - ethereum.Value.fromUnsignedBigInt(_zeroValue) - ] - ); - - return result[0].toBigInt(); + get _stateIndex(): BigInt { + return this._event.parameters[0].value.toBigInt(); } - try_computeEmptyQuinRoot( - _treeLevels: i32, - _zeroValue: BigInt - ): ethereum.CallResult { - let result = super.tryCall( - "computeEmptyQuinRoot", - "computeEmptyQuinRoot(uint8,uint256):(uint256)", - [ - ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(_treeLevels)), - ethereum.Value.fromUnsignedBigInt(_zeroValue) - ] + get _userPubKey(): SignUp_userPubKeyStruct { + return changetype( + this._event.parameters[1].value.toTuple() ); - if (result.reverted) { - return new ethereum.CallResult(); - } - let value = result.value; - return ethereum.CallResult.fromValue(value[0].toBigInt()); } - computeEmptyRoot(_treeLevels: i32, _zeroValue: BigInt): BigInt { - let result = super.call( - "computeEmptyRoot", - "computeEmptyRoot(uint8,uint256):(uint256)", - [ - ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(_treeLevels)), - ethereum.Value.fromUnsignedBigInt(_zeroValue) - ] - ); - - return result[0].toBigInt(); + get _voiceCreditBalance(): BigInt { + return this._event.parameters[2].value.toBigInt(); } - try_computeEmptyRoot( - _treeLevels: i32, - _zeroValue: BigInt - ): ethereum.CallResult { - let result = super.tryCall( - "computeEmptyRoot", - "computeEmptyRoot(uint8,uint256):(uint256)", - [ - ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(_treeLevels)), - ethereum.Value.fromUnsignedBigInt(_zeroValue) - ] - ); - if (result.reverted) { - return new ethereum.CallResult(); - } - let value = result.value; - return ethereum.CallResult.fromValue(value[0].toBigInt()); + get _timestamp(): BigInt { + return this._event.parameters[3].value.toBigInt(); } +} - coordinatorAddress(): Address { - let result = super.call( - "coordinatorAddress", - "coordinatorAddress():(address)", - [] - ); - - return result[0].toAddress(); +export class SignUp_userPubKeyStruct extends ethereum.Tuple { + get x(): BigInt { + return this[0].toBigInt(); } - try_coordinatorAddress(): ethereum.CallResult
{ - let result = super.tryCall( - "coordinatorAddress", - "coordinatorAddress():(address)", - [] - ); - if (result.reverted) { - return new ethereum.CallResult(); - } - let value = result.value; - return ethereum.CallResult.fromValue(value[0].toAddress()); + get y(): BigInt { + return this[1].toBigInt(); } +} - coordinatorPubKey(): MACI__coordinatorPubKeyResult { - let result = super.call( - "coordinatorPubKey", - "coordinatorPubKey():(uint256,uint256)", - [] - ); - - return new MACI__coordinatorPubKeyResult( - result[0].toBigInt(), - result[1].toBigInt() - ); +export class MACI__deployPollInput_maxValuesStruct extends ethereum.Tuple { + get maxMessages(): BigInt { + return this[0].toBigInt(); } - try_coordinatorPubKey(): ethereum.CallResult { - let result = super.tryCall( - "coordinatorPubKey", - "coordinatorPubKey():(uint256,uint256)", - [] - ); - if (result.reverted) { - return new ethereum.CallResult(); - } - let value = result.value; - return ethereum.CallResult.fromValue( - new MACI__coordinatorPubKeyResult( - value[0].toBigInt(), - value[1].toBigInt() - ) - ); + get maxVoteOptions(): BigInt { + return this[1].toBigInt(); } +} - currentMessageBatchIndex(): BigInt { - let result = super.call( - "currentMessageBatchIndex", - "currentMessageBatchIndex():(uint256)", - [] - ); - - return result[0].toBigInt(); +export class MACI__deployPollInput_treeDepthsStruct extends ethereum.Tuple { + get intStateTreeDepth(): i32 { + return this[0].toI32(); } - try_currentMessageBatchIndex(): ethereum.CallResult { - let result = super.tryCall( - "currentMessageBatchIndex", - "currentMessageBatchIndex():(uint256)", - [] - ); - if (result.reverted) { - return new ethereum.CallResult(); - } - let value = result.value; - return ethereum.CallResult.fromValue(value[0].toBigInt()); + get messageTreeSubDepth(): i32 { + return this[1].toI32(); } - currentPerVOSpentVoiceCreditsCommitment(): BigInt { - let result = super.call( - "currentPerVOSpentVoiceCreditsCommitment", - "currentPerVOSpentVoiceCreditsCommitment():(uint256)", - [] - ); - - return result[0].toBigInt(); + get messageTreeDepth(): i32 { + return this[2].toI32(); } - try_currentPerVOSpentVoiceCreditsCommitment(): ethereum.CallResult { - let result = super.tryCall( - "currentPerVOSpentVoiceCreditsCommitment", - "currentPerVOSpentVoiceCreditsCommitment():(uint256)", - [] - ); - if (result.reverted) { - return new ethereum.CallResult(); - } - let value = result.value; - return ethereum.CallResult.fromValue(value[0].toBigInt()); + get voteOptionTreeDepth(): i32 { + return this[3].toI32(); } +} - currentQvtBatchNum(): BigInt { - let result = super.call( - "currentQvtBatchNum", - "currentQvtBatchNum():(uint256)", - [] - ); - - return result[0].toBigInt(); +export class MACI__deployPollInput_coordinatorPubKeyStruct extends ethereum.Tuple { + get x(): BigInt { + return this[0].toBigInt(); } - try_currentQvtBatchNum(): ethereum.CallResult { - let result = super.tryCall( - "currentQvtBatchNum", - "currentQvtBatchNum():(uint256)", - [] - ); - if (result.reverted) { - return new ethereum.CallResult(); - } - let value = result.value; - return ethereum.CallResult.fromValue(value[0].toBigInt()); + get y(): BigInt { + return this[1].toBigInt(); } +} - currentResultsCommitment(): BigInt { - let result = super.call( - "currentResultsCommitment", - "currentResultsCommitment():(uint256)", - [] +export class MACI__hashStateLeafInput_stateLeafStruct extends ethereum.Tuple { + get pubKey(): MACI__hashStateLeafInput_stateLeafPubKeyStruct { + return changetype( + this[0].toTuple() ); - - return result[0].toBigInt(); } - try_currentResultsCommitment(): ethereum.CallResult { - let result = super.tryCall( - "currentResultsCommitment", - "currentResultsCommitment():(uint256)", - [] - ); - if (result.reverted) { - return new ethereum.CallResult(); - } - let value = result.value; - return ethereum.CallResult.fromValue(value[0].toBigInt()); + get voiceCreditBalance(): BigInt { + return this[1].toBigInt(); } - currentSpentVoiceCreditsCommitment(): BigInt { - let result = super.call( - "currentSpentVoiceCreditsCommitment", - "currentSpentVoiceCreditsCommitment():(uint256)", - [] - ); - - return result[0].toBigInt(); + get timestamp(): BigInt { + return this[2].toBigInt(); } +} - try_currentSpentVoiceCreditsCommitment(): ethereum.CallResult { - let result = super.tryCall( - "currentSpentVoiceCreditsCommitment", - "currentSpentVoiceCreditsCommitment():(uint256)", - [] - ); - if (result.reverted) { - return new ethereum.CallResult(); - } - let value = result.value; - return ethereum.CallResult.fromValue(value[0].toBigInt()); +export class MACI__hashStateLeafInput_stateLeafPubKeyStruct extends ethereum.Tuple { + get x(): BigInt { + return this[0].toBigInt(); } - emptyVoteOptionTreeRoot(): BigInt { - let result = super.call( - "emptyVoteOptionTreeRoot", - "emptyVoteOptionTreeRoot():(uint256)", - [] - ); - - return result[0].toBigInt(); + get y(): BigInt { + return this[1].toBigInt(); } +} - try_emptyVoteOptionTreeRoot(): ethereum.CallResult { - let result = super.tryCall( - "emptyVoteOptionTreeRoot", - "emptyVoteOptionTreeRoot():(uint256)", - [] - ); - if (result.reverted) { - return new ethereum.CallResult(); - } - let value = result.value; - return ethereum.CallResult.fromValue(value[0].toBigInt()); +export class MACI extends ethereum.SmartContract { + static bind(address: Address): MACI { + return new MACI("MACI", address); } - genBatchUstPublicSignals( - _newStateRoot: BigInt, - _ecdhPubKeys: Array - ): Array { + deployPoll( + _duration: BigInt, + _maxValues: MACI__deployPollInput_maxValuesStruct, + _treeDepths: MACI__deployPollInput_treeDepthsStruct, + _coordinatorPubKey: MACI__deployPollInput_coordinatorPubKeyStruct + ): Address { let result = super.call( - "genBatchUstPublicSignals", - "genBatchUstPublicSignals(uint256,(uint256,uint256)[]):(uint256[])", + "deployPoll", + "deployPoll(uint256,(uint256,uint256),(uint8,uint8,uint8,uint8),(uint256,uint256)):(address)", [ - ethereum.Value.fromUnsignedBigInt(_newStateRoot), - ethereum.Value.fromTupleArray(_ecdhPubKeys) + ethereum.Value.fromUnsignedBigInt(_duration), + ethereum.Value.fromTuple(_maxValues), + ethereum.Value.fromTuple(_treeDepths), + ethereum.Value.fromTuple(_coordinatorPubKey) ] ); - return result[0].toBigIntArray(); + return result[0].toAddress(); } - try_genBatchUstPublicSignals( - _newStateRoot: BigInt, - _ecdhPubKeys: Array - ): ethereum.CallResult> { + try_deployPoll( + _duration: BigInt, + _maxValues: MACI__deployPollInput_maxValuesStruct, + _treeDepths: MACI__deployPollInput_treeDepthsStruct, + _coordinatorPubKey: MACI__deployPollInput_coordinatorPubKeyStruct + ): ethereum.CallResult
{ let result = super.tryCall( - "genBatchUstPublicSignals", - "genBatchUstPublicSignals(uint256,(uint256,uint256)[]):(uint256[])", + "deployPoll", + "deployPoll(uint256,(uint256,uint256),(uint8,uint8,uint8,uint8),(uint256,uint256)):(address)", [ - ethereum.Value.fromUnsignedBigInt(_newStateRoot), - ethereum.Value.fromTupleArray(_ecdhPubKeys) + ethereum.Value.fromUnsignedBigInt(_duration), + ethereum.Value.fromTuple(_maxValues), + ethereum.Value.fromTuple(_treeDepths), + ethereum.Value.fromTuple(_coordinatorPubKey) ] ); if (result.reverted) { return new ethereum.CallResult(); } let value = result.value; - return ethereum.CallResult.fromValue(value[0].toBigIntArray()); + return ethereum.CallResult.fromValue(value[0].toAddress()); } - genQvtPublicSignals( - _intermediateStateRoot: BigInt, - _newResultsCommitment: BigInt, - _newSpentVoiceCreditsCommitment: BigInt, - _newPerVOSpentVoiceCreditsCommitment: BigInt, - _totalVotes: BigInt - ): Array { - let result = super.call( - "genQvtPublicSignals", - "genQvtPublicSignals(uint256,uint256,uint256,uint256,uint256):(uint256[])", - [ - ethereum.Value.fromUnsignedBigInt(_intermediateStateRoot), - ethereum.Value.fromUnsignedBigInt(_newResultsCommitment), - ethereum.Value.fromUnsignedBigInt(_newSpentVoiceCreditsCommitment), - ethereum.Value.fromUnsignedBigInt(_newPerVOSpentVoiceCreditsCommitment), - ethereum.Value.fromUnsignedBigInt(_totalVotes) - ] - ); + getPoll(_pollId: BigInt): Address { + let result = super.call("getPoll", "getPoll(uint256):(address)", [ + ethereum.Value.fromUnsignedBigInt(_pollId) + ]); - return result[0].toBigIntArray(); + return result[0].toAddress(); } - try_genQvtPublicSignals( - _intermediateStateRoot: BigInt, - _newResultsCommitment: BigInt, - _newSpentVoiceCreditsCommitment: BigInt, - _newPerVOSpentVoiceCreditsCommitment: BigInt, - _totalVotes: BigInt - ): ethereum.CallResult> { - let result = super.tryCall( - "genQvtPublicSignals", - "genQvtPublicSignals(uint256,uint256,uint256,uint256,uint256):(uint256[])", - [ - ethereum.Value.fromUnsignedBigInt(_intermediateStateRoot), - ethereum.Value.fromUnsignedBigInt(_newResultsCommitment), - ethereum.Value.fromUnsignedBigInt(_newSpentVoiceCreditsCommitment), - ethereum.Value.fromUnsignedBigInt(_newPerVOSpentVoiceCreditsCommitment), - ethereum.Value.fromUnsignedBigInt(_totalVotes) - ] - ); + try_getPoll(_pollId: BigInt): ethereum.CallResult
{ + let result = super.tryCall("getPoll", "getPoll(uint256):(address)", [ + ethereum.Value.fromUnsignedBigInt(_pollId) + ]); if (result.reverted) { return new ethereum.CallResult(); } let value = result.value; - return ethereum.CallResult.fromValue(value[0].toBigIntArray()); + return ethereum.CallResult.fromValue(value[0].toAddress()); } - getMessageTreeRoot(): BigInt { - let result = super.call( - "getMessageTreeRoot", - "getMessageTreeRoot():(uint256)", - [] - ); + getStateAqRoot(): BigInt { + let result = super.call("getStateAqRoot", "getStateAqRoot():(uint256)", []); return result[0].toBigInt(); } - try_getMessageTreeRoot(): ethereum.CallResult { + try_getStateAqRoot(): ethereum.CallResult { let result = super.tryCall( - "getMessageTreeRoot", - "getMessageTreeRoot():(uint256)", + "getStateAqRoot", + "getStateAqRoot():(uint256)", [] ); if (result.reverted) { @@ -645,22 +324,18 @@ export class MACI extends ethereum.SmartContract { return ethereum.CallResult.fromValue(value[0].toBigInt()); } - getStateTreeRoot(): BigInt { - let result = super.call( - "getStateTreeRoot", - "getStateTreeRoot():(uint256)", - [] - ); + hash2(array: Array): BigInt { + let result = super.call("hash2", "hash2(uint256[2]):(uint256)", [ + ethereum.Value.fromUnsignedBigIntArray(array) + ]); return result[0].toBigInt(); } - try_getStateTreeRoot(): ethereum.CallResult { - let result = super.tryCall( - "getStateTreeRoot", - "getStateTreeRoot():(uint256)", - [] - ); + try_hash2(array: Array): ethereum.CallResult { + let result = super.tryCall("hash2", "hash2(uint256[2]):(uint256)", [ + ethereum.Value.fromUnsignedBigIntArray(array) + ]); if (result.reverted) { return new ethereum.CallResult(); } @@ -668,62 +343,35 @@ export class MACI extends ethereum.SmartContract { return ethereum.CallResult.fromValue(value[0].toBigInt()); } - hasUnprocessedMessages(): boolean { - let result = super.call( - "hasUnprocessedMessages", - "hasUnprocessedMessages():(bool)", - [] - ); - - return result[0].toBoolean(); - } - - try_hasUnprocessedMessages(): ethereum.CallResult { - let result = super.tryCall( - "hasUnprocessedMessages", - "hasUnprocessedMessages():(bool)", - [] - ); - if (result.reverted) { - return new ethereum.CallResult(); - } - let value = result.value; - return ethereum.CallResult.fromValue(value[0].toBoolean()); - } - - hasUntalliedStateLeaves(): boolean { - let result = super.call( - "hasUntalliedStateLeaves", - "hasUntalliedStateLeaves():(bool)", - [] - ); + hash3(array: Array): BigInt { + let result = super.call("hash3", "hash3(uint256[3]):(uint256)", [ + ethereum.Value.fromUnsignedBigIntArray(array) + ]); - return result[0].toBoolean(); + return result[0].toBigInt(); } - try_hasUntalliedStateLeaves(): ethereum.CallResult { - let result = super.tryCall( - "hasUntalliedStateLeaves", - "hasUntalliedStateLeaves():(bool)", - [] - ); + try_hash3(array: Array): ethereum.CallResult { + let result = super.tryCall("hash3", "hash3(uint256[3]):(uint256)", [ + ethereum.Value.fromUnsignedBigIntArray(array) + ]); if (result.reverted) { return new ethereum.CallResult(); } let value = result.value; - return ethereum.CallResult.fromValue(value[0].toBoolean()); + return ethereum.CallResult.fromValue(value[0].toBigInt()); } - hash11(array: Array): BigInt { - let result = super.call("hash11", "hash11(uint256[]):(uint256)", [ + hash4(array: Array): BigInt { + let result = super.call("hash4", "hash4(uint256[4]):(uint256)", [ ethereum.Value.fromUnsignedBigIntArray(array) ]); return result[0].toBigInt(); } - try_hash11(array: Array): ethereum.CallResult { - let result = super.tryCall("hash11", "hash11(uint256[]):(uint256)", [ + try_hash4(array: Array): ethereum.CallResult { + let result = super.tryCall("hash4", "hash4(uint256[4]):(uint256)", [ ethereum.Value.fromUnsignedBigIntArray(array) ]); if (result.reverted) { @@ -784,35 +432,10 @@ export class MACI extends ethereum.SmartContract { return ethereum.CallResult.fromValue(value[0].toBigInt()); } - hashMessage(_message: MACI__hashMessageInput_messageStruct): BigInt { - let result = super.call( - "hashMessage", - "hashMessage((uint256,uint256[10])):(uint256)", - [ethereum.Value.fromTuple(_message)] - ); - - return result[0].toBigInt(); - } - - try_hashMessage( - _message: MACI__hashMessageInput_messageStruct - ): ethereum.CallResult { - let result = super.tryCall( - "hashMessage", - "hashMessage((uint256,uint256[10])):(uint256)", - [ethereum.Value.fromTuple(_message)] - ); - if (result.reverted) { - return new ethereum.CallResult(); - } - let value = result.value; - return ethereum.CallResult.fromValue(value[0].toBigInt()); - } - hashStateLeaf(_stateLeaf: MACI__hashStateLeafInput_stateLeafStruct): BigInt { let result = super.call( "hashStateLeaf", - "hashStateLeaf(((uint256,uint256),uint256,uint256,uint256)):(uint256)", + "hashStateLeaf(((uint256,uint256),uint256,uint256)):(uint256)", [ethereum.Value.fromTuple(_stateLeaf)] ); @@ -824,7 +447,7 @@ export class MACI extends ethereum.SmartContract { ): ethereum.CallResult { let result = super.tryCall( "hashStateLeaf", - "hashStateLeaf(((uint256,uint256),uint256,uint256,uint256)):(uint256)", + "hashStateLeaf(((uint256,uint256),uint256,uint256)):(uint256)", [ethereum.Value.fromTuple(_stateLeaf)] ); if (result.reverted) { @@ -834,29 +457,6 @@ export class MACI extends ethereum.SmartContract { return ethereum.CallResult.fromValue(value[0].toBigInt()); } - hashedBlankStateLeaf(): BigInt { - let result = super.call( - "hashedBlankStateLeaf", - "hashedBlankStateLeaf():(uint256)", - [] - ); - - return result[0].toBigInt(); - } - - try_hashedBlankStateLeaf(): ethereum.CallResult { - let result = super.tryCall( - "hashedBlankStateLeaf", - "hashedBlankStateLeaf():(uint256)", - [] - ); - if (result.reverted) { - return new ethereum.CallResult(); - } - let value = result.value; - return ethereum.CallResult.fromValue(value[0].toBigInt()); - } - initialVoiceCreditProxy(): Address { let result = super.call( "initialVoiceCreditProxy", @@ -880,89 +480,34 @@ export class MACI extends ethereum.SmartContract { return ethereum.CallResult.fromValue(value[0].toAddress()); } - maxMessages(): BigInt { - let result = super.call("maxMessages", "maxMessages():(uint256)", []); - - return result[0].toBigInt(); - } - - try_maxMessages(): ethereum.CallResult { - let result = super.tryCall("maxMessages", "maxMessages():(uint256)", []); - if (result.reverted) { - return new ethereum.CallResult(); - } - let value = result.value; - return ethereum.CallResult.fromValue(value[0].toBigInt()); - } - - maxUsers(): BigInt { - let result = super.call("maxUsers", "maxUsers():(uint256)", []); + isInitialised(): boolean { + let result = super.call("isInitialised", "isInitialised():(bool)", []); - return result[0].toBigInt(); - } - - try_maxUsers(): ethereum.CallResult { - let result = super.tryCall("maxUsers", "maxUsers():(uint256)", []); - if (result.reverted) { - return new ethereum.CallResult(); - } - let value = result.value; - return ethereum.CallResult.fromValue(value[0].toBigInt()); - } - - messageBatchSize(): i32 { - let result = super.call( - "messageBatchSize", - "messageBatchSize():(uint8)", - [] - ); - - return result[0].toI32(); - } - - try_messageBatchSize(): ethereum.CallResult { - let result = super.tryCall( - "messageBatchSize", - "messageBatchSize():(uint8)", - [] - ); - if (result.reverted) { - return new ethereum.CallResult(); - } - let value = result.value; - return ethereum.CallResult.fromValue(value[0].toI32()); - } - - messageTree(): Address { - let result = super.call("messageTree", "messageTree():(address)", []); - - return result[0].toAddress(); + return result[0].toBoolean(); } - try_messageTree(): ethereum.CallResult
{ - let result = super.tryCall("messageTree", "messageTree():(address)", []); + try_isInitialised(): ethereum.CallResult { + let result = super.tryCall("isInitialised", "isInitialised():(bool)", []); if (result.reverted) { return new ethereum.CallResult(); } let value = result.value; - return ethereum.CallResult.fromValue(value[0].toAddress()); + return ethereum.CallResult.fromValue(value[0].toBoolean()); } - messageTreeMaxLeafIndex(): BigInt { - let result = super.call( - "messageTreeMaxLeafIndex", - "messageTreeMaxLeafIndex():(uint256)", - [] - ); + mergeStateAq(_pollId: BigInt): BigInt { + let result = super.call("mergeStateAq", "mergeStateAq(uint256):(uint256)", [ + ethereum.Value.fromUnsignedBigInt(_pollId) + ]); return result[0].toBigInt(); } - try_messageTreeMaxLeafIndex(): ethereum.CallResult { + try_mergeStateAq(_pollId: BigInt): ethereum.CallResult { let result = super.tryCall( - "messageTreeMaxLeafIndex", - "messageTreeMaxLeafIndex():(uint256)", - [] + "mergeStateAq", + "mergeStateAq(uint256):(uint256)", + [ethereum.Value.fromUnsignedBigInt(_pollId)] ); if (result.reverted) { return new ethereum.CallResult(); @@ -971,14 +516,14 @@ export class MACI extends ethereum.SmartContract { return ethereum.CallResult.fromValue(value[0].toBigInt()); } - numMessages(): BigInt { - let result = super.call("numMessages", "numMessages():(uint256)", []); + nextPollId(): BigInt { + let result = super.call("nextPollId", "nextPollId():(uint256)", []); return result[0].toBigInt(); } - try_numMessages(): ethereum.CallResult { - let result = super.tryCall("numMessages", "numMessages():(uint256)", []); + try_nextPollId(): ethereum.CallResult { + let result = super.tryCall("nextPollId", "nextPollId():(uint256)", []); if (result.reverted) { return new ethereum.CallResult(); } @@ -1001,21 +546,21 @@ export class MACI extends ethereum.SmartContract { return ethereum.CallResult.fromValue(value[0].toBigInt()); } - originalCurrentResultsCommitment(): BigInt { + numStateLeaves(param0: BigInt): BigInt { let result = super.call( - "originalCurrentResultsCommitment", - "originalCurrentResultsCommitment():(uint256)", - [] + "numStateLeaves", + "numStateLeaves(uint256):(uint256)", + [ethereum.Value.fromUnsignedBigInt(param0)] ); return result[0].toBigInt(); } - try_originalCurrentResultsCommitment(): ethereum.CallResult { + try_numStateLeaves(param0: BigInt): ethereum.CallResult { let result = super.tryCall( - "originalCurrentResultsCommitment", - "originalCurrentResultsCommitment():(uint256)", - [] + "numStateLeaves", + "numStateLeaves(uint256):(uint256)", + [ethereum.Value.fromUnsignedBigInt(param0)] ); if (result.reverted) { return new ethereum.CallResult(); @@ -1024,68 +569,48 @@ export class MACI extends ethereum.SmartContract { return ethereum.CallResult.fromValue(value[0].toBigInt()); } - originalSpentVoiceCreditsCommitment(): BigInt { - let result = super.call( - "originalSpentVoiceCreditsCommitment", - "originalSpentVoiceCreditsCommitment():(uint256)", - [] - ); + owner(): Address { + let result = super.call("owner", "owner():(address)", []); - return result[0].toBigInt(); + return result[0].toAddress(); } - try_originalSpentVoiceCreditsCommitment(): ethereum.CallResult { - let result = super.tryCall( - "originalSpentVoiceCreditsCommitment", - "originalSpentVoiceCreditsCommitment():(uint256)", - [] - ); + try_owner(): ethereum.CallResult
{ + let result = super.tryCall("owner", "owner():(address)", []); if (result.reverted) { return new ethereum.CallResult(); } let value = result.value; - return ethereum.CallResult.fromValue(value[0].toBigInt()); + return ethereum.CallResult.fromValue(value[0].toAddress()); } - signUpDurationSeconds(): BigInt { - let result = super.call( - "signUpDurationSeconds", - "signUpDurationSeconds():(uint256)", - [] - ); + pollFactory(): Address { + let result = super.call("pollFactory", "pollFactory():(address)", []); - return result[0].toBigInt(); + return result[0].toAddress(); } - try_signUpDurationSeconds(): ethereum.CallResult { - let result = super.tryCall( - "signUpDurationSeconds", - "signUpDurationSeconds():(uint256)", - [] - ); + try_pollFactory(): ethereum.CallResult
{ + let result = super.tryCall("pollFactory", "pollFactory():(address)", []); if (result.reverted) { return new ethereum.CallResult(); } let value = result.value; - return ethereum.CallResult.fromValue(value[0].toBigInt()); + return ethereum.CallResult.fromValue(value[0].toAddress()); } - signUpGatekeeper(): Address { - let result = super.call( - "signUpGatekeeper", - "signUpGatekeeper():(address)", - [] - ); + polls(param0: BigInt): Address { + let result = super.call("polls", "polls(uint256):(address)", [ + ethereum.Value.fromUnsignedBigInt(param0) + ]); return result[0].toAddress(); } - try_signUpGatekeeper(): ethereum.CallResult
{ - let result = super.tryCall( - "signUpGatekeeper", - "signUpGatekeeper():(address)", - [] - ); + try_polls(param0: BigInt): ethereum.CallResult
{ + let result = super.tryCall("polls", "polls(uint256):(address)", [ + ethereum.Value.fromUnsignedBigInt(param0) + ]); if (result.reverted) { return new ethereum.CallResult(); } @@ -1093,21 +618,19 @@ export class MACI extends ethereum.SmartContract { return ethereum.CallResult.fromValue(value[0].toAddress()); } - signUpTimestamp(): BigInt { - let result = super.call( - "signUpTimestamp", - "signUpTimestamp():(uint256)", - [] - ); + sha256Hash(array: Array): BigInt { + let result = super.call("sha256Hash", "sha256Hash(uint256[]):(uint256)", [ + ethereum.Value.fromUnsignedBigIntArray(array) + ]); return result[0].toBigInt(); } - try_signUpTimestamp(): ethereum.CallResult { + try_sha256Hash(array: Array): ethereum.CallResult { let result = super.tryCall( - "signUpTimestamp", - "signUpTimestamp():(uint256)", - [] + "sha256Hash", + "sha256Hash(uint256[]):(uint256)", + [ethereum.Value.fromUnsignedBigIntArray(array)] ); if (result.reverted) { return new ethereum.CallResult(); @@ -1116,35 +639,43 @@ export class MACI extends ethereum.SmartContract { return ethereum.CallResult.fromValue(value[0].toBigInt()); } - stateRoot(): BigInt { - let result = super.call("stateRoot", "stateRoot():(uint256)", []); + signUpGatekeeper(): Address { + let result = super.call( + "signUpGatekeeper", + "signUpGatekeeper():(address)", + [] + ); - return result[0].toBigInt(); + return result[0].toAddress(); } - try_stateRoot(): ethereum.CallResult { - let result = super.tryCall("stateRoot", "stateRoot():(uint256)", []); + try_signUpGatekeeper(): ethereum.CallResult
{ + let result = super.tryCall( + "signUpGatekeeper", + "signUpGatekeeper():(address)", + [] + ); if (result.reverted) { return new ethereum.CallResult(); } let value = result.value; - return ethereum.CallResult.fromValue(value[0].toBigInt()); + return ethereum.CallResult.fromValue(value[0].toAddress()); } - stateRootBeforeProcessing(): BigInt { + signUpTimestamp(): BigInt { let result = super.call( - "stateRootBeforeProcessing", - "stateRootBeforeProcessing():(uint256)", + "signUpTimestamp", + "signUpTimestamp():(uint256)", [] ); return result[0].toBigInt(); } - try_stateRootBeforeProcessing(): ethereum.CallResult { + try_signUpTimestamp(): ethereum.CallResult { let result = super.tryCall( - "stateRootBeforeProcessing", - "stateRootBeforeProcessing():(uint256)", + "signUpTimestamp", + "signUpTimestamp():(uint256)", [] ); if (result.reverted) { @@ -1154,14 +685,14 @@ export class MACI extends ethereum.SmartContract { return ethereum.CallResult.fromValue(value[0].toBigInt()); } - stateTree(): Address { - let result = super.call("stateTree", "stateTree():(address)", []); + stateAq(): Address { + let result = super.call("stateAq", "stateAq():(address)", []); return result[0].toAddress(); } - try_stateTree(): ethereum.CallResult
{ - let result = super.tryCall("stateTree", "stateTree():(address)", []); + try_stateAq(): ethereum.CallResult
{ + let result = super.tryCall("stateAq", "stateAq():(address)", []); if (result.reverted) { return new ethereum.CallResult(); } @@ -1169,16 +700,16 @@ export class MACI extends ethereum.SmartContract { return ethereum.CallResult.fromValue(value[0].toAddress()); } - tallyBatchSize(): i32 { - let result = super.call("tallyBatchSize", "tallyBatchSize():(uint8)", []); + stateTreeDepth(): i32 { + let result = super.call("stateTreeDepth", "stateTreeDepth():(uint8)", []); return result[0].toI32(); } - try_tallyBatchSize(): ethereum.CallResult { + try_stateTreeDepth(): ethereum.CallResult { let result = super.tryCall( - "tallyBatchSize", - "tallyBatchSize():(uint8)", + "stateTreeDepth", + "stateTreeDepth():(uint8)", [] ); if (result.reverted) { @@ -1188,130 +719,34 @@ export class MACI extends ethereum.SmartContract { return ethereum.CallResult.fromValue(value[0].toI32()); } - totalVotes(): BigInt { - let result = super.call("totalVotes", "totalVotes():(uint256)", []); - - return result[0].toBigInt(); - } - - try_totalVotes(): ethereum.CallResult { - let result = super.tryCall("totalVotes", "totalVotes():(uint256)", []); - if (result.reverted) { - return new ethereum.CallResult(); - } - let value = result.value; - return ethereum.CallResult.fromValue(value[0].toBigInt()); - } - - treeDepths(): MACI__treeDepthsResult { - let result = super.call( - "treeDepths", - "treeDepths():(uint8,uint8,uint8)", - [] - ); - - return new MACI__treeDepthsResult( - result[0].toI32(), - result[1].toI32(), - result[2].toI32() - ); - } - - try_treeDepths(): ethereum.CallResult { - let result = super.tryCall( - "treeDepths", - "treeDepths():(uint8,uint8,uint8)", - [] - ); - if (result.reverted) { - return new ethereum.CallResult(); - } - let value = result.value; - return ethereum.CallResult.fromValue( - new MACI__treeDepthsResult( - value[0].toI32(), - value[1].toI32(), - value[2].toI32() - ) - ); - } - - verifySpentVoiceCredits(_spent: BigInt, _salt: BigInt): boolean { - let result = super.call( - "verifySpentVoiceCredits", - "verifySpentVoiceCredits(uint256,uint256):(bool)", - [ - ethereum.Value.fromUnsignedBigInt(_spent), - ethereum.Value.fromUnsignedBigInt(_salt) - ] - ); - - return result[0].toBoolean(); - } - - try_verifySpentVoiceCredits( - _spent: BigInt, - _salt: BigInt - ): ethereum.CallResult { - let result = super.tryCall( - "verifySpentVoiceCredits", - "verifySpentVoiceCredits(uint256,uint256):(bool)", - [ - ethereum.Value.fromUnsignedBigInt(_spent), - ethereum.Value.fromUnsignedBigInt(_salt) - ] - ); - if (result.reverted) { - return new ethereum.CallResult(); - } - let value = result.value; - return ethereum.CallResult.fromValue(value[0].toBoolean()); - } - - voteOptionsMaxLeafIndex(): BigInt { - let result = super.call( - "voteOptionsMaxLeafIndex", - "voteOptionsMaxLeafIndex():(uint256)", - [] - ); + topupCredit(): Address { + let result = super.call("topupCredit", "topupCredit():(address)", []); - return result[0].toBigInt(); + return result[0].toAddress(); } - try_voteOptionsMaxLeafIndex(): ethereum.CallResult { - let result = super.tryCall( - "voteOptionsMaxLeafIndex", - "voteOptionsMaxLeafIndex():(uint256)", - [] - ); + try_topupCredit(): ethereum.CallResult
{ + let result = super.tryCall("topupCredit", "topupCredit():(address)", []); if (result.reverted) { return new ethereum.CallResult(); } let value = result.value; - return ethereum.CallResult.fromValue(value[0].toBigInt()); + return ethereum.CallResult.fromValue(value[0].toAddress()); } - votingDurationSeconds(): BigInt { - let result = super.call( - "votingDurationSeconds", - "votingDurationSeconds():(uint256)", - [] - ); + vkRegistry(): Address { + let result = super.call("vkRegistry", "vkRegistry():(address)", []); - return result[0].toBigInt(); + return result[0].toAddress(); } - try_votingDurationSeconds(): ethereum.CallResult { - let result = super.tryCall( - "votingDurationSeconds", - "votingDurationSeconds():(uint256)", - [] - ); + try_vkRegistry(): ethereum.CallResult
{ + let result = super.tryCall("vkRegistry", "vkRegistry():(address)", []); if (result.reverted) { return new ethereum.CallResult(); } let value = result.value; - return ethereum.CallResult.fromValue(value[0].toBigInt()); + return ethereum.CallResult.fromValue(value[0].toAddress()); } } @@ -1332,106 +767,108 @@ export class ConstructorCall__Inputs { this._call = call; } - get _treeDepths(): ConstructorCall_treeDepthsStruct { - return changetype( - this._call.inputValues[0].value.toTuple() - ); + get _pollFactory(): Address { + return this._call.inputValues[0].value.toAddress(); } - get _batchSizes(): ConstructorCall_batchSizesStruct { - return changetype( - this._call.inputValues[1].value.toTuple() - ); + get _signUpGatekeeper(): Address { + return this._call.inputValues[1].value.toAddress(); } - get _maxValues(): ConstructorCall_maxValuesStruct { - return changetype( - this._call.inputValues[2].value.toTuple() - ); + get _initialVoiceCreditProxy(): Address { + return this._call.inputValues[2].value.toAddress(); } +} - get _signUpGatekeeper(): Address { - return this._call.inputValues[3].value.toAddress(); +export class ConstructorCall__Outputs { + _call: ConstructorCall; + + constructor(call: ConstructorCall) { + this._call = call; } +} - get _batchUstVerifier(): Address { - return this._call.inputValues[4].value.toAddress(); +export class DeployPollCall extends ethereum.Call { + get inputs(): DeployPollCall__Inputs { + return new DeployPollCall__Inputs(this); } - get _qvtVerifier(): Address { - return this._call.inputValues[5].value.toAddress(); + get outputs(): DeployPollCall__Outputs { + return new DeployPollCall__Outputs(this); } +} - get _signUpDurationSeconds(): BigInt { - return this._call.inputValues[6].value.toBigInt(); +export class DeployPollCall__Inputs { + _call: DeployPollCall; + + constructor(call: DeployPollCall) { + this._call = call; } - get _votingDurationSeconds(): BigInt { - return this._call.inputValues[7].value.toBigInt(); + get _duration(): BigInt { + return this._call.inputValues[0].value.toBigInt(); } - get _initialVoiceCreditProxy(): Address { - return this._call.inputValues[8].value.toAddress(); + get _maxValues(): DeployPollCall_maxValuesStruct { + return changetype( + this._call.inputValues[1].value.toTuple() + ); } - get _coordinatorPubKey(): ConstructorCall_coordinatorPubKeyStruct { - return changetype( - this._call.inputValues[9].value.toTuple() + get _treeDepths(): DeployPollCall_treeDepthsStruct { + return changetype( + this._call.inputValues[2].value.toTuple() ); } - get _coordinatorAddress(): Address { - return this._call.inputValues[10].value.toAddress(); + get _coordinatorPubKey(): DeployPollCall_coordinatorPubKeyStruct { + return changetype( + this._call.inputValues[3].value.toTuple() + ); } } -export class ConstructorCall__Outputs { - _call: ConstructorCall; +export class DeployPollCall__Outputs { + _call: DeployPollCall; - constructor(call: ConstructorCall) { + constructor(call: DeployPollCall) { this._call = call; } -} -export class ConstructorCall_treeDepthsStruct extends ethereum.Tuple { - get stateTreeDepth(): i32 { - return this[0].toI32(); + get value0(): Address { + return this._call.outputValues[0].value.toAddress(); } +} - get messageTreeDepth(): i32 { - return this[1].toI32(); +export class DeployPollCall_maxValuesStruct extends ethereum.Tuple { + get maxMessages(): BigInt { + return this[0].toBigInt(); } - get voteOptionTreeDepth(): i32 { - return this[2].toI32(); + get maxVoteOptions(): BigInt { + return this[1].toBigInt(); } } -export class ConstructorCall_batchSizesStruct extends ethereum.Tuple { - get tallyBatchSize(): i32 { +export class DeployPollCall_treeDepthsStruct extends ethereum.Tuple { + get intStateTreeDepth(): i32 { return this[0].toI32(); } - get messageBatchSize(): i32 { + get messageTreeSubDepth(): i32 { return this[1].toI32(); } -} - -export class ConstructorCall_maxValuesStruct extends ethereum.Tuple { - get maxUsers(): BigInt { - return this[0].toBigInt(); - } - get maxMessages(): BigInt { - return this[1].toBigInt(); + get messageTreeDepth(): i32 { + return this[2].toI32(); } - get maxVoteOptions(): BigInt { - return this[2].toBigInt(); + get voteOptionTreeDepth(): i32 { + return this[3].toI32(); } } -export class ConstructorCall_coordinatorPubKeyStruct extends ethereum.Tuple { +export class DeployPollCall_coordinatorPubKeyStruct extends ethereum.Tuple { get x(): BigInt { return this[0].toBigInt(); } @@ -1441,190 +878,134 @@ export class ConstructorCall_coordinatorPubKeyStruct extends ethereum.Tuple { } } -export class BatchProcessMessageCall extends ethereum.Call { - get inputs(): BatchProcessMessageCall__Inputs { - return new BatchProcessMessageCall__Inputs(this); +export class InitCall extends ethereum.Call { + get inputs(): InitCall__Inputs { + return new InitCall__Inputs(this); } - get outputs(): BatchProcessMessageCall__Outputs { - return new BatchProcessMessageCall__Outputs(this); + get outputs(): InitCall__Outputs { + return new InitCall__Outputs(this); } } -export class BatchProcessMessageCall__Inputs { - _call: BatchProcessMessageCall; +export class InitCall__Inputs { + _call: InitCall; - constructor(call: BatchProcessMessageCall) { + constructor(call: InitCall) { this._call = call; } - get _newStateRoot(): BigInt { - return this._call.inputValues[0].value.toBigInt(); - } - - get _ecdhPubKeys(): Array { - return this._call.inputValues[1].value.toTupleArray< - BatchProcessMessageCall_ecdhPubKeysStruct - >(); + get _vkRegistry(): Address { + return this._call.inputValues[0].value.toAddress(); } - get _proof(): Array { - return this._call.inputValues[2].value.toBigIntArray(); + get _topupCredit(): Address { + return this._call.inputValues[1].value.toAddress(); } } -export class BatchProcessMessageCall__Outputs { - _call: BatchProcessMessageCall; +export class InitCall__Outputs { + _call: InitCall; - constructor(call: BatchProcessMessageCall) { + constructor(call: InitCall) { this._call = call; } } -export class BatchProcessMessageCall_ecdhPubKeysStruct extends ethereum.Tuple { - get x(): BigInt { - return this[0].toBigInt(); +export class MergeStateAqCall extends ethereum.Call { + get inputs(): MergeStateAqCall__Inputs { + return new MergeStateAqCall__Inputs(this); } - get y(): BigInt { - return this[1].toBigInt(); + get outputs(): MergeStateAqCall__Outputs { + return new MergeStateAqCall__Outputs(this); } } -export class CoordinatorResetCall extends ethereum.Call { - get inputs(): CoordinatorResetCall__Inputs { - return new CoordinatorResetCall__Inputs(this); +export class MergeStateAqCall__Inputs { + _call: MergeStateAqCall; + + constructor(call: MergeStateAqCall) { + this._call = call; } - get outputs(): CoordinatorResetCall__Outputs { - return new CoordinatorResetCall__Outputs(this); + get _pollId(): BigInt { + return this._call.inputValues[0].value.toBigInt(); } } -export class CoordinatorResetCall__Inputs { - _call: CoordinatorResetCall; +export class MergeStateAqCall__Outputs { + _call: MergeStateAqCall; - constructor(call: CoordinatorResetCall) { + constructor(call: MergeStateAqCall) { this._call = call; } -} -export class CoordinatorResetCall__Outputs { - _call: CoordinatorResetCall; - - constructor(call: CoordinatorResetCall) { - this._call = call; + get value0(): BigInt { + return this._call.outputValues[0].value.toBigInt(); } } -export class ProveVoteTallyBatchCall extends ethereum.Call { - get inputs(): ProveVoteTallyBatchCall__Inputs { - return new ProveVoteTallyBatchCall__Inputs(this); +export class MergeStateAqSubRootsCall extends ethereum.Call { + get inputs(): MergeStateAqSubRootsCall__Inputs { + return new MergeStateAqSubRootsCall__Inputs(this); } - get outputs(): ProveVoteTallyBatchCall__Outputs { - return new ProveVoteTallyBatchCall__Outputs(this); + get outputs(): MergeStateAqSubRootsCall__Outputs { + return new MergeStateAqSubRootsCall__Outputs(this); } } -export class ProveVoteTallyBatchCall__Inputs { - _call: ProveVoteTallyBatchCall; +export class MergeStateAqSubRootsCall__Inputs { + _call: MergeStateAqSubRootsCall; - constructor(call: ProveVoteTallyBatchCall) { + constructor(call: MergeStateAqSubRootsCall) { this._call = call; } - get _intermediateStateRoot(): BigInt { + get _numSrQueueOps(): BigInt { return this._call.inputValues[0].value.toBigInt(); } - get _newResultsCommitment(): BigInt { + get _pollId(): BigInt { return this._call.inputValues[1].value.toBigInt(); } - - get _newSpentVoiceCreditsCommitment(): BigInt { - return this._call.inputValues[2].value.toBigInt(); - } - - get _newPerVOSpentVoiceCreditsCommitment(): BigInt { - return this._call.inputValues[3].value.toBigInt(); - } - - get _totalVotes(): BigInt { - return this._call.inputValues[4].value.toBigInt(); - } - - get _proof(): Array { - return this._call.inputValues[5].value.toBigIntArray(); - } } -export class ProveVoteTallyBatchCall__Outputs { - _call: ProveVoteTallyBatchCall; +export class MergeStateAqSubRootsCall__Outputs { + _call: MergeStateAqSubRootsCall; - constructor(call: ProveVoteTallyBatchCall) { + constructor(call: MergeStateAqSubRootsCall) { this._call = call; } } -export class PublishMessageCall extends ethereum.Call { - get inputs(): PublishMessageCall__Inputs { - return new PublishMessageCall__Inputs(this); +export class RenounceOwnershipCall extends ethereum.Call { + get inputs(): RenounceOwnershipCall__Inputs { + return new RenounceOwnershipCall__Inputs(this); } - get outputs(): PublishMessageCall__Outputs { - return new PublishMessageCall__Outputs(this); + get outputs(): RenounceOwnershipCall__Outputs { + return new RenounceOwnershipCall__Outputs(this); } } -export class PublishMessageCall__Inputs { - _call: PublishMessageCall; +export class RenounceOwnershipCall__Inputs { + _call: RenounceOwnershipCall; - constructor(call: PublishMessageCall) { + constructor(call: RenounceOwnershipCall) { this._call = call; } - - get _message(): PublishMessageCall_messageStruct { - return changetype( - this._call.inputValues[0].value.toTuple() - ); - } - - get _encPubKey(): PublishMessageCall_encPubKeyStruct { - return changetype( - this._call.inputValues[1].value.toTuple() - ); - } } -export class PublishMessageCall__Outputs { - _call: PublishMessageCall; +export class RenounceOwnershipCall__Outputs { + _call: RenounceOwnershipCall; - constructor(call: PublishMessageCall) { + constructor(call: RenounceOwnershipCall) { this._call = call; } } -export class PublishMessageCall_messageStruct extends ethereum.Tuple { - get iv(): BigInt { - return this[0].toBigInt(); - } - - get data(): Array { - return this[1].toBigIntArray(); - } -} - -export class PublishMessageCall_encPubKeyStruct extends ethereum.Tuple { - get x(): BigInt { - return this[0].toBigInt(); - } - - get y(): BigInt { - return this[1].toBigInt(); - } -} - export class SignUpCall extends ethereum.Call { get inputs(): SignUpCall__Inputs { return new SignUpCall__Inputs(this); @@ -1642,8 +1023,8 @@ export class SignUpCall__Inputs { this._call = call; } - get _userPubKey(): SignUpCall_userPubKeyStruct { - return changetype( + get _pubKey(): SignUpCall_pubKeyStruct { + return changetype( this._call.inputValues[0].value.toTuple() ); } @@ -1665,7 +1046,7 @@ export class SignUpCall__Outputs { } } -export class SignUpCall_userPubKeyStruct extends ethereum.Tuple { +export class SignUpCall_pubKeyStruct extends ethereum.Tuple { get x(): BigInt { return this[0].toBigInt(); } @@ -1674,3 +1055,33 @@ export class SignUpCall_userPubKeyStruct extends ethereum.Tuple { return this[1].toBigInt(); } } + +export class TransferOwnershipCall extends ethereum.Call { + get inputs(): TransferOwnershipCall__Inputs { + return new TransferOwnershipCall__Inputs(this); + } + + get outputs(): TransferOwnershipCall__Outputs { + return new TransferOwnershipCall__Outputs(this); + } +} + +export class TransferOwnershipCall__Inputs { + _call: TransferOwnershipCall; + + constructor(call: TransferOwnershipCall) { + this._call = call; + } + + get newOwner(): Address { + return this._call.inputValues[0].value.toAddress(); + } +} + +export class TransferOwnershipCall__Outputs { + _call: TransferOwnershipCall; + + constructor(call: TransferOwnershipCall) { + this._call = call; + } +} diff --git a/subgraph/generated/templates/OptimisticRecipientRegistry/OptimisticRecipientRegistry.ts b/subgraph/generated/templates/OptimisticRecipientRegistry/OptimisticRecipientRegistry.ts index 20d805ce5..afb85c261 100644 --- a/subgraph/generated/templates/OptimisticRecipientRegistry/OptimisticRecipientRegistry.ts +++ b/subgraph/generated/templates/OptimisticRecipientRegistry/OptimisticRecipientRegistry.ts @@ -255,6 +255,29 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { return ethereum.CallResult.fromValue(value[0].toAddress()); } + getRecipientCount(): BigInt { + let result = super.call( + "getRecipientCount", + "getRecipientCount():(uint256)", + [] + ); + + return result[0].toBigInt(); + } + + try_getRecipientCount(): ethereum.CallResult { + let result = super.tryCall( + "getRecipientCount", + "getRecipientCount():(uint256)", + [] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBigInt()); + } + maxRecipients(): BigInt { let result = super.call("maxRecipients", "maxRecipients():(uint256)", []); diff --git a/subgraph/generated/templates/Poll/FundingRound.ts b/subgraph/generated/templates/Poll/FundingRound.ts new file mode 100644 index 000000000..bde4327d0 --- /dev/null +++ b/subgraph/generated/templates/Poll/FundingRound.ts @@ -0,0 +1,842 @@ +// THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. + +import { + ethereum, + JSONValue, + TypedMap, + Entity, + Bytes, + Address, + BigInt +} from "@graphprotocol/graph-ts"; + +export class Contribution extends ethereum.Event { + get params(): Contribution__Params { + return new Contribution__Params(this); + } +} + +export class Contribution__Params { + _event: Contribution; + + constructor(event: Contribution) { + this._event = event; + } + + get _sender(): Address { + return this._event.parameters[0].value.toAddress(); + } + + get _amount(): BigInt { + return this._event.parameters[1].value.toBigInt(); + } +} + +export class ContributionWithdrawn extends ethereum.Event { + get params(): ContributionWithdrawn__Params { + return new ContributionWithdrawn__Params(this); + } +} + +export class ContributionWithdrawn__Params { + _event: ContributionWithdrawn; + + constructor(event: ContributionWithdrawn) { + this._event = event; + } + + get _contributor(): Address { + return this._event.parameters[0].value.toAddress(); + } +} + +export class FundsClaimed extends ethereum.Event { + get params(): FundsClaimed__Params { + return new FundsClaimed__Params(this); + } +} + +export class FundsClaimed__Params { + _event: FundsClaimed; + + constructor(event: FundsClaimed) { + this._event = event; + } + + get _voteOptionIndex(): BigInt { + return this._event.parameters[0].value.toBigInt(); + } + + get _recipient(): Address { + return this._event.parameters[1].value.toAddress(); + } + + get _amount(): BigInt { + return this._event.parameters[2].value.toBigInt(); + } +} + +export class OwnershipTransferred extends ethereum.Event { + get params(): OwnershipTransferred__Params { + return new OwnershipTransferred__Params(this); + } +} + +export class OwnershipTransferred__Params { + _event: OwnershipTransferred; + + constructor(event: OwnershipTransferred) { + this._event = event; + } + + get previousOwner(): Address { + return this._event.parameters[0].value.toAddress(); + } + + get newOwner(): Address { + return this._event.parameters[1].value.toAddress(); + } +} + +export class TallyPublished extends ethereum.Event { + get params(): TallyPublished__Params { + return new TallyPublished__Params(this); + } +} + +export class TallyPublished__Params { + _event: TallyPublished; + + constructor(event: TallyPublished) { + this._event = event; + } + + get _tallyHash(): string { + return this._event.parameters[0].value.toString(); + } +} + +export class Voted extends ethereum.Event { + get params(): Voted__Params { + return new Voted__Params(this); + } +} + +export class Voted__Params { + _event: Voted; + + constructor(event: Voted) { + this._event = event; + } + + get _contributor(): Address { + return this._event.parameters[0].value.toAddress(); + } +} + +export class FundingRound extends ethereum.SmartContract { + static bind(address: Address): FundingRound { + return new FundingRound("FundingRound", address); + } + + contributorCount(): BigInt { + let result = super.call( + "contributorCount", + "contributorCount():(uint256)", + [] + ); + + return result[0].toBigInt(); + } + + try_contributorCount(): ethereum.CallResult { + let result = super.tryCall( + "contributorCount", + "contributorCount():(uint256)", + [] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBigInt()); + } + + coordinator(): Address { + let result = super.call("coordinator", "coordinator():(address)", []); + + return result[0].toAddress(); + } + + try_coordinator(): ethereum.CallResult
{ + let result = super.tryCall("coordinator", "coordinator():(address)", []); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toAddress()); + } + + getAllocatedAmount(_tallyResult: BigInt, _spent: BigInt): BigInt { + let result = super.call( + "getAllocatedAmount", + "getAllocatedAmount(uint256,uint256):(uint256)", + [ + ethereum.Value.fromUnsignedBigInt(_tallyResult), + ethereum.Value.fromUnsignedBigInt(_spent) + ] + ); + + return result[0].toBigInt(); + } + + try_getAllocatedAmount( + _tallyResult: BigInt, + _spent: BigInt + ): ethereum.CallResult { + let result = super.tryCall( + "getAllocatedAmount", + "getAllocatedAmount(uint256,uint256):(uint256)", + [ + ethereum.Value.fromUnsignedBigInt(_tallyResult), + ethereum.Value.fromUnsignedBigInt(_spent) + ] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBigInt()); + } + + getVoiceCredits(param0: Address, _data: Bytes): BigInt { + let result = super.call( + "getVoiceCredits", + "getVoiceCredits(address,bytes):(uint256)", + [ethereum.Value.fromAddress(param0), ethereum.Value.fromBytes(_data)] + ); + + return result[0].toBigInt(); + } + + try_getVoiceCredits( + param0: Address, + _data: Bytes + ): ethereum.CallResult { + let result = super.tryCall( + "getVoiceCredits", + "getVoiceCredits(address,bytes):(uint256)", + [ethereum.Value.fromAddress(param0), ethereum.Value.fromBytes(_data)] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBigInt()); + } + + isCancelled(): boolean { + let result = super.call("isCancelled", "isCancelled():(bool)", []); + + return result[0].toBoolean(); + } + + try_isCancelled(): ethereum.CallResult { + let result = super.tryCall("isCancelled", "isCancelled():(bool)", []); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBoolean()); + } + + isFinalized(): boolean { + let result = super.call("isFinalized", "isFinalized():(bool)", []); + + return result[0].toBoolean(); + } + + try_isFinalized(): ethereum.CallResult { + let result = super.tryCall("isFinalized", "isFinalized():(bool)", []); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBoolean()); + } + + maci(): Address { + let result = super.call("maci", "maci():(address)", []); + + return result[0].toAddress(); + } + + try_maci(): ethereum.CallResult
{ + let result = super.tryCall("maci", "maci():(address)", []); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toAddress()); + } + + matchingPoolSize(): BigInt { + let result = super.call( + "matchingPoolSize", + "matchingPoolSize():(uint256)", + [] + ); + + return result[0].toBigInt(); + } + + try_matchingPoolSize(): ethereum.CallResult { + let result = super.tryCall( + "matchingPoolSize", + "matchingPoolSize():(uint256)", + [] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBigInt()); + } + + nativeToken(): Address { + let result = super.call("nativeToken", "nativeToken():(address)", []); + + return result[0].toAddress(); + } + + try_nativeToken(): ethereum.CallResult
{ + let result = super.tryCall("nativeToken", "nativeToken():(address)", []); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toAddress()); + } + + owner(): Address { + let result = super.call("owner", "owner():(address)", []); + + return result[0].toAddress(); + } + + try_owner(): ethereum.CallResult
{ + let result = super.tryCall("owner", "owner():(address)", []); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toAddress()); + } + + recipientRegistry(): Address { + let result = super.call( + "recipientRegistry", + "recipientRegistry():(address)", + [] + ); + + return result[0].toAddress(); + } + + try_recipientRegistry(): ethereum.CallResult
{ + let result = super.tryCall( + "recipientRegistry", + "recipientRegistry():(address)", + [] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toAddress()); + } + + tallyHash(): string { + let result = super.call("tallyHash", "tallyHash():(string)", []); + + return result[0].toString(); + } + + try_tallyHash(): ethereum.CallResult { + let result = super.tryCall("tallyHash", "tallyHash():(string)", []); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toString()); + } + + poll(): Address { + let result = super.call("poll", "poll():(address)", []); + + return result[0].toAddress(); + } + + try_poll(): ethereum.CallResult
{ + let result = super.tryCall("poll", "poll():(address)", []); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toAddress()); + } + + totalSpent(): BigInt { + let result = super.call("totalSpent", "totalSpent():(uint256)", []); + + return result[0].toBigInt(); + } + + try_totalSpent(): ethereum.CallResult { + let result = super.tryCall("totalSpent", "totalSpent():(uint256)", []); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBigInt()); + } + + totalVotes(): BigInt { + let result = super.call("totalVotes", "totalVotes():(uint256)", []); + + return result[0].toBigInt(); + } + + try_totalVotes(): ethereum.CallResult { + let result = super.tryCall("totalVotes", "totalVotes():(uint256)", []); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBigInt()); + } + + userRegistry(): Address { + let result = super.call("userRegistry", "userRegistry():(address)", []); + + return result[0].toAddress(); + } + + try_userRegistry(): ethereum.CallResult
{ + let result = super.tryCall("userRegistry", "userRegistry():(address)", []); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toAddress()); + } + + voiceCreditFactor(): BigInt { + let result = super.call( + "voiceCreditFactor", + "voiceCreditFactor():(uint256)", + [] + ); + + return result[0].toBigInt(); + } + + try_voiceCreditFactor(): ethereum.CallResult { + let result = super.tryCall( + "voiceCreditFactor", + "voiceCreditFactor():(uint256)", + [] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBigInt()); + } +} + +export class ConstructorCall extends ethereum.Call { + get inputs(): ConstructorCall__Inputs { + return new ConstructorCall__Inputs(this); + } + + get outputs(): ConstructorCall__Outputs { + return new ConstructorCall__Outputs(this); + } +} + +export class ConstructorCall__Inputs { + _call: ConstructorCall; + + constructor(call: ConstructorCall) { + this._call = call; + } + + get _nativeToken(): Address { + return this._call.inputValues[0].value.toAddress(); + } + + get _userRegistry(): Address { + return this._call.inputValues[1].value.toAddress(); + } + + get _recipientRegistry(): Address { + return this._call.inputValues[2].value.toAddress(); + } + + get _coordinator(): Address { + return this._call.inputValues[3].value.toAddress(); + } +} + +export class ConstructorCall__Outputs { + _call: ConstructorCall; + + constructor(call: ConstructorCall) { + this._call = call; + } +} + +export class CancelCall extends ethereum.Call { + get inputs(): CancelCall__Inputs { + return new CancelCall__Inputs(this); + } + + get outputs(): CancelCall__Outputs { + return new CancelCall__Outputs(this); + } +} + +export class CancelCall__Inputs { + _call: CancelCall; + + constructor(call: CancelCall) { + this._call = call; + } +} + +export class CancelCall__Outputs { + _call: CancelCall; + + constructor(call: CancelCall) { + this._call = call; + } +} + +export class ContributeCall extends ethereum.Call { + get inputs(): ContributeCall__Inputs { + return new ContributeCall__Inputs(this); + } + + get outputs(): ContributeCall__Outputs { + return new ContributeCall__Outputs(this); + } +} + +export class ContributeCall__Inputs { + _call: ContributeCall; + + constructor(call: ContributeCall) { + this._call = call; + } + + get pubKey(): ContributeCallPubKeyStruct { + return changetype( + this._call.inputValues[0].value.toTuple() + ); + } + + get amount(): BigInt { + return this._call.inputValues[1].value.toBigInt(); + } +} + +export class ContributeCall__Outputs { + _call: ContributeCall; + + constructor(call: ContributeCall) { + this._call = call; + } +} + +export class ContributeCallPubKeyStruct extends ethereum.Tuple { + get x(): BigInt { + return this[0].toBigInt(); + } + + get y(): BigInt { + return this[1].toBigInt(); + } +} + +export class FinalizeCall extends ethereum.Call { + get inputs(): FinalizeCall__Inputs { + return new FinalizeCall__Inputs(this); + } + + get outputs(): FinalizeCall__Outputs { + return new FinalizeCall__Outputs(this); + } +} + +export class FinalizeCall__Inputs { + _call: FinalizeCall; + + constructor(call: FinalizeCall) { + this._call = call; + } + + get _totalSpent(): BigInt { + return this._call.inputValues[0].value.toBigInt(); + } + + get _totalSpentSalt(): BigInt { + return this._call.inputValues[1].value.toBigInt(); + } +} + +export class FinalizeCall__Outputs { + _call: FinalizeCall; + + constructor(call: FinalizeCall) { + this._call = call; + } +} + +export class PublishTallyHashCall extends ethereum.Call { + get inputs(): PublishTallyHashCall__Inputs { + return new PublishTallyHashCall__Inputs(this); + } + + get outputs(): PublishTallyHashCall__Outputs { + return new PublishTallyHashCall__Outputs(this); + } +} + +export class PublishTallyHashCall__Inputs { + _call: PublishTallyHashCall; + + constructor(call: PublishTallyHashCall) { + this._call = call; + } + + get _tallyHash(): string { + return this._call.inputValues[0].value.toString(); + } +} + +export class PublishTallyHashCall__Outputs { + _call: PublishTallyHashCall; + + constructor(call: PublishTallyHashCall) { + this._call = call; + } +} + +export class RegisterCall extends ethereum.Call { + get inputs(): RegisterCall__Inputs { + return new RegisterCall__Inputs(this); + } + + get outputs(): RegisterCall__Outputs { + return new RegisterCall__Outputs(this); + } +} + +export class RegisterCall__Inputs { + _call: RegisterCall; + + constructor(call: RegisterCall) { + this._call = call; + } + + get value0(): Address { + return this._call.inputValues[0].value.toAddress(); + } + + get _data(): Bytes { + return this._call.inputValues[1].value.toBytes(); + } +} + +export class RegisterCall__Outputs { + _call: RegisterCall; + + constructor(call: RegisterCall) { + this._call = call; + } +} + +export class RenounceOwnershipCall extends ethereum.Call { + get inputs(): RenounceOwnershipCall__Inputs { + return new RenounceOwnershipCall__Inputs(this); + } + + get outputs(): RenounceOwnershipCall__Outputs { + return new RenounceOwnershipCall__Outputs(this); + } +} + +export class RenounceOwnershipCall__Inputs { + _call: RenounceOwnershipCall; + + constructor(call: RenounceOwnershipCall) { + this._call = call; + } +} + +export class RenounceOwnershipCall__Outputs { + _call: RenounceOwnershipCall; + + constructor(call: RenounceOwnershipCall) { + this._call = call; + } +} + +export class SetMaciCall extends ethereum.Call { + get inputs(): SetMaciCall__Inputs { + return new SetMaciCall__Inputs(this); + } + + get outputs(): SetMaciCall__Outputs { + return new SetMaciCall__Outputs(this); + } +} + +export class SetMaciCall__Inputs { + _call: SetMaciCall; + + constructor(call: SetMaciCall) { + this._call = call; + } + + get _maci(): Address { + return this._call.inputValues[0].value.toAddress(); + } +} + +export class SetMaciCall__Outputs { + _call: SetMaciCall; + + constructor(call: SetMaciCall) { + this._call = call; + } +} + +export class SubmitMessageBatchCall extends ethereum.Call { + get inputs(): SubmitMessageBatchCall__Inputs { + return new SubmitMessageBatchCall__Inputs(this); + } + + get outputs(): SubmitMessageBatchCall__Outputs { + return new SubmitMessageBatchCall__Outputs(this); + } +} + +export class SubmitMessageBatchCall__Inputs { + _call: SubmitMessageBatchCall; + + constructor(call: SubmitMessageBatchCall) { + this._call = call; + } + + get _messages(): Array { + return this._call.inputValues[0].value.toTupleArray< + SubmitMessageBatchCall_messagesStruct + >(); + } + + get _encPubKeys(): Array { + return this._call.inputValues[1].value.toTupleArray< + SubmitMessageBatchCall_encPubKeysStruct + >(); + } +} + +export class SubmitMessageBatchCall__Outputs { + _call: SubmitMessageBatchCall; + + constructor(call: SubmitMessageBatchCall) { + this._call = call; + } +} + +export class SubmitMessageBatchCall_messagesStruct extends ethereum.Tuple { + get iv(): BigInt { + return this[0].toBigInt(); + } + + get data(): Array { + return this[1].toBigIntArray(); + } +} + +export class SubmitMessageBatchCall_encPubKeysStruct extends ethereum.Tuple { + get x(): BigInt { + return this[0].toBigInt(); + } + + get y(): BigInt { + return this[1].toBigInt(); + } +} + +export class TransferOwnershipCall extends ethereum.Call { + get inputs(): TransferOwnershipCall__Inputs { + return new TransferOwnershipCall__Inputs(this); + } + + get outputs(): TransferOwnershipCall__Outputs { + return new TransferOwnershipCall__Outputs(this); + } +} + +export class TransferOwnershipCall__Inputs { + _call: TransferOwnershipCall; + + constructor(call: TransferOwnershipCall) { + this._call = call; + } + + get newOwner(): Address { + return this._call.inputValues[0].value.toAddress(); + } +} + +export class TransferOwnershipCall__Outputs { + _call: TransferOwnershipCall; + + constructor(call: TransferOwnershipCall) { + this._call = call; + } +} + +export class WithdrawContributionCall extends ethereum.Call { + get inputs(): WithdrawContributionCall__Inputs { + return new WithdrawContributionCall__Inputs(this); + } + + get outputs(): WithdrawContributionCall__Outputs { + return new WithdrawContributionCall__Outputs(this); + } +} + +export class WithdrawContributionCall__Inputs { + _call: WithdrawContributionCall; + + constructor(call: WithdrawContributionCall) { + this._call = call; + } + + get _contributors(): Array
{ + return this._call.inputValues[0].value.toAddressArray(); + } +} + +export class WithdrawContributionCall__Outputs { + _call: WithdrawContributionCall; + + constructor(call: WithdrawContributionCall) { + this._call = call; + } +} diff --git a/subgraph/generated/templates/Poll/Poll.ts b/subgraph/generated/templates/Poll/Poll.ts new file mode 100644 index 000000000..193c7b156 --- /dev/null +++ b/subgraph/generated/templates/Poll/Poll.ts @@ -0,0 +1,1461 @@ +// THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. + +import { + ethereum, + JSONValue, + TypedMap, + Entity, + Bytes, + Address, + BigInt +} from "@graphprotocol/graph-ts"; + +export class MergeMaciStateAq extends ethereum.Event { + get params(): MergeMaciStateAq__Params { + return new MergeMaciStateAq__Params(this); + } +} + +export class MergeMaciStateAq__Params { + _event: MergeMaciStateAq; + + constructor(event: MergeMaciStateAq) { + this._event = event; + } + + get _stateRoot(): BigInt { + return this._event.parameters[0].value.toBigInt(); + } +} + +export class MergeMaciStateAqSubRoots extends ethereum.Event { + get params(): MergeMaciStateAqSubRoots__Params { + return new MergeMaciStateAqSubRoots__Params(this); + } +} + +export class MergeMaciStateAqSubRoots__Params { + _event: MergeMaciStateAqSubRoots; + + constructor(event: MergeMaciStateAqSubRoots) { + this._event = event; + } + + get _numSrQueueOps(): BigInt { + return this._event.parameters[0].value.toBigInt(); + } +} + +export class MergeMessageAq extends ethereum.Event { + get params(): MergeMessageAq__Params { + return new MergeMessageAq__Params(this); + } +} + +export class MergeMessageAq__Params { + _event: MergeMessageAq; + + constructor(event: MergeMessageAq) { + this._event = event; + } + + get _messageRoot(): BigInt { + return this._event.parameters[0].value.toBigInt(); + } +} + +export class MergeMessageAqSubRoots extends ethereum.Event { + get params(): MergeMessageAqSubRoots__Params { + return new MergeMessageAqSubRoots__Params(this); + } +} + +export class MergeMessageAqSubRoots__Params { + _event: MergeMessageAqSubRoots; + + constructor(event: MergeMessageAqSubRoots) { + this._event = event; + } + + get _numSrQueueOps(): BigInt { + return this._event.parameters[0].value.toBigInt(); + } +} + +export class OwnershipTransferred extends ethereum.Event { + get params(): OwnershipTransferred__Params { + return new OwnershipTransferred__Params(this); + } +} + +export class OwnershipTransferred__Params { + _event: OwnershipTransferred; + + constructor(event: OwnershipTransferred) { + this._event = event; + } + + get previousOwner(): Address { + return this._event.parameters[0].value.toAddress(); + } + + get newOwner(): Address { + return this._event.parameters[1].value.toAddress(); + } +} + +export class PublishMessage extends ethereum.Event { + get params(): PublishMessage__Params { + return new PublishMessage__Params(this); + } +} + +export class PublishMessage__Params { + _event: PublishMessage; + + constructor(event: PublishMessage) { + this._event = event; + } + + get _message(): PublishMessage_messageStruct { + return changetype( + this._event.parameters[0].value.toTuple() + ); + } + + get _encPubKey(): PublishMessage_encPubKeyStruct { + return changetype( + this._event.parameters[1].value.toTuple() + ); + } +} + +export class PublishMessage_messageStruct extends ethereum.Tuple { + get msgType(): BigInt { + return this[0].toBigInt(); + } + + get data(): Array { + return this[1].toBigIntArray(); + } +} + +export class PublishMessage_encPubKeyStruct extends ethereum.Tuple { + get x(): BigInt { + return this[0].toBigInt(); + } + + get y(): BigInt { + return this[1].toBigInt(); + } +} + +export class TopupMessage extends ethereum.Event { + get params(): TopupMessage__Params { + return new TopupMessage__Params(this); + } +} + +export class TopupMessage__Params { + _event: TopupMessage; + + constructor(event: TopupMessage) { + this._event = event; + } + + get _message(): TopupMessage_messageStruct { + return changetype( + this._event.parameters[0].value.toTuple() + ); + } +} + +export class TopupMessage_messageStruct extends ethereum.Tuple { + get msgType(): BigInt { + return this[0].toBigInt(); + } + + get data(): Array { + return this[1].toBigIntArray(); + } +} + +export class Poll__batchSizesResult { + value0: i32; + value1: i32; + value2: i32; + + constructor(value0: i32, value1: i32, value2: i32) { + this.value0 = value0; + this.value1 = value1; + this.value2 = value2; + } + + toMap(): TypedMap { + let map = new TypedMap(); + map.set( + "value0", + ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(this.value0)) + ); + map.set( + "value1", + ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(this.value1)) + ); + map.set( + "value2", + ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(this.value2)) + ); + return map; + } + + getMessageBatchSize(): i32 { + return this.value0; + } + + getTallyBatchSize(): i32 { + return this.value1; + } + + getSubsidyBatchSize(): i32 { + return this.value2; + } +} + +export class Poll__coordinatorPubKeyResult { + value0: BigInt; + value1: BigInt; + + constructor(value0: BigInt, value1: BigInt) { + this.value0 = value0; + this.value1 = value1; + } + + toMap(): TypedMap { + let map = new TypedMap(); + map.set("value0", ethereum.Value.fromUnsignedBigInt(this.value0)); + map.set("value1", ethereum.Value.fromUnsignedBigInt(this.value1)); + return map; + } + + getX(): BigInt { + return this.value0; + } + + getY(): BigInt { + return this.value1; + } +} + +export class Poll__extContractsResult { + value0: Address; + value1: Address; + value2: Address; + value3: Address; + + constructor( + value0: Address, + value1: Address, + value2: Address, + value3: Address + ) { + this.value0 = value0; + this.value1 = value1; + this.value2 = value2; + this.value3 = value3; + } + + toMap(): TypedMap { + let map = new TypedMap(); + map.set("value0", ethereum.Value.fromAddress(this.value0)); + map.set("value1", ethereum.Value.fromAddress(this.value1)); + map.set("value2", ethereum.Value.fromAddress(this.value2)); + map.set("value3", ethereum.Value.fromAddress(this.value3)); + return map; + } + + getVkRegistry(): Address { + return this.value0; + } + + getMaci(): Address { + return this.value1; + } + + getMessageAq(): Address { + return this.value2; + } + + getTopupCredit(): Address { + return this.value3; + } +} + +export class Poll__getDeployTimeAndDurationResult { + value0: BigInt; + value1: BigInt; + + constructor(value0: BigInt, value1: BigInt) { + this.value0 = value0; + this.value1 = value1; + } + + toMap(): TypedMap { + let map = new TypedMap(); + map.set("value0", ethereum.Value.fromUnsignedBigInt(this.value0)); + map.set("value1", ethereum.Value.fromUnsignedBigInt(this.value1)); + return map; + } + + getValue0(): BigInt { + return this.value0; + } + + getValue1(): BigInt { + return this.value1; + } +} + +export class Poll__hashMessageAndEncPubKeyInput_messageStruct extends ethereum.Tuple { + get msgType(): BigInt { + return this[0].toBigInt(); + } + + get data(): Array { + return this[1].toBigIntArray(); + } +} + +export class Poll__hashMessageAndEncPubKeyInput_encPubKeyStruct extends ethereum.Tuple { + get x(): BigInt { + return this[0].toBigInt(); + } + + get y(): BigInt { + return this[1].toBigInt(); + } +} + +export class Poll__maxValuesResult { + value0: BigInt; + value1: BigInt; + + constructor(value0: BigInt, value1: BigInt) { + this.value0 = value0; + this.value1 = value1; + } + + toMap(): TypedMap { + let map = new TypedMap(); + map.set("value0", ethereum.Value.fromUnsignedBigInt(this.value0)); + map.set("value1", ethereum.Value.fromUnsignedBigInt(this.value1)); + return map; + } + + getMaxMessages(): BigInt { + return this.value0; + } + + getMaxVoteOptions(): BigInt { + return this.value1; + } +} + +export class Poll__numSignUpsAndMessagesResult { + value0: BigInt; + value1: BigInt; + + constructor(value0: BigInt, value1: BigInt) { + this.value0 = value0; + this.value1 = value1; + } + + toMap(): TypedMap { + let map = new TypedMap(); + map.set("value0", ethereum.Value.fromUnsignedBigInt(this.value0)); + map.set("value1", ethereum.Value.fromUnsignedBigInt(this.value1)); + return map; + } + + getValue0(): BigInt { + return this.value0; + } + + getValue1(): BigInt { + return this.value1; + } +} + +export class Poll__padAndHashMessageResultValue0Struct extends ethereum.Tuple { + get msgType(): BigInt { + return this[0].toBigInt(); + } + + get data(): Array { + return this[1].toBigIntArray(); + } +} + +export class Poll__padAndHashMessageResultValue1Struct extends ethereum.Tuple { + get x(): BigInt { + return this[0].toBigInt(); + } + + get y(): BigInt { + return this[1].toBigInt(); + } +} + +export class Poll__padAndHashMessageResult { + value0: Poll__padAndHashMessageResultValue0Struct; + value1: Poll__padAndHashMessageResultValue1Struct; + value2: BigInt; + + constructor( + value0: Poll__padAndHashMessageResultValue0Struct, + value1: Poll__padAndHashMessageResultValue1Struct, + value2: BigInt + ) { + this.value0 = value0; + this.value1 = value1; + this.value2 = value2; + } + + toMap(): TypedMap { + let map = new TypedMap(); + map.set("value0", ethereum.Value.fromTuple(this.value0)); + map.set("value1", ethereum.Value.fromTuple(this.value1)); + map.set("value2", ethereum.Value.fromUnsignedBigInt(this.value2)); + return map; + } + + getValue0(): Poll__padAndHashMessageResultValue0Struct { + return this.value0; + } + + getValue1(): Poll__padAndHashMessageResultValue1Struct { + return this.value1; + } + + getValue2(): BigInt { + return this.value2; + } +} + +export class Poll__treeDepthsResult { + value0: i32; + value1: i32; + value2: i32; + value3: i32; + + constructor(value0: i32, value1: i32, value2: i32, value3: i32) { + this.value0 = value0; + this.value1 = value1; + this.value2 = value2; + this.value3 = value3; + } + + toMap(): TypedMap { + let map = new TypedMap(); + map.set( + "value0", + ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(this.value0)) + ); + map.set( + "value1", + ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(this.value1)) + ); + map.set( + "value2", + ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(this.value2)) + ); + map.set( + "value3", + ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(this.value3)) + ); + return map; + } + + getIntStateTreeDepth(): i32 { + return this.value0; + } + + getMessageTreeSubDepth(): i32 { + return this.value1; + } + + getMessageTreeDepth(): i32 { + return this.value2; + } + + getVoteOptionTreeDepth(): i32 { + return this.value3; + } +} + +export class Poll extends ethereum.SmartContract { + static bind(address: Address): Poll { + return new Poll("Poll", address); + } + + batchSizes(): Poll__batchSizesResult { + let result = super.call( + "batchSizes", + "batchSizes():(uint24,uint24,uint24)", + [] + ); + + return new Poll__batchSizesResult( + result[0].toI32(), + result[1].toI32(), + result[2].toI32() + ); + } + + try_batchSizes(): ethereum.CallResult { + let result = super.tryCall( + "batchSizes", + "batchSizes():(uint24,uint24,uint24)", + [] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue( + new Poll__batchSizesResult( + value[0].toI32(), + value[1].toI32(), + value[2].toI32() + ) + ); + } + + coordinatorPubKey(): Poll__coordinatorPubKeyResult { + let result = super.call( + "coordinatorPubKey", + "coordinatorPubKey():(uint256,uint256)", + [] + ); + + return new Poll__coordinatorPubKeyResult( + result[0].toBigInt(), + result[1].toBigInt() + ); + } + + try_coordinatorPubKey(): ethereum.CallResult { + let result = super.tryCall( + "coordinatorPubKey", + "coordinatorPubKey():(uint256,uint256)", + [] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue( + new Poll__coordinatorPubKeyResult( + value[0].toBigInt(), + value[1].toBigInt() + ) + ); + } + + coordinatorPubKeyHash(): BigInt { + let result = super.call( + "coordinatorPubKeyHash", + "coordinatorPubKeyHash():(uint256)", + [] + ); + + return result[0].toBigInt(); + } + + try_coordinatorPubKeyHash(): ethereum.CallResult { + let result = super.tryCall( + "coordinatorPubKeyHash", + "coordinatorPubKeyHash():(uint256)", + [] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBigInt()); + } + + currentSbCommitment(): BigInt { + let result = super.call( + "currentSbCommitment", + "currentSbCommitment():(uint256)", + [] + ); + + return result[0].toBigInt(); + } + + try_currentSbCommitment(): ethereum.CallResult { + let result = super.tryCall( + "currentSbCommitment", + "currentSbCommitment():(uint256)", + [] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBigInt()); + } + + extContracts(): Poll__extContractsResult { + let result = super.call( + "extContracts", + "extContracts():(address,address,address,address)", + [] + ); + + return new Poll__extContractsResult( + result[0].toAddress(), + result[1].toAddress(), + result[2].toAddress(), + result[3].toAddress() + ); + } + + try_extContracts(): ethereum.CallResult { + let result = super.tryCall( + "extContracts", + "extContracts():(address,address,address,address)", + [] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue( + new Poll__extContractsResult( + value[0].toAddress(), + value[1].toAddress(), + value[2].toAddress(), + value[3].toAddress() + ) + ); + } + + getDeployTimeAndDuration(): Poll__getDeployTimeAndDurationResult { + let result = super.call( + "getDeployTimeAndDuration", + "getDeployTimeAndDuration():(uint256,uint256)", + [] + ); + + return new Poll__getDeployTimeAndDurationResult( + result[0].toBigInt(), + result[1].toBigInt() + ); + } + + try_getDeployTimeAndDuration(): ethereum.CallResult< + Poll__getDeployTimeAndDurationResult + > { + let result = super.tryCall( + "getDeployTimeAndDuration", + "getDeployTimeAndDuration():(uint256,uint256)", + [] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue( + new Poll__getDeployTimeAndDurationResult( + value[0].toBigInt(), + value[1].toBigInt() + ) + ); + } + + hash2(array: Array): BigInt { + let result = super.call("hash2", "hash2(uint256[2]):(uint256)", [ + ethereum.Value.fromUnsignedBigIntArray(array) + ]); + + return result[0].toBigInt(); + } + + try_hash2(array: Array): ethereum.CallResult { + let result = super.tryCall("hash2", "hash2(uint256[2]):(uint256)", [ + ethereum.Value.fromUnsignedBigIntArray(array) + ]); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBigInt()); + } + + hash3(array: Array): BigInt { + let result = super.call("hash3", "hash3(uint256[3]):(uint256)", [ + ethereum.Value.fromUnsignedBigIntArray(array) + ]); + + return result[0].toBigInt(); + } + + try_hash3(array: Array): ethereum.CallResult { + let result = super.tryCall("hash3", "hash3(uint256[3]):(uint256)", [ + ethereum.Value.fromUnsignedBigIntArray(array) + ]); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBigInt()); + } + + hash4(array: Array): BigInt { + let result = super.call("hash4", "hash4(uint256[4]):(uint256)", [ + ethereum.Value.fromUnsignedBigIntArray(array) + ]); + + return result[0].toBigInt(); + } + + try_hash4(array: Array): ethereum.CallResult { + let result = super.tryCall("hash4", "hash4(uint256[4]):(uint256)", [ + ethereum.Value.fromUnsignedBigIntArray(array) + ]); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBigInt()); + } + + hash5(array: Array): BigInt { + let result = super.call("hash5", "hash5(uint256[5]):(uint256)", [ + ethereum.Value.fromUnsignedBigIntArray(array) + ]); + + return result[0].toBigInt(); + } + + try_hash5(array: Array): ethereum.CallResult { + let result = super.tryCall("hash5", "hash5(uint256[5]):(uint256)", [ + ethereum.Value.fromUnsignedBigIntArray(array) + ]); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBigInt()); + } + + hashLeftRight(_left: BigInt, _right: BigInt): BigInt { + let result = super.call( + "hashLeftRight", + "hashLeftRight(uint256,uint256):(uint256)", + [ + ethereum.Value.fromUnsignedBigInt(_left), + ethereum.Value.fromUnsignedBigInt(_right) + ] + ); + + return result[0].toBigInt(); + } + + try_hashLeftRight( + _left: BigInt, + _right: BigInt + ): ethereum.CallResult { + let result = super.tryCall( + "hashLeftRight", + "hashLeftRight(uint256,uint256):(uint256)", + [ + ethereum.Value.fromUnsignedBigInt(_left), + ethereum.Value.fromUnsignedBigInt(_right) + ] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBigInt()); + } + + hashMessageAndEncPubKey( + _message: Poll__hashMessageAndEncPubKeyInput_messageStruct, + _encPubKey: Poll__hashMessageAndEncPubKeyInput_encPubKeyStruct + ): BigInt { + let result = super.call( + "hashMessageAndEncPubKey", + "hashMessageAndEncPubKey((uint256,uint256[10]),(uint256,uint256)):(uint256)", + [ethereum.Value.fromTuple(_message), ethereum.Value.fromTuple(_encPubKey)] + ); + + return result[0].toBigInt(); + } + + try_hashMessageAndEncPubKey( + _message: Poll__hashMessageAndEncPubKeyInput_messageStruct, + _encPubKey: Poll__hashMessageAndEncPubKeyInput_encPubKeyStruct + ): ethereum.CallResult { + let result = super.tryCall( + "hashMessageAndEncPubKey", + "hashMessageAndEncPubKey((uint256,uint256[10]),(uint256,uint256)):(uint256)", + [ethereum.Value.fromTuple(_message), ethereum.Value.fromTuple(_encPubKey)] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBigInt()); + } + + maxValues(): Poll__maxValuesResult { + let result = super.call("maxValues", "maxValues():(uint256,uint256)", []); + + return new Poll__maxValuesResult( + result[0].toBigInt(), + result[1].toBigInt() + ); + } + + try_maxValues(): ethereum.CallResult { + let result = super.tryCall( + "maxValues", + "maxValues():(uint256,uint256)", + [] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue( + new Poll__maxValuesResult(value[0].toBigInt(), value[1].toBigInt()) + ); + } + + mergedStateRoot(): BigInt { + let result = super.call( + "mergedStateRoot", + "mergedStateRoot():(uint256)", + [] + ); + + return result[0].toBigInt(); + } + + try_mergedStateRoot(): ethereum.CallResult { + let result = super.tryCall( + "mergedStateRoot", + "mergedStateRoot():(uint256)", + [] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBigInt()); + } + + numSignUpsAndMessages(): Poll__numSignUpsAndMessagesResult { + let result = super.call( + "numSignUpsAndMessages", + "numSignUpsAndMessages():(uint256,uint256)", + [] + ); + + return new Poll__numSignUpsAndMessagesResult( + result[0].toBigInt(), + result[1].toBigInt() + ); + } + + try_numSignUpsAndMessages(): ethereum.CallResult< + Poll__numSignUpsAndMessagesResult + > { + let result = super.tryCall( + "numSignUpsAndMessages", + "numSignUpsAndMessages():(uint256,uint256)", + [] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue( + new Poll__numSignUpsAndMessagesResult( + value[0].toBigInt(), + value[1].toBigInt() + ) + ); + } + + owner(): Address { + let result = super.call("owner", "owner():(address)", []); + + return result[0].toAddress(); + } + + try_owner(): ethereum.CallResult
{ + let result = super.tryCall("owner", "owner():(address)", []); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toAddress()); + } + + padAndHashMessage( + dataToPad: Array, + msgType: BigInt + ): Poll__padAndHashMessageResult { + let result = super.call( + "padAndHashMessage", + "padAndHashMessage(uint256[2],uint256):((uint256,uint256[10]),(uint256,uint256),uint256)", + [ + ethereum.Value.fromUnsignedBigIntArray(dataToPad), + ethereum.Value.fromUnsignedBigInt(msgType) + ] + ); + + return changetype( + new Poll__padAndHashMessageResult( + changetype( + result[0].toTuple() + ), + changetype( + result[1].toTuple() + ), + result[2].toBigInt() + ) + ); + } + + try_padAndHashMessage( + dataToPad: Array, + msgType: BigInt + ): ethereum.CallResult { + let result = super.tryCall( + "padAndHashMessage", + "padAndHashMessage(uint256[2],uint256):((uint256,uint256[10]),(uint256,uint256),uint256)", + [ + ethereum.Value.fromUnsignedBigIntArray(dataToPad), + ethereum.Value.fromUnsignedBigInt(msgType) + ] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue( + changetype( + new Poll__padAndHashMessageResult( + changetype( + value[0].toTuple() + ), + changetype( + value[1].toTuple() + ), + value[2].toBigInt() + ) + ) + ); + } + + sha256Hash(array: Array): BigInt { + let result = super.call("sha256Hash", "sha256Hash(uint256[]):(uint256)", [ + ethereum.Value.fromUnsignedBigIntArray(array) + ]); + + return result[0].toBigInt(); + } + + try_sha256Hash(array: Array): ethereum.CallResult { + let result = super.tryCall( + "sha256Hash", + "sha256Hash(uint256[]):(uint256)", + [ethereum.Value.fromUnsignedBigIntArray(array)] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBigInt()); + } + + stateAqMerged(): boolean { + let result = super.call("stateAqMerged", "stateAqMerged():(bool)", []); + + return result[0].toBoolean(); + } + + try_stateAqMerged(): ethereum.CallResult { + let result = super.tryCall("stateAqMerged", "stateAqMerged():(bool)", []); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBoolean()); + } + + treeDepths(): Poll__treeDepthsResult { + let result = super.call( + "treeDepths", + "treeDepths():(uint8,uint8,uint8,uint8)", + [] + ); + + return new Poll__treeDepthsResult( + result[0].toI32(), + result[1].toI32(), + result[2].toI32(), + result[3].toI32() + ); + } + + try_treeDepths(): ethereum.CallResult { + let result = super.tryCall( + "treeDepths", + "treeDepths():(uint8,uint8,uint8,uint8)", + [] + ); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue( + new Poll__treeDepthsResult( + value[0].toI32(), + value[1].toI32(), + value[2].toI32(), + value[3].toI32() + ) + ); + } +} + +export class ConstructorCall extends ethereum.Call { + get inputs(): ConstructorCall__Inputs { + return new ConstructorCall__Inputs(this); + } + + get outputs(): ConstructorCall__Outputs { + return new ConstructorCall__Outputs(this); + } +} + +export class ConstructorCall__Inputs { + _call: ConstructorCall; + + constructor(call: ConstructorCall) { + this._call = call; + } + + get _duration(): BigInt { + return this._call.inputValues[0].value.toBigInt(); + } + + get _maxValues(): ConstructorCall_maxValuesStruct { + return changetype( + this._call.inputValues[1].value.toTuple() + ); + } + + get _treeDepths(): ConstructorCall_treeDepthsStruct { + return changetype( + this._call.inputValues[2].value.toTuple() + ); + } + + get _batchSizes(): ConstructorCall_batchSizesStruct { + return changetype( + this._call.inputValues[3].value.toTuple() + ); + } + + get _coordinatorPubKey(): ConstructorCall_coordinatorPubKeyStruct { + return changetype( + this._call.inputValues[4].value.toTuple() + ); + } + + get _extContracts(): ConstructorCall_extContractsStruct { + return changetype( + this._call.inputValues[5].value.toTuple() + ); + } +} + +export class ConstructorCall__Outputs { + _call: ConstructorCall; + + constructor(call: ConstructorCall) { + this._call = call; + } +} + +export class ConstructorCall_maxValuesStruct extends ethereum.Tuple { + get maxMessages(): BigInt { + return this[0].toBigInt(); + } + + get maxVoteOptions(): BigInt { + return this[1].toBigInt(); + } +} + +export class ConstructorCall_treeDepthsStruct extends ethereum.Tuple { + get intStateTreeDepth(): i32 { + return this[0].toI32(); + } + + get messageTreeSubDepth(): i32 { + return this[1].toI32(); + } + + get messageTreeDepth(): i32 { + return this[2].toI32(); + } + + get voteOptionTreeDepth(): i32 { + return this[3].toI32(); + } +} + +export class ConstructorCall_batchSizesStruct extends ethereum.Tuple { + get messageBatchSize(): i32 { + return this[0].toI32(); + } + + get tallyBatchSize(): i32 { + return this[1].toI32(); + } + + get subsidyBatchSize(): i32 { + return this[2].toI32(); + } +} + +export class ConstructorCall_coordinatorPubKeyStruct extends ethereum.Tuple { + get x(): BigInt { + return this[0].toBigInt(); + } + + get y(): BigInt { + return this[1].toBigInt(); + } +} + +export class ConstructorCall_extContractsStruct extends ethereum.Tuple { + get vkRegistry(): Address { + return this[0].toAddress(); + } + + get maci(): Address { + return this[1].toAddress(); + } + + get messageAq(): Address { + return this[2].toAddress(); + } + + get topupCredit(): Address { + return this[3].toAddress(); + } +} + +export class InitCall extends ethereum.Call { + get inputs(): InitCall__Inputs { + return new InitCall__Inputs(this); + } + + get outputs(): InitCall__Outputs { + return new InitCall__Outputs(this); + } +} + +export class InitCall__Inputs { + _call: InitCall; + + constructor(call: InitCall) { + this._call = call; + } +} + +export class InitCall__Outputs { + _call: InitCall; + + constructor(call: InitCall) { + this._call = call; + } +} + +export class MergeMaciStateAqCall extends ethereum.Call { + get inputs(): MergeMaciStateAqCall__Inputs { + return new MergeMaciStateAqCall__Inputs(this); + } + + get outputs(): MergeMaciStateAqCall__Outputs { + return new MergeMaciStateAqCall__Outputs(this); + } +} + +export class MergeMaciStateAqCall__Inputs { + _call: MergeMaciStateAqCall; + + constructor(call: MergeMaciStateAqCall) { + this._call = call; + } + + get _pollId(): BigInt { + return this._call.inputValues[0].value.toBigInt(); + } +} + +export class MergeMaciStateAqCall__Outputs { + _call: MergeMaciStateAqCall; + + constructor(call: MergeMaciStateAqCall) { + this._call = call; + } +} + +export class MergeMaciStateAqSubRootsCall extends ethereum.Call { + get inputs(): MergeMaciStateAqSubRootsCall__Inputs { + return new MergeMaciStateAqSubRootsCall__Inputs(this); + } + + get outputs(): MergeMaciStateAqSubRootsCall__Outputs { + return new MergeMaciStateAqSubRootsCall__Outputs(this); + } +} + +export class MergeMaciStateAqSubRootsCall__Inputs { + _call: MergeMaciStateAqSubRootsCall; + + constructor(call: MergeMaciStateAqSubRootsCall) { + this._call = call; + } + + get _numSrQueueOps(): BigInt { + return this._call.inputValues[0].value.toBigInt(); + } + + get _pollId(): BigInt { + return this._call.inputValues[1].value.toBigInt(); + } +} + +export class MergeMaciStateAqSubRootsCall__Outputs { + _call: MergeMaciStateAqSubRootsCall; + + constructor(call: MergeMaciStateAqSubRootsCall) { + this._call = call; + } +} + +export class MergeMessageAqCall extends ethereum.Call { + get inputs(): MergeMessageAqCall__Inputs { + return new MergeMessageAqCall__Inputs(this); + } + + get outputs(): MergeMessageAqCall__Outputs { + return new MergeMessageAqCall__Outputs(this); + } +} + +export class MergeMessageAqCall__Inputs { + _call: MergeMessageAqCall; + + constructor(call: MergeMessageAqCall) { + this._call = call; + } +} + +export class MergeMessageAqCall__Outputs { + _call: MergeMessageAqCall; + + constructor(call: MergeMessageAqCall) { + this._call = call; + } +} + +export class MergeMessageAqSubRootsCall extends ethereum.Call { + get inputs(): MergeMessageAqSubRootsCall__Inputs { + return new MergeMessageAqSubRootsCall__Inputs(this); + } + + get outputs(): MergeMessageAqSubRootsCall__Outputs { + return new MergeMessageAqSubRootsCall__Outputs(this); + } +} + +export class MergeMessageAqSubRootsCall__Inputs { + _call: MergeMessageAqSubRootsCall; + + constructor(call: MergeMessageAqSubRootsCall) { + this._call = call; + } + + get _numSrQueueOps(): BigInt { + return this._call.inputValues[0].value.toBigInt(); + } +} + +export class MergeMessageAqSubRootsCall__Outputs { + _call: MergeMessageAqSubRootsCall; + + constructor(call: MergeMessageAqSubRootsCall) { + this._call = call; + } +} + +export class PublishMessageCall extends ethereum.Call { + get inputs(): PublishMessageCall__Inputs { + return new PublishMessageCall__Inputs(this); + } + + get outputs(): PublishMessageCall__Outputs { + return new PublishMessageCall__Outputs(this); + } +} + +export class PublishMessageCall__Inputs { + _call: PublishMessageCall; + + constructor(call: PublishMessageCall) { + this._call = call; + } + + get _message(): PublishMessageCall_messageStruct { + return changetype( + this._call.inputValues[0].value.toTuple() + ); + } + + get _encPubKey(): PublishMessageCall_encPubKeyStruct { + return changetype( + this._call.inputValues[1].value.toTuple() + ); + } +} + +export class PublishMessageCall__Outputs { + _call: PublishMessageCall; + + constructor(call: PublishMessageCall) { + this._call = call; + } +} + +export class PublishMessageCall_messageStruct extends ethereum.Tuple { + get msgType(): BigInt { + return this[0].toBigInt(); + } + + get data(): Array { + return this[1].toBigIntArray(); + } +} + +export class PublishMessageCall_encPubKeyStruct extends ethereum.Tuple { + get x(): BigInt { + return this[0].toBigInt(); + } + + get y(): BigInt { + return this[1].toBigInt(); + } +} + +export class RenounceOwnershipCall extends ethereum.Call { + get inputs(): RenounceOwnershipCall__Inputs { + return new RenounceOwnershipCall__Inputs(this); + } + + get outputs(): RenounceOwnershipCall__Outputs { + return new RenounceOwnershipCall__Outputs(this); + } +} + +export class RenounceOwnershipCall__Inputs { + _call: RenounceOwnershipCall; + + constructor(call: RenounceOwnershipCall) { + this._call = call; + } +} + +export class RenounceOwnershipCall__Outputs { + _call: RenounceOwnershipCall; + + constructor(call: RenounceOwnershipCall) { + this._call = call; + } +} + +export class TopupCall extends ethereum.Call { + get inputs(): TopupCall__Inputs { + return new TopupCall__Inputs(this); + } + + get outputs(): TopupCall__Outputs { + return new TopupCall__Outputs(this); + } +} + +export class TopupCall__Inputs { + _call: TopupCall; + + constructor(call: TopupCall) { + this._call = call; + } + + get stateIndex(): BigInt { + return this._call.inputValues[0].value.toBigInt(); + } + + get amount(): BigInt { + return this._call.inputValues[1].value.toBigInt(); + } +} + +export class TopupCall__Outputs { + _call: TopupCall; + + constructor(call: TopupCall) { + this._call = call; + } +} + +export class TransferOwnershipCall extends ethereum.Call { + get inputs(): TransferOwnershipCall__Inputs { + return new TransferOwnershipCall__Inputs(this); + } + + get outputs(): TransferOwnershipCall__Outputs { + return new TransferOwnershipCall__Outputs(this); + } +} + +export class TransferOwnershipCall__Inputs { + _call: TransferOwnershipCall; + + constructor(call: TransferOwnershipCall) { + this._call = call; + } + + get newOwner(): Address { + return this._call.inputValues[0].value.toAddress(); + } +} + +export class TransferOwnershipCall__Outputs { + _call: TransferOwnershipCall; + + constructor(call: TransferOwnershipCall) { + this._call = call; + } +} diff --git a/subgraph/schema.graphql b/subgraph/schema.graphql index 4236432fd..ab72afa11 100644 --- a/subgraph/schema.graphql +++ b/subgraph/schema.graphql @@ -1,4 +1,4 @@ -type FundingRoundFactory @entity { +type ClrFund @entity { id: ID! owner: Bytes coordinator: Bytes @@ -26,7 +26,7 @@ type FundingRoundFactory @entity { maxMessages: BigInt maxVoteOptions: BigInt - fundingRounds: [FundingRound!] @derivedFrom(field: "fundingRoundFactory") + fundingRounds: [FundingRound!] @derivedFrom(field: "clrFund") createdAt: String lastUpdatedAt: String @@ -35,7 +35,7 @@ type FundingRoundFactory @entity { type Message @entity { id: ID! data: [BigInt!] - iv: BigInt! + msgType: BigInt! publicKey: PublicKey fundingRound: FundingRound submittedBy: Bytes @@ -56,8 +56,9 @@ type PublicKey @entity { type FundingRound @entity { id: ID! - fundingRoundFactory: FundingRoundFactory + clrFund: ClrFund maci: Bytes + pollAddress: Bytes messages: [Message!] @derivedFrom(field: "fundingRound") recipientRegistry: RecipientRegistry recipientRegistryAddress: Bytes @@ -69,6 +70,12 @@ type FundingRound @entity { signUpDeadline: BigInt votingDeadline: BigInt + stateTreeDepth: Int + messageTreeDepth: Int + voteOptionTreeDepth: Int + + coordinatorPubKeyX: BigInt + coordinatorPubKeyY: BigInt coordinator: Bytes voiceCreditFactor: BigInt @@ -91,7 +98,7 @@ type FundingRound @entity { type RecipientRegistry @entity { id: ID! - fundingRoundFactory: FundingRoundFactory + clrFund: ClrFund baseDeposit: BigInt challengePeriodDuration: BigInt controller: Bytes @@ -127,7 +134,7 @@ type Recipient @entity { type ContributorRegistry @entity { id: ID! - fundingRoundFactory: FundingRoundFactory! + clrFund: ClrFund! context: String owner: Bytes contributors: [Contributor!] @derivedFrom(field: "contributorRegistry") @@ -154,7 +161,6 @@ type Contributor @entity { type Coordinator @entity { id: ID! - # fundingRoundFactory: FundingRoundFactory! contact: String createdAt: String diff --git a/subgraph/src/FundingRoundFactoryMapping.ts b/subgraph/src/ClrFundMapping.ts similarity index 55% rename from subgraph/src/FundingRoundFactoryMapping.ts rename to subgraph/src/ClrFundMapping.ts index 6a081c229..a957a9fad 100644 --- a/subgraph/src/FundingRoundFactoryMapping.ts +++ b/subgraph/src/ClrFundMapping.ts @@ -7,16 +7,18 @@ import { RoundFinalized, RoundStarted, TokenChanged, - FundingRoundFactory as FundingRoundFactoryContract, -} from '../generated/FundingRoundFactory/FundingRoundFactory' + ClrFund as ClrFundContract, +} from '../generated/ClrFund/ClrFund' -import { Token as TokenContract } from '../generated/FundingRoundFactory/Token' +import { Token as TokenContract } from '../generated/ClrFund/Token' +import { Poll as PollContract } from '../generated/ClrFund/Poll' +import { MACI as MACIContract } from '../generated/ClrFund/MACI' -import { MACIFactory as MACIFactoryContract } from '../generated/FundingRoundFactory/MACIFactory' -import { FundingRound as FundingRoundContract } from '../generated/FundingRoundFactory/FundingRound' +import { MACIFactory as MACIFactoryContract } from '../generated/ClrFund/MACIFactory' +import { FundingRound as FundingRoundContract } from '../generated/ClrFund/FundingRound' -import { OptimisticRecipientRegistry as RecipientRegistryContract } from '../generated/FundingRoundFactory/OptimisticRecipientRegistry' -import { BrightIdUserRegistry as BrightIdUserRegistryContract } from '../generated/FundingRoundFactory/BrightIdUserRegistry' +import { OptimisticRecipientRegistry as RecipientRegistryContract } from '../generated/ClrFund/OptimisticRecipientRegistry' +import { BrightIdUserRegistry as BrightIdUserRegistryContract } from '../generated/ClrFund/BrightIdUserRegistry' import { createRecipientRegistry } from './RecipientRegistry' import { @@ -25,7 +27,7 @@ import { MACI as MACITemplate, } from '../generated/templates' import { - FundingRoundFactory, + ClrFund, FundingRound, RecipientRegistry, ContributorRegistry, @@ -33,12 +35,12 @@ import { } from '../generated/schema' function createContributorRegistry( - fundingRoundFactoryAddress: Address, + clrFundAddress: Address, contributorRegistryAddress: Address ): ContributorRegistry { log.info('New contributorRegistry', []) - let owner = fundingRoundFactoryAddress + let owner = clrFundAddress let contributorRegistryId = contributorRegistryAddress.toHexString() let brightIdUserRegistryContract = BrightIdUserRegistryContract.bind( @@ -50,8 +52,7 @@ function createContributorRegistry( ? 'BrightId user registry' : 'simple user registry' contributorRegistry.owner = owner - contributorRegistry.fundingRoundFactory = - fundingRoundFactoryAddress.toHexString() + contributorRegistry.clrFund = clrFundAddress.toHexString() contributorRegistry.save() return contributorRegistry @@ -82,108 +83,86 @@ function createToken(tokenAddress: Address, blockTimestamp: BigInt): Token { return token } -function createOrUpdateFundingRoundFactory( - fundingRoundFactoryAddress: Address, +function createOrUpdateClrFund( + clrFundAddress: Address, timestamp: BigInt -): FundingRoundFactory { - let fundingRoundFactoryId = fundingRoundFactoryAddress.toHexString() +): ClrFund { + let clrFundId = clrFundAddress.toHexString() - let fundingRoundFactoryContract = FundingRoundFactoryContract.bind( - fundingRoundFactoryAddress - ) + let clrFundContract = ClrFundContract.bind(clrFundAddress) - let loadedFactory = FundingRoundFactory.load(fundingRoundFactoryId) - let fundingRoundFactory = loadedFactory - ? loadedFactory - : new FundingRoundFactory(fundingRoundFactoryId) + let loadedClrFund = ClrFund.load(clrFundId) + let clrFund = loadedClrFund ? loadedClrFund : new ClrFund(clrFundId) - let maciFactoryAddressCall = fundingRoundFactoryContract.try_maciFactory() + let maciFactoryAddressCall = clrFundContract.try_maciFactory() if (maciFactoryAddressCall.reverted) { log.info('TRY maciFactoryAddress Failed', []) } else { let maciFactoryAddress = maciFactoryAddressCall.value let maciFactoryContract = MACIFactoryContract.bind(maciFactoryAddress) - let batchUstVerifier = maciFactoryContract.batchUstVerifier() - let qvtVerifier = maciFactoryContract.qvtVerifier() - let votingDuration = maciFactoryContract.votingDuration() - let signUpDuration = maciFactoryContract.signUpDuration() - - let tallyBatchSize = maciFactoryContract.batchSizes().value0 - let messageBatchSize = maciFactoryContract.batchSizes().value1 - let stateTreeDepth = maciFactoryContract.treeDepths().value0 - let messageTreeDepth = maciFactoryContract.treeDepths().value1 - let voteOptionTreeDepth = maciFactoryContract.treeDepths().value2 - let maxUsers = maciFactoryContract.maxValues().value0 - let maxMessages = maciFactoryContract.maxValues().value1 - let maxVoteOptions = maciFactoryContract.maxValues().value2 - - fundingRoundFactory.maciFactory = maciFactoryAddress - fundingRoundFactory.batchUstVerifier = batchUstVerifier - fundingRoundFactory.qvtVerifier = qvtVerifier - fundingRoundFactory.votingDuration = votingDuration - fundingRoundFactory.signUpDuration = signUpDuration - fundingRoundFactory.tallyBatchSize = BigInt.fromI32(tallyBatchSize) - fundingRoundFactory.messageBatchSize = BigInt.fromI32(messageBatchSize) - fundingRoundFactory.messageTreeDepth = BigInt.fromI32(messageTreeDepth) - fundingRoundFactory.stateTreeDepth = BigInt.fromI32(stateTreeDepth) - fundingRoundFactory.voteOptionTreeDepth = - BigInt.fromI32(voteOptionTreeDepth) - fundingRoundFactory.maxUsers = maxUsers - fundingRoundFactory.maxMessages = maxMessages - fundingRoundFactory.maxVoteOptions = maxVoteOptions + + let stateTreeDepth = maciFactoryContract.stateTreeDepth() + let messageTreeDepth = maciFactoryContract.treeDepths().value2 + let voteOptionTreeDepth = maciFactoryContract.treeDepths().value3 + let maxMessages = maciFactoryContract.maxValues().value0 + let maxVoteOptions = maciFactoryContract.maxValues().value1 + + clrFund.maciFactory = maciFactoryAddress + clrFund.messageTreeDepth = BigInt.fromI32(messageTreeDepth) + clrFund.stateTreeDepth = BigInt.fromI32(stateTreeDepth) + clrFund.voteOptionTreeDepth = BigInt.fromI32(voteOptionTreeDepth) + clrFund.maxMessages = maxMessages + clrFund.maxVoteOptions = maxVoteOptions log.info('New maciFactoryAddress', []) } - let nativeToken = fundingRoundFactoryContract.nativeToken() + let nativeToken = clrFundContract.nativeToken() let nativeTokenId = nativeToken.toHexString() let nativeTokenEntity = Token.load(nativeTokenId) if (!nativeTokenEntity) { createToken(nativeToken, timestamp) } - let coordinator = fundingRoundFactoryContract.coordinator() - let owner = fundingRoundFactoryContract.owner() + let coordinator = clrFundContract.coordinator() + let owner = clrFundContract.owner() //Check if these registries already exist/are being tracked - let recipientRegistryAddress = fundingRoundFactoryContract.recipientRegistry() + let recipientRegistryAddress = clrFundContract.recipientRegistry() let recipientRegistryId = recipientRegistryAddress.toHexString() let recipientRegistry = RecipientRegistry.load(recipientRegistryId) if (!recipientRegistry) { - createRecipientRegistry(fundingRoundFactoryId, recipientRegistryAddress) + createRecipientRegistry(clrFundId, recipientRegistryAddress) } - let contributorRegistryAddress = fundingRoundFactoryContract.userRegistry() + let contributorRegistryAddress = clrFundContract.userRegistry() let contributorRegistryId = contributorRegistryAddress.toHexString() let contributorRegistry = ContributorRegistry.load(contributorRegistryId) if (!contributorRegistry) { - createContributorRegistry( - fundingRoundFactoryAddress, - contributorRegistryAddress - ) + createContributorRegistry(clrFundAddress, contributorRegistryAddress) } - fundingRoundFactory.contributorRegistry = contributorRegistryId - fundingRoundFactory.recipientRegistry = recipientRegistryId - fundingRoundFactory.contributorRegistryAddress = contributorRegistryAddress - fundingRoundFactory.recipientRegistryAddress = recipientRegistryAddress - fundingRoundFactory.nativeToken = nativeToken - fundingRoundFactory.nativeTokenInfo = nativeTokenId - fundingRoundFactory.coordinator = coordinator - fundingRoundFactory.owner = owner - - fundingRoundFactory.save() - return fundingRoundFactory + clrFund.contributorRegistry = contributorRegistryId + clrFund.recipientRegistry = recipientRegistryId + clrFund.contributorRegistryAddress = contributorRegistryAddress + clrFund.recipientRegistryAddress = recipientRegistryAddress + clrFund.nativeToken = nativeToken + clrFund.nativeTokenInfo = nativeTokenId + clrFund.coordinator = coordinator + clrFund.owner = owner + + clrFund.save() + return clrFund } export function handleCoordinatorChanged(event: CoordinatorChanged): void { log.info('handleCoordinatorChanged', []) - createOrUpdateFundingRoundFactory(event.address, event.block.timestamp) + createOrUpdateClrFund(event.address, event.block.timestamp) } export function handleFundingSourceAdded(event: FundingSourceAdded): void { log.info('handleFundingSourceAdded', []) - createOrUpdateFundingRoundFactory(event.address, event.block.timestamp) + createOrUpdateClrFund(event.address, event.block.timestamp) } export function handleFundingSourceRemoved(event: FundingSourceRemoved): void { @@ -192,7 +171,7 @@ export function handleFundingSourceRemoved(event: FundingSourceRemoved): void { export function handleOwnershipTransferred(event: OwnershipTransferred): void { log.info('handleOwnershipTransferred', [event.params.newOwner.toHexString()]) - createOrUpdateFundingRoundFactory(event.address, event.block.timestamp) + createOrUpdateClrFund(event.address, event.block.timestamp) } export function handleRoundFinalized(event: RoundFinalized): void { @@ -224,22 +203,14 @@ export function handleRoundFinalized(event: RoundFinalized): void { export function handleRoundStarted(event: RoundStarted): void { log.info('handleRoundStarted!!!', []) - let fundingRoundFactoryId = event.address.toHexString() + let clrFundId = event.address.toHexString() let fundingRoundId = event.params._round.toHexString() - let fundingRoundFactory = createOrUpdateFundingRoundFactory( - event.address, - event.block.timestamp - ) + let clrFund = createOrUpdateClrFund(event.address, event.block.timestamp) FundingRoundTemplate.create(event.params._round) - let fundingRoundFactoryContract = FundingRoundFactoryContract.bind( - event.address - ) let fundingRoundAddress = event.params._round - let fundingRoundContract = FundingRoundContract.bind(fundingRoundAddress) - let fundingRound = new FundingRound(fundingRoundId) log.info('Get all the things', []) @@ -257,7 +228,7 @@ export function handleRoundStarted(event: RoundStarted): void { MACITemplate.create(maci) - fundingRound.fundingRoundFactory = fundingRoundFactoryId + fundingRound.clrFund = clrFundId fundingRound.nativeToken = nativeToken fundingRound.nativeTokenInfo = nativeTokenId fundingRound.coordinator = coordinator @@ -265,43 +236,64 @@ export function handleRoundStarted(event: RoundStarted): void { fundingRound.voiceCreditFactor = voiceCreditFactor fundingRound.contributorCount = contributorCount fundingRound.matchingPoolSize = matchingPoolSize + fundingRound.startTime = event.block.timestamp - let recipientRegistryId = fundingRoundFactory.recipientRegistry - let recipientRegistryAddress = fundingRoundFactory.recipientRegistryAddress - - let contributorRegistryId = fundingRoundFactory.contributorRegistry - let contributorRegistryAddress = - fundingRoundFactory.contributorRegistryAddress + let recipientRegistryId = clrFund.recipientRegistry + let recipientRegistryAddress = clrFund.recipientRegistryAddress - log.info('TRY maciFactoryAddress', []) - let maciFactoryAddressCall = fundingRoundFactoryContract.try_maciFactory() + let contributorRegistryId = clrFund.contributorRegistry + let contributorRegistryAddress = clrFund.contributorRegistryAddress - if (maciFactoryAddressCall.reverted) { - log.info('TRY maciFactoryAddress Failed', []) - } else { - let maciFactoryAddress = maciFactoryAddressCall.value - let maciFactoryContract = MACIFactoryContract.bind(maciFactoryAddress) - let votingDuration = maciFactoryContract.votingDuration() - let signUpDuration = maciFactoryContract.signUpDuration() + let maciContract = MACIContract.bind(maci) + let stateTreeDepth = maciContract.try_stateTreeDepth() + if (!stateTreeDepth.reverted) { + fundingRound.stateTreeDepth = stateTreeDepth.value + } - fundingRound.signUpDeadline = event.block.timestamp.plus(signUpDuration) - fundingRound.votingDeadline = event.block.timestamp - .plus(signUpDuration) - .plus(votingDuration) + log.info('TRY pollAddress', []) + let pollAddressCall = fundingRoundContract.try_poll() - log.info('New maciFactoryAddress', []) + if (pollAddressCall.reverted) { + log.info('TRY pollAddress Failed', []) + } else { + let pollAddress = pollAddressCall.value + fundingRound.pollAddress = pollAddress + + let pollContract = PollContract.bind(pollAddress) + let deployTimeAndDuration = pollContract.try_getDeployTimeAndDuration() + if (!deployTimeAndDuration.reverted) { + let deployTime = deployTimeAndDuration.value.value0 + let duration = deployTimeAndDuration.value.value1 + // MACI's signup deadline is the same as the voting deadline + fundingRound.signUpDeadline = deployTime.plus(duration) + fundingRound.votingDeadline = fundingRound.signUpDeadline + fundingRound.startTime = deployTime + + log.info('New pollAddress', []) + } + + let treeDepths = pollContract.try_treeDepths() + if (!treeDepths.reverted) { + fundingRound.messageTreeDepth = treeDepths.value.value2 + fundingRound.voteOptionTreeDepth = treeDepths.value.value3 + } + + let coordinatorPubKey = pollContract.try_coordinatorPubKey() + if (!coordinatorPubKey.reverted) { + fundingRound.coordinatorPubKeyX = coordinatorPubKey.value.value0 + fundingRound.coordinatorPubKeyY = coordinatorPubKey.value.value1 + } } - fundingRoundFactory.currentRound = fundingRoundId + clrFund.currentRound = fundingRoundId - fundingRoundFactory.save() + clrFund.save() //NOTE: Set the registries for the round fundingRound.contributorRegistry = contributorRegistryId fundingRound.recipientRegistry = recipientRegistryId fundingRound.contributorRegistryAddress = contributorRegistryAddress fundingRound.recipientRegistryAddress = recipientRegistryAddress - fundingRound.startTime = event.block.timestamp fundingRound.recipientCount = BigInt.fromString('0') fundingRound.save() @@ -309,5 +301,5 @@ export function handleRoundStarted(event: RoundStarted): void { export function handleTokenChanged(event: TokenChanged): void { log.info('handleTokenChanged {}', [event.params._token.toHexString()]) - createOrUpdateFundingRoundFactory(event.address, event.block.timestamp) + createOrUpdateClrFund(event.address, event.block.timestamp) } diff --git a/subgraph/src/MACIMapping.ts b/subgraph/src/MACIMapping.ts index fb9876957..cbc2c17d7 100644 --- a/subgraph/src/MACIMapping.ts +++ b/subgraph/src/MACIMapping.ts @@ -1,7 +1,8 @@ import { log, ByteArray, crypto, BigInt } from '@graphprotocol/graph-ts' -import { PublishMessage, SignUp } from '../generated/templates/MACI/MACI' +import { SignUp } from '../generated/templates/MACI/MACI' -import { FundingRound, Message, PublicKey } from '../generated/schema' +import { FundingRound, PublicKey } from '../generated/schema' +import { makePublicKeyId } from './PublicKey' // It is also possible to access smart contracts from mappings. For // example, the contract that has emitted the event can be connected to @@ -19,71 +20,8 @@ import { FundingRound, Message, PublicKey } from '../generated/schema' // - contract.verifications(...) // - contract.verifier(...) -function makePubKeyId(x: BigInt, y: BigInt): string { - let pubKeyX = x.toString() - let pubKeyY = y.toString() - let pubKeyXY = ByteArray.fromUTF8(pubKeyX + '.' + pubKeyY) - let publicKeyId = crypto.keccak256(pubKeyXY).toHexString() - return publicKeyId -} - -export function handlePublishMessage(event: PublishMessage): void { - if (!event.transaction.to) { - log.error( - 'Error: handlePublishMessage failed fundingRound not registered', - [] - ) - return - } - - let fundingRoundId = event.transaction.to!.toHex() - let fundingRound = FundingRound.load(fundingRoundId) - if (fundingRound == null) { - log.error( - 'Error: handlePublishMessage failed fundingRound not registered', - [] - ) - return - } - - let messageID = - event.transaction.hash.toHexString() + - '-' + - event.transactionLogIndex.toString() - - let timestamp = event.block.timestamp.toString() - let message = new Message(messageID) - message.data = event.params._message.data - message.iv = event.params._message.iv - message.blockNumber = event.block.number - message.transactionIndex = event.transaction.index - message.submittedBy = event.transaction.from - - let publicKeyId = makePubKeyId( - event.params._encPubKey.x, - event.params._encPubKey.y - ) - let publicKey = PublicKey.load(publicKeyId) - - //NOTE: If the public keys aren't being tracked initialize them - if (publicKey == null) { - let publicKey = new PublicKey(publicKeyId) - publicKey.x = event.params._encPubKey.x - publicKey.y = event.params._encPubKey.y - publicKey.fundingRound = fundingRoundId - - publicKey.save() - } - - message.publicKey = publicKeyId - message.timestamp = timestamp - message.fundingRound = fundingRoundId - message.save() - log.info('handlePublishMessage', []) -} - export function handleSignUp(event: SignUp): void { - let publicKeyId = makePubKeyId( + let publicKeyId = makePublicKeyId( event.params._userPubKey.x, event.params._userPubKey.y ) diff --git a/subgraph/src/PollMapping.ts b/subgraph/src/PollMapping.ts new file mode 100644 index 000000000..59360c3c3 --- /dev/null +++ b/subgraph/src/PollMapping.ts @@ -0,0 +1,60 @@ +import { log, ByteArray, crypto, BigInt } from '@graphprotocol/graph-ts' +import { PublishMessage } from '../generated/templates/Poll/Poll' + +import { FundingRound, Message, PublicKey } from '../generated/schema' +import { makePublicKeyId } from './PublicKey' + +export function handlePublishMessage(event: PublishMessage): void { + if (!event.transaction.to) { + log.error( + 'Error: handlePublishMessage failed fundingRound not registered', + [] + ) + return + } + + let fundingRoundId = event.transaction.to!.toHex() + let fundingRound = FundingRound.load(fundingRoundId) + if (fundingRound == null) { + log.error( + 'Error: handlePublishMessage failed fundingRound not registered', + [] + ) + return + } + + let messageID = + event.transaction.hash.toHexString() + + '-' + + event.transactionLogIndex.toString() + + let timestamp = event.block.timestamp.toString() + let message = new Message(messageID) + message.data = event.params._message.data + message.msgType = event.params._message.msgType + message.blockNumber = event.block.number + message.transactionIndex = event.transaction.index + message.submittedBy = event.transaction.from + + let publicKeyId = makePublicKeyId( + event.params._encPubKey.x, + event.params._encPubKey.y + ) + let publicKey = PublicKey.load(publicKeyId) + + //NOTE: If the public keys aren't being tracked initialize them + if (publicKey == null) { + let publicKey = new PublicKey(publicKeyId) + publicKey.x = event.params._encPubKey.x + publicKey.y = event.params._encPubKey.y + publicKey.fundingRound = fundingRoundId + + publicKey.save() + } + + message.publicKey = publicKeyId + message.timestamp = timestamp + message.fundingRound = fundingRoundId + message.save() + log.info('handlePublishMessage', []) +} diff --git a/subgraph/src/PublicKey.ts b/subgraph/src/PublicKey.ts new file mode 100644 index 000000000..9859dfe8e --- /dev/null +++ b/subgraph/src/PublicKey.ts @@ -0,0 +1,12 @@ +import { ByteArray, crypto, BigInt } from '@graphprotocol/graph-ts' +import { FundingRound, PublicKey } from '../generated/schema' + +// Create the PublicKey entity id used in subgraph +// using MACI public key x and y values +export function makePublicKeyId(x: BigInt, y: BigInt): string { + let publicKeyX = x.toString() + let publicKeyY = y.toString() + let publicKeyXY = ByteArray.fromUTF8(publicKeyX + '.' + publicKeyY) + let publicKeyId = crypto.keccak256(publicKeyXY).toHexString() + return publicKeyId +} diff --git a/subgraph/src/RecipientRegistry.ts b/subgraph/src/RecipientRegistry.ts index f809b70f6..a9af36950 100644 --- a/subgraph/src/RecipientRegistry.ts +++ b/subgraph/src/RecipientRegistry.ts @@ -1,14 +1,14 @@ import { Address, BigInt } from '@graphprotocol/graph-ts' import { OptimisticRecipientRegistry as RecipientRegistryContract } from '../generated/OptimisticRecipientRegistry/OptimisticRecipientRegistry' -import { RecipientRegistry, FundingRoundFactory } from '../generated/schema' +import { RecipientRegistry, ClrFund } from '../generated/schema' import { OptimisticRecipientRegistry as RecipientRegistryTemplate } from '../generated/templates' /* * Create the recipient registry entity */ export function createRecipientRegistry( - fundingRoundFactoryId: string, + clrFundId: string, recipientRegistryAddress: Address ): RecipientRegistry { let recipientRegistryId = recipientRegistryAddress.toHexString() @@ -41,7 +41,7 @@ export function createRecipientRegistry( if (!owner.reverted) { recipientRegistry.owner = owner.value } - recipientRegistry.fundingRoundFactory = fundingRoundFactoryId + recipientRegistry.clrFund = clrFundId recipientRegistry.save() return recipientRegistry @@ -59,17 +59,17 @@ export function loadRecipientRegistry( let recipientRegistryContract = RecipientRegistryContract.bind(address) let controller = recipientRegistryContract.try_controller() if (!controller.reverted) { - // Recipient registry's controller must be the factory - let factoryId = controller.value.toHexString() - let factory = FundingRoundFactory.load(factoryId) - if (factory) { + // Recipient registry's controller must be the ClrFund contract + let clrFundId = controller.value.toHexString() + let clrFund = ClrFund.load(clrFundId) + if (clrFund) { /* This is our registry, create it */ - recipientRegistry = createRecipientRegistry(factory.id, address) + recipientRegistry = createRecipientRegistry(clrFund.id, address) // update factory - factory.recipientRegistry = recipientRegistryId - factory.recipientRegistryAddress = address - factory.save() + clrFund.recipientRegistry = recipientRegistryId + clrFund.recipientRegistryAddress = address + clrFund.save() } } } diff --git a/subgraph/subgraph.template.yaml b/subgraph/subgraph.template.yaml index 219c4aa13..adf7a2396 100644 --- a/subgraph/subgraph.template.yaml +++ b/subgraph/subgraph.template.yaml @@ -5,25 +5,26 @@ schema: file: ./schema.graphql dataSources: - kind: ethereum/contract - name: FundingRoundFactory + name: ClrFund network: {{network}} source: address: '{{address}}' - abi: FundingRoundFactory - startBlock: {{factoryStartBlock}} + abi: ClrFund + startBlock: {{clrFundStartBlock}} mapping: kind: ethereum/events apiVersion: 0.0.7 language: wasm/assemblyscript entities: - - FundingRoundFactory + - ClrFund - RecipientRegistry - ContributorRegistry - FundingRound - Token + - Poll abis: - - name: FundingRoundFactory - file: ./abis/FundingRoundFactory.json + - name: ClrFund + file: ./abis/ClrFund.json - name: FundingRound file: ./abis/FundingRound.json - name: MACIFactory @@ -34,6 +35,10 @@ dataSources: file: ./abis/BrightIdUserRegistry.json - name: Token file: ./abis/Token.json + - name: Poll + file: ./abis/Poll.json + - name: MACI + file: ./abis/MACI.json eventHandlers: - event: CoordinatorChanged(address) handler: handleCoordinatorChanged @@ -49,7 +54,7 @@ dataSources: handler: handleRoundStarted - event: TokenChanged(address) handler: handleTokenChanged - file: ./src/FundingRoundFactoryMapping.ts + file: ./src/ClrFundMapping.ts - kind: ethereum/contract name: OptimisticRecipientRegistry network: {{network}} @@ -173,8 +178,27 @@ templates: - name: FundingRound file: ./abis/FundingRound.json eventHandlers: - - event: PublishMessage((uint256,uint256[10]),(uint256,uint256)) - handler: handlePublishMessage - - event: SignUp((uint256,uint256),uint256,uint256) + - event: SignUp(uint256,(uint256,uint256),uint256,uint256) handler: handleSignUp file: ./src/MACIMapping.ts + - name: Poll + kind: ethereum/contract + network: {{network}} + source: + abi: Poll + mapping: + kind: ethereum/events + apiVersion: 0.0.7 + language: wasm/assemblyscript + entities: + - Poll + - FundingRound + abis: + - name: Poll + file: ./abis/Poll.json + - name: FundingRound + file: ./abis/FundingRound.json + eventHandlers: + - event: PublishMessage((uint256,uint256[10]),(uint256,uint256)) + handler: handlePublishMessage + file: ./src/PollMapping.ts diff --git a/subgraph/subgraph.yaml b/subgraph/subgraph.yaml index e5019a71d..524a44ea0 100644 --- a/subgraph/subgraph.yaml +++ b/subgraph/subgraph.yaml @@ -5,25 +5,26 @@ schema: file: ./schema.graphql dataSources: - kind: ethereum/contract - name: FundingRoundFactory + name: ClrFund network: xdai source: address: '0x4ede8f30d9c2dc96a9d6787e9c4a478424fb960a' - abi: FundingRoundFactory + abi: ClrFund startBlock: 15217676 mapping: kind: ethereum/events apiVersion: 0.0.7 language: wasm/assemblyscript entities: - - FundingRoundFactory + - ClrFund - RecipientRegistry - ContributorRegistry - FundingRound - Token + - Poll abis: - - name: FundingRoundFactory - file: ./abis/FundingRoundFactory.json + - name: ClrFund + file: ./abis/ClrFund.json - name: FundingRound file: ./abis/FundingRound.json - name: MACIFactory @@ -34,6 +35,10 @@ dataSources: file: ./abis/BrightIdUserRegistry.json - name: Token file: ./abis/Token.json + - name: Poll + file: ./abis/Poll.json + - name: MACI + file: ./abis/MACI.json eventHandlers: - event: CoordinatorChanged(address) handler: handleCoordinatorChanged @@ -49,7 +54,7 @@ dataSources: handler: handleRoundStarted - event: TokenChanged(address) handler: handleTokenChanged - file: ./src/FundingRoundFactoryMapping.ts + file: ./src/ClrFundMapping.ts - kind: ethereum/contract name: OptimisticRecipientRegistry network: xdai @@ -173,8 +178,27 @@ templates: - name: FundingRound file: ./abis/FundingRound.json eventHandlers: - - event: PublishMessage((uint256,uint256[10]),(uint256,uint256)) - handler: handlePublishMessage - - event: SignUp((uint256,uint256),uint256,uint256) + - event: SignUp(uint256,(uint256,uint256),uint256,uint256) handler: handleSignUp file: ./src/MACIMapping.ts + - name: Poll + kind: ethereum/contract + network: xdai + source: + abi: Poll + mapping: + kind: ethereum/events + apiVersion: 0.0.7 + language: wasm/assemblyscript + entities: + - Poll + - FundingRound + abis: + - name: Poll + file: ./abis/Poll.json + - name: FundingRound + file: ./abis/FundingRound.json + eventHandlers: + - event: PublishMessage((uint256,uint256[10]),(uint256,uint256)) + handler: handlePublishMessage + file: ./src/PollMapping.ts diff --git a/vue-app/.env.example b/vue-app/.env.example index 238134534..e74e2fcbc 100644 --- a/vue-app/.env.example +++ b/vue-app/.env.example @@ -19,7 +19,7 @@ VITE_IPFS_SECRET_API_KEY= VITE_SUBGRAPH_URL=http://localhost:8000/subgraphs/name/clrfund/clrfund -VITE_CLRFUND_FACTORY_ADDRESS=0x5FC8d32690cc91D4c39d9d3abcBD16989F875707 +VITE_CLRFUND_ADDRESS=0x5FC8d32690cc91D4c39d9d3abcBD16989F875707 # Supported values: simple, brightid, snapshot, merkle VITE_USER_REGISTRY_TYPE=simple diff --git a/vue-app/src/App.vue b/vue-app/src/App.vue index 93fcc83b1..665c833b0 100644 --- a/vue-app/src/App.vue +++ b/vue-app/src/App.vue @@ -166,7 +166,7 @@ onMounted(async () => { } appReady.value = true - await appStore.loadFactoryInfo() + await appStore.loadClrFundInfo() await appStore.loadMACIFactoryInfo() await appStore.loadRoundInfo() await recipientStore.loadRecipientRegistryInfo() @@ -190,7 +190,7 @@ watch(walletUser, async () => { web3Provider: walletUser.value.web3Provider, } // make sure factory is loaded - await appStore.loadFactoryInfo() + await appStore.loadClrFundInfo() userStore.loginUser(user) await userStore.loadUserInfo() await userStore.loadBrightID() diff --git a/vue-app/src/api/abi.ts b/vue-app/src/api/abi.ts index a31e2c0ab..9add92259 100644 --- a/vue-app/src/api/abi.ts +++ b/vue-app/src/api/abi.ts @@ -1,8 +1,9 @@ import { abi as ERC20 } from '../../../contracts/build/contracts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json' -import { abi as FundingRoundFactory } from '../../../contracts/build/contracts/contracts/ClrFund.sol/ClrFund.json' +import { abi as ClrFund } from '../../../contracts/build/contracts/contracts/ClrFund.sol/ClrFund.json' import { abi as FundingRound } from '../../../contracts/build/contracts/contracts/FundingRound.sol/FundingRound.json' import { abi as MACIFactory } from '../../../contracts/build/contracts/contracts/MACIFactory.sol/MACIFactory.json' import { abi as MACI } from '../../../contracts/build/contracts/@clrfund/maci-contracts/contracts/MACI.sol/MACI.json' +import { abi as Poll } from '../../../contracts/build/contracts/@clrfund/maci-contracts/contracts/Poll.sol/Poll.json' import { abi as UserRegistry } from '../../../contracts/build/contracts/contracts/userRegistry/IUserRegistry.sol/IUserRegistry.json' import { abi as BrightIdUserRegistry } from '../../../contracts/build/contracts/contracts/userRegistry/BrightIdUserRegistry.sol/BrightIdUserRegistry.json' import { abi as SnapshotUserRegistry } from '../../../contracts/build/contracts/contracts/userRegistry/SnapshotUserRegistry.sol/SnapshotUserRegistry.json' @@ -14,10 +15,11 @@ import { abi as KlerosGTCRAdapter } from '../../../contracts/build/contracts/con export { ERC20, - FundingRoundFactory, + ClrFund, FundingRound, MACIFactory, MACI, + Poll, UserRegistry, SnapshotUserRegistry, MerkleUserRegistry, diff --git a/vue-app/src/api/factory.ts b/vue-app/src/api/clrFund.ts similarity index 65% rename from vue-app/src/api/factory.ts rename to vue-app/src/api/clrFund.ts index 32ea5795d..f9e28b3aa 100644 --- a/vue-app/src/api/factory.ts +++ b/vue-app/src/api/clrFund.ts @@ -1,17 +1,17 @@ import { BigNumber } from 'ethers' -import { factory } from './core' +import { clrFundContract } from './core' import sdk from '@/graphql/sdk' -export interface Factory { - fundingRoundAddress: string +export interface ClrFund { nativeTokenAddress: string nativeTokenSymbol: string nativeTokenDecimals: number userRegistryAddress: string + recipientRegistryAddress: string matchingPool: BigNumber } -export async function getFactoryInfo() { +export async function getClrFundInfo() { let nativeTokenAddress = '' let nativeTokenSymbol = '' let nativeTokenDecimals = 0 @@ -20,22 +20,22 @@ export async function getFactoryInfo() { let recipientRegistryAddress = '' try { - const data = await sdk.GetFactoryInfo({ - factoryAddress: factory.address.toLowerCase(), + const data = await sdk.GetClrFundInfo({ + clrFundAddress: clrFundContract.address.toLowerCase(), }) - const nativeTokenInfo = data.fundingRoundFactory?.nativeTokenInfo + const nativeTokenInfo = data.clrFund?.nativeTokenInfo if (nativeTokenInfo) { nativeTokenAddress = nativeTokenInfo.tokenAddress || '' nativeTokenSymbol = nativeTokenInfo.symbol || '' nativeTokenDecimals = Number(nativeTokenInfo.decimals) || 0 } - userRegistryAddress = data.fundingRoundFactory?.contributorRegistryAddress || '' - recipientRegistryAddress = data.fundingRoundFactory?.recipientRegistryAddress || '' + userRegistryAddress = data.clrFund?.contributorRegistryAddress || '' + recipientRegistryAddress = data.clrFund?.recipientRegistryAddress || '' } catch (err) { /* eslint-disable-next-line no-console */ - console.error('Failed GetFactoryInfo', err) + console.error('Failed GetClrFundInfo', err) } try { @@ -46,7 +46,6 @@ export async function getFactoryInfo() { } return { - fundingRoundAddress: factory.address, nativeTokenAddress, nativeTokenSymbol, nativeTokenDecimals, @@ -57,6 +56,6 @@ export async function getFactoryInfo() { } export async function getMatchingFunds(nativeTokenAddress: string): Promise { - const matchingFunds = await factory.getMatchingFunds(nativeTokenAddress) + const matchingFunds = await clrFundContract.getMatchingFunds(nativeTokenAddress) return matchingFunds } diff --git a/vue-app/src/api/contributions.ts b/vue-app/src/api/contributions.ts index f709564b7..74bbafba9 100644 --- a/vue-app/src/api/contributions.ts +++ b/vue-app/src/api/contributions.ts @@ -6,7 +6,7 @@ import { Keypair, PubKey, PrivKey, Message, Command, getPubKeyId } from '@clrfun import type { RoundInfo } from './round' import { FundingRound, ERC20 } from './abi' -import { factory, provider } from './core' +import { clrFundContract, provider } from './core' import type { Project } from './projects' import sdk from '@/graphql/sdk' import { Transaction } from '@/utils/transaction' @@ -88,7 +88,7 @@ export async function getContributionAmount( } export async function getTotalContributed(fundingRoundAddress: string): Promise<{ count: number; amount: BigNumber }> { - const nativeTokenAddress = await factory.nativeToken() + const nativeTokenAddress = await clrFundContract.nativeToken() const nativeToken = new Contract(nativeTokenAddress, ERC20, provider) const balance = await nativeToken.balanceOf(fundingRoundAddress) diff --git a/vue-app/src/api/core.ts b/vue-app/src/api/core.ts index 3a4467de9..9f5049ca2 100644 --- a/vue-app/src/api/core.ts +++ b/vue-app/src/api/core.ts @@ -1,6 +1,6 @@ import { ethers } from 'ethers' -import { FundingRoundFactory } from './abi' +import { ClrFund } from './abi' import { CHAIN_INFO } from '@/utils/chains' import historicalRounds from '@/rounds/rounds.json' @@ -35,13 +35,9 @@ if (!ipfsPinningJwt && !(ipfsApiKey && ipfsSecretApiKey)) { ) } -//TODO: need to be able to pass the factory contract address dynamically, note all places this is used make factory address a parameter that defaults to the env. variable set +//TODO: need to be able to pass the clrfund contract address dynamically, note all places this is used make clrfund address a parameter that defaults to the env. variable set //NOTE: these calls will be replaced by subgraph queries eventually. -export const factory = new ethers.Contract( - import.meta.env.VITE_CLRFUND_FACTORY_ADDRESS as string, - FundingRoundFactory, - provider, -) +export const clrFundContract = new ethers.Contract(import.meta.env.VITE_CLRFUND_ADDRESS as string, ClrFund, provider) export const userRegistryType = import.meta.env.VITE_USER_REGISTRY_TYPE export enum UserRegistryType { BRIGHT_ID = 'brightid', diff --git a/vue-app/src/api/maci-factory.ts b/vue-app/src/api/maci-factory.ts index 3cc909dbd..9dfd1bd1f 100644 --- a/vue-app/src/api/maci-factory.ts +++ b/vue-app/src/api/maci-factory.ts @@ -1,6 +1,6 @@ import { Contract } from 'ethers' import { MACIFactory as MACIFactoryABI } from './abi' -import { factory, provider } from './core' +import { clrFundContract, provider } from './core' export interface MACIFactory { maciFactoryAddress: string @@ -8,7 +8,7 @@ export interface MACIFactory { } export async function getMACIFactoryInfo(): Promise { - const maciFactoryAddress = await factory.maciFactory() + const maciFactoryAddress = await clrFundContract.maciFactory() const maciFactory = new Contract(maciFactoryAddress, MACIFactoryABI, provider) const treeDepths = await maciFactory.treeDepths() diff --git a/vue-app/src/api/projects.ts b/vue-app/src/api/projects.ts index c1a065bd8..1733dcce6 100644 --- a/vue-app/src/api/projects.ts +++ b/vue-app/src/api/projects.ts @@ -1,7 +1,7 @@ import { BigNumber, Contract, Signer } from 'ethers' import type { TransactionResponse } from '@ethersproject/abstract-provider' import { FundingRound, OptimisticRecipientRegistry } from './abi' -import { factory, provider, recipientRegistryType, ipfsGatewayUrl } from './core' +import { clrFundContract, provider, recipientRegistryType, ipfsGatewayUrl } from './core' import SimpleRegistry from './recipient-registry-simple' import OptimisticRegistry from './recipient-registry-optimistic' @@ -49,15 +49,14 @@ export interface Project { extra?: any // Registry-specific data } -//TODO: update anywhere this is called to take factory address as a parameter +//TODO: update anywhere this is called to take ClrFund address as a parameter //NOTE: why isn't this included in the vuex state schema? export async function getRecipientRegistryAddress(roundAddress: string | null): Promise { if (roundAddress !== null) { const fundingRound = new Contract(roundAddress, FundingRound, provider) return await fundingRound.recipientRegistry() } else { - //TODO: upgrade factory to take it's address as a parameter - return await factory.recipientRegistry() + return await clrFundContract.recipientRegistry() } } diff --git a/vue-app/src/api/round.ts b/vue-app/src/api/round.ts index a42d8cf8a..c5d9ca88b 100644 --- a/vue-app/src/api/round.ts +++ b/vue-app/src/api/round.ts @@ -2,8 +2,8 @@ import { BigNumber, Contract, utils } from 'ethers' import { DateTime } from 'luxon' import { PubKey } from '@clrfund/common' -import { FundingRound, MACI } from './abi' -import { provider, factory } from './core' +import { FundingRound, Poll } from './abi' +import { provider, clrFundContract } from './core' import { getTotalContributed } from './contributions' import { isVoidedRound } from './rounds' import sdk from '@/graphql/sdk' @@ -53,9 +53,9 @@ export enum RoundStatus { Finalized = 'Finalized', Cancelled = 'Cancelled', } -//TODO: update to take factory address as a parameter, default to env. variable +//TODO: update to take ClrFund address as a parameter, default to env. variable export async function getCurrentRound(): Promise { - const fundingRoundAddress = await factory.getCurrentRound() + const fundingRoundAddress = await clrFundContract.getCurrentRound() if (fundingRoundAddress === '0x0000000000000000000000000000000000000000') { return null } @@ -127,7 +127,7 @@ export async function getLeaderboardRoundInfo(fundingRoundAddress: string, netwo return round } -//TODO: update to take factory address as a parameter, default to env. variable +//TODO: update to take ClrFund address as a parameter, default to env. variable export async function getRoundInfo( fundingRoundAddress: string, cachedRound?: RoundInfo | null, @@ -148,44 +148,34 @@ export async function getRoundInfo( } const { + pollAddress, maci: maciAddress, recipientRegistryAddress, contributorRegistryAddress: userRegistryAddress, isFinalized, isCancelled, + stateTreeDepth, + messageTreeDepth, + voteOptionTreeDepth, + startTime, + signUpDeadline, + votingDeadline, + coordinatorPubKeyX, + coordinatorPubKeyY, } = data.fundingRound const voiceCreditFactor = BigNumber.from(data.fundingRound.voiceCreditFactor) - const maci = new Contract(maciAddress, MACI, provider) - const [ - maciTreeDepths, - signUpTimestamp, - signUpDurationSeconds, - votingDurationSeconds, - coordinatorPubKeyRaw, - messages, - ] = await Promise.all([ - maci.treeDepths(), - maci.signUpTimestamp(), - maci.signUpDurationSeconds(), - maci.votingDurationSeconds(), - maci.coordinatorPubKey(), - maci.numMessages(), - ]) - const startTime = DateTime.fromSeconds(signUpTimestamp.toNumber()) - const signUpDeadline = DateTime.fromSeconds(signUpTimestamp.add(signUpDurationSeconds).toNumber()) - const votingDeadline = DateTime.fromSeconds( - signUpTimestamp.add(signUpDurationSeconds).add(votingDurationSeconds).toNumber(), - ) - const coordinatorPubKey = new PubKey([BigInt(coordinatorPubKeyRaw.x), BigInt(coordinatorPubKeyRaw.y)]) + const poll = new Contract(pollAddress, Poll, provider) + const [, messages] = await poll.numSignUpsAndMessages() + const coordinatorPubKey = new PubKey([BigInt(coordinatorPubKeyX), BigInt(coordinatorPubKeyY)]) const nativeTokenAddress = data.fundingRound.nativeTokenInfo?.tokenAddress || '' const nativeTokenSymbol = data.fundingRound.nativeTokenInfo?.symbol || '' const nativeTokenDecimals = Number(data.fundingRound.nativeTokenInfo?.decimals || '') - const maxContributors = 2 ** maciTreeDepths.stateTreeDepth - 1 - const maxMessages = 2 ** maciTreeDepths.messageTreeDepth - 1 + const maxContributors = stateTreeDepth ? 2 ** stateTreeDepth - 1 : 0 + const maxMessages = messageTreeDepth ? 2 ** messageTreeDepth - 1 : 0 const now = DateTime.local() const contributionsInfo = await getTotalContributed(fundingRoundAddress) const contributors = contributionsInfo.count @@ -203,7 +193,7 @@ export async function getRoundInfo( } else if (messages >= maxMessages) { status = RoundStatus.Tallying contributions = contributionsInfo.amount - matchingPool = await factory.getMatchingFunds(nativeTokenAddress) + matchingPool = await clrFundContract.getMatchingFunds(nativeTokenAddress) } else { if (now < signUpDeadline && contributors < maxContributors) { status = RoundStatus.Contributing @@ -213,8 +203,8 @@ export async function getRoundInfo( status = RoundStatus.Tallying } contributions = contributionsInfo.amount - //TODO: update to take factory address as a parameter, default to env. variable - matchingPool = await factory.getMatchingFunds(nativeTokenAddress) + //TODO: update to take ClrFund address as a parameter, default to env. variable + matchingPool = await clrFundContract.getMatchingFunds(nativeTokenAddress) } const totalFunds = matchingPool.add(contributions) @@ -224,9 +214,9 @@ export async function getRoundInfo( recipientRegistryAddress: utils.getAddress(recipientRegistryAddress), userRegistryAddress: utils.getAddress(userRegistryAddress), maciAddress: utils.getAddress(maciAddress), - recipientTreeDepth: maciTreeDepths.voteOptionTreeDepth, + recipientTreeDepth: voteOptionTreeDepth || 1, maxContributors, - maxRecipients: 5 ** maciTreeDepths.voteOptionTreeDepth - 1, + maxRecipients: voteOptionTreeDepth ? 5 ** voteOptionTreeDepth - 1 : 0, maxMessages, coordinatorPubKey, nativeTokenAddress: utils.getAddress(nativeTokenAddress), @@ -234,9 +224,9 @@ export async function getRoundInfo( nativeTokenDecimals, voiceCreditFactor, status, - startTime, - signUpDeadline, - votingDeadline, + startTime: DateTime.fromSeconds(Number(startTime || 0)), + signUpDeadline: DateTime.fromSeconds(Number(signUpDeadline || 0)), + votingDeadline: DateTime.fromSeconds(Number(votingDeadline || 0)), totalFunds, matchingPool, contributions, diff --git a/vue-app/src/api/rounds.ts b/vue-app/src/api/rounds.ts index 05f5d18c4..a33feff1e 100644 --- a/vue-app/src/api/rounds.ts +++ b/vue-app/src/api/rounds.ts @@ -19,10 +19,8 @@ function toRoundId({ network, address }: { network: string; address: string }): return `${network}-${address}`.toLowerCase() } -//TODO: update to take factory address as a parameter +//TODO: update to take ClrFund address as a parameter export async function getRounds(): Promise { - //TODO: updateto pass factory address as a parameter, default to env. variable - let data try { data = await sdk.GetRounds() diff --git a/vue-app/src/api/user.ts b/vue-app/src/api/user.ts index 252f44a15..9cee1f442 100644 --- a/vue-app/src/api/user.ts +++ b/vue-app/src/api/user.ts @@ -3,7 +3,7 @@ import { BigNumber, Contract, Signer, type ContractTransaction } from 'ethers' import type { Web3Provider } from '@ethersproject/providers' import { FundingRound, UserRegistry, ERC20 } from './abi' -import { factory, ipfsGatewayUrl, provider, operator } from './core' +import { clrFundContract, ipfsGatewayUrl, provider, operator } from './core' import type { BrightId } from './bright-id' import { SnapshotUserRegistry, MerkleUserRegistry } from './abi' import { @@ -21,7 +21,7 @@ To get logged in, sign this message to prove you have access to this wallet. Thi You will be asked to sign each time you load the app. -Contract address: ${factory.address.toLowerCase()}.` +Contract address: ${clrFundContract.address.toLowerCase()}.` export interface User { walletAddress: string diff --git a/vue-app/src/components/MatchingFundsModal.vue b/vue-app/src/components/MatchingFundsModal.vue index 344d4c5b2..b8f662127 100644 --- a/vue-app/src/components/MatchingFundsModal.vue +++ b/vue-app/src/components/MatchingFundsModal.vue @@ -72,7 +72,7 @@ import { formatAmount } from '@/utils/amounts' import { formatUnits } from '@ethersproject/units' import { ERC20 } from '@/api/abi' -import { factory } from '@/api/core' +import { clrFundContract } from '@/api/core' import { VueFinalModal } from 'vue-final-modal' import { useAppStore, useUserStore } from '@/stores' @@ -129,16 +129,17 @@ async function contributeMatchingFunds() { const token = new Contract(nativeTokenAddress.value, ERC20, userStore.signer) const _amount = parseFixed(amount.value, nativeTokenDecimals.value) - // TODO: update to take factory address as a parameter from the route props, default to env. variable + // TODO: update to take ClrFund address as a parameter from the route props, default to env. variable const matchingPoolAddress = import.meta.env.VITE_MATCHING_POOL_ADDRESS ? import.meta.env.VITE_MATCHING_POOL_ADDRESS - : factory.address + : clrFundContract.address try { await waitForTransaction(token.transfer(matchingPoolAddress, _amount), hash => (transferTxHash.value = hash)) } catch (error) { - transferTxError.value = error.message - if (error.message.indexOf('Nonce too high') >= 0 && import.meta.env.MODE === 'development') { + const errorMessage = (error as Error).message + transferTxError.value = errorMessage + if (errorMessage.indexOf('Nonce too high') >= 0 && import.meta.env.MODE === 'development') { transferTxError.value = 'Have you been buidling?? Reset your nonce! 🪄' } return diff --git a/vue-app/src/components/RoundInformation.vue b/vue-app/src/components/RoundInformation.vue index e90f7ecb8..3b0b087de 100644 --- a/vue-app/src/components/RoundInformation.vue +++ b/vue-app/src/components/RoundInformation.vue @@ -426,7 +426,7 @@ function addMatchingFunds(): void { close() // Reload matching pool size appStore.loadRoundInfo() - appStore.loadFactoryInfo() + appStore.loadClrFundInfo() }, }, }) diff --git a/vue-app/src/graphql/API.ts b/vue-app/src/graphql/API.ts index c007dd1dc..15c5c5433 100644 --- a/vue-app/src/graphql/API.ts +++ b/vue-app/src/graphql/API.ts @@ -29,49 +29,121 @@ export type Block_Height = { number_gte: InputMaybe; }; -export type Contribution = { - __typename?: 'Contribution'; - amount: Maybe; - contributor: Maybe; +export type ClrFund = { + __typename?: 'ClrFund'; + batchUstVerifier: Maybe; + contributorRegistry: Maybe; + contributorRegistryAddress: Maybe; + coordinator: Maybe; + coordinatorPubKey: Maybe; createdAt: Maybe; - fundingRound: Maybe; + currentRound: Maybe; + fundingRounds: Maybe>; id: Scalars['ID']; - voiceCredits: Maybe; + lastUpdatedAt: Maybe; + maciFactory: Maybe; + maxMessages: Maybe; + maxUsers: Maybe; + maxVoteOptions: Maybe; + messageBatchSize: Maybe; + messageTreeDepth: Maybe; + nativeToken: Maybe; + nativeTokenInfo: Maybe; + owner: Maybe; + qvtVerifier: Maybe; + recipientRegistry: Maybe; + recipientRegistryAddress: Maybe; + signUpDuration: Maybe; + stateTreeDepth: Maybe; + tallyBatchSize: Maybe; + voteOptionTreeDepth: Maybe; + votingDuration: Maybe; }; -export type Contribution_Filter = { + +export type ClrFundFundingRoundsArgs = { + first?: InputMaybe; + orderBy: InputMaybe; + orderDirection: InputMaybe; + skip?: InputMaybe; + where: InputMaybe; +}; + +export type ClrFund_Filter = { /** Filter for the block changed event. */ _change_block: InputMaybe; - amount: InputMaybe; - amount_gt: InputMaybe; - amount_gte: InputMaybe; - amount_in: InputMaybe>; - amount_lt: InputMaybe; - amount_lte: InputMaybe; - amount_not: InputMaybe; - amount_not_in: InputMaybe>; - and: InputMaybe>>; - contributor: InputMaybe; - contributor_: InputMaybe; - contributor_contains: InputMaybe; - contributor_contains_nocase: InputMaybe; - contributor_ends_with: InputMaybe; - contributor_ends_with_nocase: InputMaybe; - contributor_gt: InputMaybe; - contributor_gte: InputMaybe; - contributor_in: InputMaybe>; - contributor_lt: InputMaybe; - contributor_lte: InputMaybe; - contributor_not: InputMaybe; - contributor_not_contains: InputMaybe; - contributor_not_contains_nocase: InputMaybe; - contributor_not_ends_with: InputMaybe; - contributor_not_ends_with_nocase: InputMaybe; - contributor_not_in: InputMaybe>; - contributor_not_starts_with: InputMaybe; - contributor_not_starts_with_nocase: InputMaybe; - contributor_starts_with: InputMaybe; - contributor_starts_with_nocase: InputMaybe; + and: InputMaybe>>; + batchUstVerifier: InputMaybe; + batchUstVerifier_contains: InputMaybe; + batchUstVerifier_gt: InputMaybe; + batchUstVerifier_gte: InputMaybe; + batchUstVerifier_in: InputMaybe>; + batchUstVerifier_lt: InputMaybe; + batchUstVerifier_lte: InputMaybe; + batchUstVerifier_not: InputMaybe; + batchUstVerifier_not_contains: InputMaybe; + batchUstVerifier_not_in: InputMaybe>; + contributorRegistry: InputMaybe; + contributorRegistryAddress: InputMaybe; + contributorRegistryAddress_contains: InputMaybe; + contributorRegistryAddress_gt: InputMaybe; + contributorRegistryAddress_gte: InputMaybe; + contributorRegistryAddress_in: InputMaybe>; + contributorRegistryAddress_lt: InputMaybe; + contributorRegistryAddress_lte: InputMaybe; + contributorRegistryAddress_not: InputMaybe; + contributorRegistryAddress_not_contains: InputMaybe; + contributorRegistryAddress_not_in: InputMaybe>; + contributorRegistry_: InputMaybe; + contributorRegistry_contains: InputMaybe; + contributorRegistry_contains_nocase: InputMaybe; + contributorRegistry_ends_with: InputMaybe; + contributorRegistry_ends_with_nocase: InputMaybe; + contributorRegistry_gt: InputMaybe; + contributorRegistry_gte: InputMaybe; + contributorRegistry_in: InputMaybe>; + contributorRegistry_lt: InputMaybe; + contributorRegistry_lte: InputMaybe; + contributorRegistry_not: InputMaybe; + contributorRegistry_not_contains: InputMaybe; + contributorRegistry_not_contains_nocase: InputMaybe; + contributorRegistry_not_ends_with: InputMaybe; + contributorRegistry_not_ends_with_nocase: InputMaybe; + contributorRegistry_not_in: InputMaybe>; + contributorRegistry_not_starts_with: InputMaybe; + contributorRegistry_not_starts_with_nocase: InputMaybe; + contributorRegistry_starts_with: InputMaybe; + contributorRegistry_starts_with_nocase: InputMaybe; + coordinator: InputMaybe; + coordinatorPubKey: InputMaybe; + coordinatorPubKey_contains: InputMaybe; + coordinatorPubKey_contains_nocase: InputMaybe; + coordinatorPubKey_ends_with: InputMaybe; + coordinatorPubKey_ends_with_nocase: InputMaybe; + coordinatorPubKey_gt: InputMaybe; + coordinatorPubKey_gte: InputMaybe; + coordinatorPubKey_in: InputMaybe>; + coordinatorPubKey_lt: InputMaybe; + coordinatorPubKey_lte: InputMaybe; + coordinatorPubKey_not: InputMaybe; + coordinatorPubKey_not_contains: InputMaybe; + coordinatorPubKey_not_contains_nocase: InputMaybe; + coordinatorPubKey_not_ends_with: InputMaybe; + coordinatorPubKey_not_ends_with_nocase: InputMaybe; + coordinatorPubKey_not_in: InputMaybe>; + coordinatorPubKey_not_starts_with: InputMaybe; + coordinatorPubKey_not_starts_with_nocase: InputMaybe; + coordinatorPubKey_starts_with: InputMaybe; + coordinatorPubKey_starts_with_nocase: InputMaybe; + coordinator_contains: InputMaybe; + coordinator_gt: InputMaybe; + coordinator_gte: InputMaybe; + coordinator_in: InputMaybe>; + coordinator_lt: InputMaybe; + coordinator_lte: InputMaybe; + coordinator_not: InputMaybe; + coordinator_not_contains: InputMaybe; + coordinator_not_in: InputMaybe>; createdAt: InputMaybe; createdAt_contains: InputMaybe; createdAt_contains_nocase: InputMaybe; @@ -92,206 +164,28 @@ export type Contribution_Filter = { createdAt_not_starts_with_nocase: InputMaybe; createdAt_starts_with: InputMaybe; createdAt_starts_with_nocase: InputMaybe; - fundingRound: InputMaybe; - fundingRound_: InputMaybe; - fundingRound_contains: InputMaybe; - fundingRound_contains_nocase: InputMaybe; - fundingRound_ends_with: InputMaybe; - fundingRound_ends_with_nocase: InputMaybe; - fundingRound_gt: InputMaybe; - fundingRound_gte: InputMaybe; - fundingRound_in: InputMaybe>; - fundingRound_lt: InputMaybe; - fundingRound_lte: InputMaybe; - fundingRound_not: InputMaybe; - fundingRound_not_contains: InputMaybe; - fundingRound_not_contains_nocase: InputMaybe; - fundingRound_not_ends_with: InputMaybe; - fundingRound_not_ends_with_nocase: InputMaybe; - fundingRound_not_in: InputMaybe>; - fundingRound_not_starts_with: InputMaybe; - fundingRound_not_starts_with_nocase: InputMaybe; - fundingRound_starts_with: InputMaybe; - fundingRound_starts_with_nocase: InputMaybe; - id: InputMaybe; - id_gt: InputMaybe; - id_gte: InputMaybe; - id_in: InputMaybe>; - id_lt: InputMaybe; - id_lte: InputMaybe; - id_not: InputMaybe; - id_not_in: InputMaybe>; - or: InputMaybe>>; - voiceCredits: InputMaybe; - voiceCredits_gt: InputMaybe; - voiceCredits_gte: InputMaybe; - voiceCredits_in: InputMaybe>; - voiceCredits_lt: InputMaybe; - voiceCredits_lte: InputMaybe; - voiceCredits_not: InputMaybe; - voiceCredits_not_in: InputMaybe>; -}; - -export enum Contribution_OrderBy { - Amount = 'amount', - Contributor = 'contributor', - ContributorContributorAddress = 'contributor__contributorAddress', - ContributorCreatedAt = 'contributor__createdAt', - ContributorId = 'contributor__id', - ContributorLastUpdatedAt = 'contributor__lastUpdatedAt', - ContributorVerifiedTimeStamp = 'contributor__verifiedTimeStamp', - CreatedAt = 'createdAt', - FundingRound = 'fundingRound', - FundingRoundContributorCount = 'fundingRound__contributorCount', - FundingRoundContributorRegistryAddress = 'fundingRound__contributorRegistryAddress', - FundingRoundCoordinator = 'fundingRound__coordinator', - FundingRoundCreatedAt = 'fundingRound__createdAt', - FundingRoundId = 'fundingRound__id', - FundingRoundIsCancelled = 'fundingRound__isCancelled', - FundingRoundIsFinalized = 'fundingRound__isFinalized', - FundingRoundLastUpdatedAt = 'fundingRound__lastUpdatedAt', - FundingRoundMaci = 'fundingRound__maci', - FundingRoundMatchingPoolSize = 'fundingRound__matchingPoolSize', - FundingRoundNativeToken = 'fundingRound__nativeToken', - FundingRoundRecipientCount = 'fundingRound__recipientCount', - FundingRoundRecipientRegistryAddress = 'fundingRound__recipientRegistryAddress', - FundingRoundSignUpDeadline = 'fundingRound__signUpDeadline', - FundingRoundStartTime = 'fundingRound__startTime', - FundingRoundTallyHash = 'fundingRound__tallyHash', - FundingRoundTotalSpent = 'fundingRound__totalSpent', - FundingRoundTotalVotes = 'fundingRound__totalVotes', - FundingRoundVoiceCreditFactor = 'fundingRound__voiceCreditFactor', - FundingRoundVotingDeadline = 'fundingRound__votingDeadline', - Id = 'id', - VoiceCredits = 'voiceCredits' -} - -export type Contributor = { - __typename?: 'Contributor'; - contributions: Maybe>; - contributorAddress: Maybe; - contributorRegistry: ContributorRegistry; - createdAt: Maybe; - fundingRounds: Maybe>; - id: Scalars['ID']; - lastUpdatedAt: Maybe; - verifiedTimeStamp: Maybe; - votes: Maybe>; -}; - - -export type ContributorContributionsArgs = { - first?: InputMaybe; - orderBy: InputMaybe; - orderDirection: InputMaybe; - skip?: InputMaybe; - where: InputMaybe; -}; - - -export type ContributorFundingRoundsArgs = { - first?: InputMaybe; - orderBy: InputMaybe; - orderDirection: InputMaybe; - skip?: InputMaybe; - where: InputMaybe; -}; - - -export type ContributorVotesArgs = { - first?: InputMaybe; - orderBy: InputMaybe; - orderDirection: InputMaybe; - skip?: InputMaybe; - where: InputMaybe; -}; - -export type ContributorRegistry = { - __typename?: 'ContributorRegistry'; - context: Maybe; - contributors: Maybe>; - createdAt: Maybe; - fundingRoundFactory: FundingRoundFactory; - id: Scalars['ID']; - lastUpdatedAt: Maybe; - owner: Maybe; -}; - - -export type ContributorRegistryContributorsArgs = { - first?: InputMaybe; - orderBy: InputMaybe; - orderDirection: InputMaybe; - skip?: InputMaybe; - where: InputMaybe; -}; - -export type ContributorRegistry_Filter = { - /** Filter for the block changed event. */ - _change_block: InputMaybe; - and: InputMaybe>>; - context: InputMaybe; - context_contains: InputMaybe; - context_contains_nocase: InputMaybe; - context_ends_with: InputMaybe; - context_ends_with_nocase: InputMaybe; - context_gt: InputMaybe; - context_gte: InputMaybe; - context_in: InputMaybe>; - context_lt: InputMaybe; - context_lte: InputMaybe; - context_not: InputMaybe; - context_not_contains: InputMaybe; - context_not_contains_nocase: InputMaybe; - context_not_ends_with: InputMaybe; - context_not_ends_with_nocase: InputMaybe; - context_not_in: InputMaybe>; - context_not_starts_with: InputMaybe; - context_not_starts_with_nocase: InputMaybe; - context_starts_with: InputMaybe; - context_starts_with_nocase: InputMaybe; - contributors_: InputMaybe; - createdAt: InputMaybe; - createdAt_contains: InputMaybe; - createdAt_contains_nocase: InputMaybe; - createdAt_ends_with: InputMaybe; - createdAt_ends_with_nocase: InputMaybe; - createdAt_gt: InputMaybe; - createdAt_gte: InputMaybe; - createdAt_in: InputMaybe>; - createdAt_lt: InputMaybe; - createdAt_lte: InputMaybe; - createdAt_not: InputMaybe; - createdAt_not_contains: InputMaybe; - createdAt_not_contains_nocase: InputMaybe; - createdAt_not_ends_with: InputMaybe; - createdAt_not_ends_with_nocase: InputMaybe; - createdAt_not_in: InputMaybe>; - createdAt_not_starts_with: InputMaybe; - createdAt_not_starts_with_nocase: InputMaybe; - createdAt_starts_with: InputMaybe; - createdAt_starts_with_nocase: InputMaybe; - fundingRoundFactory: InputMaybe; - fundingRoundFactory_: InputMaybe; - fundingRoundFactory_contains: InputMaybe; - fundingRoundFactory_contains_nocase: InputMaybe; - fundingRoundFactory_ends_with: InputMaybe; - fundingRoundFactory_ends_with_nocase: InputMaybe; - fundingRoundFactory_gt: InputMaybe; - fundingRoundFactory_gte: InputMaybe; - fundingRoundFactory_in: InputMaybe>; - fundingRoundFactory_lt: InputMaybe; - fundingRoundFactory_lte: InputMaybe; - fundingRoundFactory_not: InputMaybe; - fundingRoundFactory_not_contains: InputMaybe; - fundingRoundFactory_not_contains_nocase: InputMaybe; - fundingRoundFactory_not_ends_with: InputMaybe; - fundingRoundFactory_not_ends_with_nocase: InputMaybe; - fundingRoundFactory_not_in: InputMaybe>; - fundingRoundFactory_not_starts_with: InputMaybe; - fundingRoundFactory_not_starts_with_nocase: InputMaybe; - fundingRoundFactory_starts_with: InputMaybe; - fundingRoundFactory_starts_with_nocase: InputMaybe; + currentRound: InputMaybe; + currentRound_: InputMaybe; + currentRound_contains: InputMaybe; + currentRound_contains_nocase: InputMaybe; + currentRound_ends_with: InputMaybe; + currentRound_ends_with_nocase: InputMaybe; + currentRound_gt: InputMaybe; + currentRound_gte: InputMaybe; + currentRound_in: InputMaybe>; + currentRound_lt: InputMaybe; + currentRound_lte: InputMaybe; + currentRound_not: InputMaybe; + currentRound_not_contains: InputMaybe; + currentRound_not_contains_nocase: InputMaybe; + currentRound_not_ends_with: InputMaybe; + currentRound_not_ends_with_nocase: InputMaybe; + currentRound_not_in: InputMaybe>; + currentRound_not_starts_with: InputMaybe; + currentRound_not_starts_with_nocase: InputMaybe; + currentRound_starts_with: InputMaybe; + currentRound_starts_with_nocase: InputMaybe; + fundingRounds_: InputMaybe; id: InputMaybe; id_gt: InputMaybe; id_gte: InputMaybe; @@ -320,7 +214,88 @@ export type ContributorRegistry_Filter = { lastUpdatedAt_not_starts_with_nocase: InputMaybe; lastUpdatedAt_starts_with: InputMaybe; lastUpdatedAt_starts_with_nocase: InputMaybe; - or: InputMaybe>>; + maciFactory: InputMaybe; + maciFactory_contains: InputMaybe; + maciFactory_gt: InputMaybe; + maciFactory_gte: InputMaybe; + maciFactory_in: InputMaybe>; + maciFactory_lt: InputMaybe; + maciFactory_lte: InputMaybe; + maciFactory_not: InputMaybe; + maciFactory_not_contains: InputMaybe; + maciFactory_not_in: InputMaybe>; + maxMessages: InputMaybe; + maxMessages_gt: InputMaybe; + maxMessages_gte: InputMaybe; + maxMessages_in: InputMaybe>; + maxMessages_lt: InputMaybe; + maxMessages_lte: InputMaybe; + maxMessages_not: InputMaybe; + maxMessages_not_in: InputMaybe>; + maxUsers: InputMaybe; + maxUsers_gt: InputMaybe; + maxUsers_gte: InputMaybe; + maxUsers_in: InputMaybe>; + maxUsers_lt: InputMaybe; + maxUsers_lte: InputMaybe; + maxUsers_not: InputMaybe; + maxUsers_not_in: InputMaybe>; + maxVoteOptions: InputMaybe; + maxVoteOptions_gt: InputMaybe; + maxVoteOptions_gte: InputMaybe; + maxVoteOptions_in: InputMaybe>; + maxVoteOptions_lt: InputMaybe; + maxVoteOptions_lte: InputMaybe; + maxVoteOptions_not: InputMaybe; + maxVoteOptions_not_in: InputMaybe>; + messageBatchSize: InputMaybe; + messageBatchSize_gt: InputMaybe; + messageBatchSize_gte: InputMaybe; + messageBatchSize_in: InputMaybe>; + messageBatchSize_lt: InputMaybe; + messageBatchSize_lte: InputMaybe; + messageBatchSize_not: InputMaybe; + messageBatchSize_not_in: InputMaybe>; + messageTreeDepth: InputMaybe; + messageTreeDepth_gt: InputMaybe; + messageTreeDepth_gte: InputMaybe; + messageTreeDepth_in: InputMaybe>; + messageTreeDepth_lt: InputMaybe; + messageTreeDepth_lte: InputMaybe; + messageTreeDepth_not: InputMaybe; + messageTreeDepth_not_in: InputMaybe>; + nativeToken: InputMaybe; + nativeTokenInfo: InputMaybe; + nativeTokenInfo_: InputMaybe; + nativeTokenInfo_contains: InputMaybe; + nativeTokenInfo_contains_nocase: InputMaybe; + nativeTokenInfo_ends_with: InputMaybe; + nativeTokenInfo_ends_with_nocase: InputMaybe; + nativeTokenInfo_gt: InputMaybe; + nativeTokenInfo_gte: InputMaybe; + nativeTokenInfo_in: InputMaybe>; + nativeTokenInfo_lt: InputMaybe; + nativeTokenInfo_lte: InputMaybe; + nativeTokenInfo_not: InputMaybe; + nativeTokenInfo_not_contains: InputMaybe; + nativeTokenInfo_not_contains_nocase: InputMaybe; + nativeTokenInfo_not_ends_with: InputMaybe; + nativeTokenInfo_not_ends_with_nocase: InputMaybe; + nativeTokenInfo_not_in: InputMaybe>; + nativeTokenInfo_not_starts_with: InputMaybe; + nativeTokenInfo_not_starts_with_nocase: InputMaybe; + nativeTokenInfo_starts_with: InputMaybe; + nativeTokenInfo_starts_with_nocase: InputMaybe; + nativeToken_contains: InputMaybe; + nativeToken_gt: InputMaybe; + nativeToken_gte: InputMaybe; + nativeToken_in: InputMaybe>; + nativeToken_lt: InputMaybe; + nativeToken_lte: InputMaybe; + nativeToken_not: InputMaybe; + nativeToken_not_contains: InputMaybe; + nativeToken_not_in: InputMaybe>; + or: InputMaybe>>; owner: InputMaybe; owner_contains: InputMaybe; owner_gt: InputMaybe; @@ -331,284 +306,207 @@ export type ContributorRegistry_Filter = { owner_not: InputMaybe; owner_not_contains: InputMaybe; owner_not_in: InputMaybe>; + qvtVerifier: InputMaybe; + qvtVerifier_contains: InputMaybe; + qvtVerifier_gt: InputMaybe; + qvtVerifier_gte: InputMaybe; + qvtVerifier_in: InputMaybe>; + qvtVerifier_lt: InputMaybe; + qvtVerifier_lte: InputMaybe; + qvtVerifier_not: InputMaybe; + qvtVerifier_not_contains: InputMaybe; + qvtVerifier_not_in: InputMaybe>; + recipientRegistry: InputMaybe; + recipientRegistryAddress: InputMaybe; + recipientRegistryAddress_contains: InputMaybe; + recipientRegistryAddress_gt: InputMaybe; + recipientRegistryAddress_gte: InputMaybe; + recipientRegistryAddress_in: InputMaybe>; + recipientRegistryAddress_lt: InputMaybe; + recipientRegistryAddress_lte: InputMaybe; + recipientRegistryAddress_not: InputMaybe; + recipientRegistryAddress_not_contains: InputMaybe; + recipientRegistryAddress_not_in: InputMaybe>; + recipientRegistry_: InputMaybe; + recipientRegistry_contains: InputMaybe; + recipientRegistry_contains_nocase: InputMaybe; + recipientRegistry_ends_with: InputMaybe; + recipientRegistry_ends_with_nocase: InputMaybe; + recipientRegistry_gt: InputMaybe; + recipientRegistry_gte: InputMaybe; + recipientRegistry_in: InputMaybe>; + recipientRegistry_lt: InputMaybe; + recipientRegistry_lte: InputMaybe; + recipientRegistry_not: InputMaybe; + recipientRegistry_not_contains: InputMaybe; + recipientRegistry_not_contains_nocase: InputMaybe; + recipientRegistry_not_ends_with: InputMaybe; + recipientRegistry_not_ends_with_nocase: InputMaybe; + recipientRegistry_not_in: InputMaybe>; + recipientRegistry_not_starts_with: InputMaybe; + recipientRegistry_not_starts_with_nocase: InputMaybe; + recipientRegistry_starts_with: InputMaybe; + recipientRegistry_starts_with_nocase: InputMaybe; + signUpDuration: InputMaybe; + signUpDuration_gt: InputMaybe; + signUpDuration_gte: InputMaybe; + signUpDuration_in: InputMaybe>; + signUpDuration_lt: InputMaybe; + signUpDuration_lte: InputMaybe; + signUpDuration_not: InputMaybe; + signUpDuration_not_in: InputMaybe>; + stateTreeDepth: InputMaybe; + stateTreeDepth_gt: InputMaybe; + stateTreeDepth_gte: InputMaybe; + stateTreeDepth_in: InputMaybe>; + stateTreeDepth_lt: InputMaybe; + stateTreeDepth_lte: InputMaybe; + stateTreeDepth_not: InputMaybe; + stateTreeDepth_not_in: InputMaybe>; + tallyBatchSize: InputMaybe; + tallyBatchSize_gt: InputMaybe; + tallyBatchSize_gte: InputMaybe; + tallyBatchSize_in: InputMaybe>; + tallyBatchSize_lt: InputMaybe; + tallyBatchSize_lte: InputMaybe; + tallyBatchSize_not: InputMaybe; + tallyBatchSize_not_in: InputMaybe>; + voteOptionTreeDepth: InputMaybe; + voteOptionTreeDepth_gt: InputMaybe; + voteOptionTreeDepth_gte: InputMaybe; + voteOptionTreeDepth_in: InputMaybe>; + voteOptionTreeDepth_lt: InputMaybe; + voteOptionTreeDepth_lte: InputMaybe; + voteOptionTreeDepth_not: InputMaybe; + voteOptionTreeDepth_not_in: InputMaybe>; + votingDuration: InputMaybe; + votingDuration_gt: InputMaybe; + votingDuration_gte: InputMaybe; + votingDuration_in: InputMaybe>; + votingDuration_lt: InputMaybe; + votingDuration_lte: InputMaybe; + votingDuration_not: InputMaybe; + votingDuration_not_in: InputMaybe>; }; -export enum ContributorRegistry_OrderBy { - Context = 'context', - Contributors = 'contributors', - CreatedAt = 'createdAt', - FundingRoundFactory = 'fundingRoundFactory', - FundingRoundFactoryBatchUstVerifier = 'fundingRoundFactory__batchUstVerifier', - FundingRoundFactoryContributorRegistryAddress = 'fundingRoundFactory__contributorRegistryAddress', - FundingRoundFactoryCoordinator = 'fundingRoundFactory__coordinator', - FundingRoundFactoryCoordinatorPubKey = 'fundingRoundFactory__coordinatorPubKey', - FundingRoundFactoryCreatedAt = 'fundingRoundFactory__createdAt', - FundingRoundFactoryId = 'fundingRoundFactory__id', - FundingRoundFactoryLastUpdatedAt = 'fundingRoundFactory__lastUpdatedAt', - FundingRoundFactoryMaciFactory = 'fundingRoundFactory__maciFactory', - FundingRoundFactoryMaxMessages = 'fundingRoundFactory__maxMessages', - FundingRoundFactoryMaxUsers = 'fundingRoundFactory__maxUsers', - FundingRoundFactoryMaxVoteOptions = 'fundingRoundFactory__maxVoteOptions', - FundingRoundFactoryMessageBatchSize = 'fundingRoundFactory__messageBatchSize', - FundingRoundFactoryMessageTreeDepth = 'fundingRoundFactory__messageTreeDepth', - FundingRoundFactoryNativeToken = 'fundingRoundFactory__nativeToken', - FundingRoundFactoryOwner = 'fundingRoundFactory__owner', - FundingRoundFactoryQvtVerifier = 'fundingRoundFactory__qvtVerifier', - FundingRoundFactoryRecipientRegistryAddress = 'fundingRoundFactory__recipientRegistryAddress', - FundingRoundFactorySignUpDuration = 'fundingRoundFactory__signUpDuration', - FundingRoundFactoryStateTreeDepth = 'fundingRoundFactory__stateTreeDepth', - FundingRoundFactoryTallyBatchSize = 'fundingRoundFactory__tallyBatchSize', - FundingRoundFactoryVoteOptionTreeDepth = 'fundingRoundFactory__voteOptionTreeDepth', - FundingRoundFactoryVotingDuration = 'fundingRoundFactory__votingDuration', - Id = 'id', - LastUpdatedAt = 'lastUpdatedAt', - Owner = 'owner' -} - -export type Contributor_Filter = { - /** Filter for the block changed event. */ - _change_block: InputMaybe; - and: InputMaybe>>; - contributions_: InputMaybe; - contributorAddress: InputMaybe; - contributorAddress_contains: InputMaybe; - contributorAddress_gt: InputMaybe; - contributorAddress_gte: InputMaybe; - contributorAddress_in: InputMaybe>; - contributorAddress_lt: InputMaybe; - contributorAddress_lte: InputMaybe; - contributorAddress_not: InputMaybe; - contributorAddress_not_contains: InputMaybe; - contributorAddress_not_in: InputMaybe>; - contributorRegistry: InputMaybe; - contributorRegistry_: InputMaybe; - contributorRegistry_contains: InputMaybe; - contributorRegistry_contains_nocase: InputMaybe; - contributorRegistry_ends_with: InputMaybe; - contributorRegistry_ends_with_nocase: InputMaybe; - contributorRegistry_gt: InputMaybe; - contributorRegistry_gte: InputMaybe; - contributorRegistry_in: InputMaybe>; - contributorRegistry_lt: InputMaybe; - contributorRegistry_lte: InputMaybe; - contributorRegistry_not: InputMaybe; - contributorRegistry_not_contains: InputMaybe; - contributorRegistry_not_contains_nocase: InputMaybe; - contributorRegistry_not_ends_with: InputMaybe; - contributorRegistry_not_ends_with_nocase: InputMaybe; - contributorRegistry_not_in: InputMaybe>; - contributorRegistry_not_starts_with: InputMaybe; - contributorRegistry_not_starts_with_nocase: InputMaybe; - contributorRegistry_starts_with: InputMaybe; - contributorRegistry_starts_with_nocase: InputMaybe; - createdAt: InputMaybe; - createdAt_contains: InputMaybe; - createdAt_contains_nocase: InputMaybe; - createdAt_ends_with: InputMaybe; - createdAt_ends_with_nocase: InputMaybe; - createdAt_gt: InputMaybe; - createdAt_gte: InputMaybe; - createdAt_in: InputMaybe>; - createdAt_lt: InputMaybe; - createdAt_lte: InputMaybe; - createdAt_not: InputMaybe; - createdAt_not_contains: InputMaybe; - createdAt_not_contains_nocase: InputMaybe; - createdAt_not_ends_with: InputMaybe; - createdAt_not_ends_with_nocase: InputMaybe; - createdAt_not_in: InputMaybe>; - createdAt_not_starts_with: InputMaybe; - createdAt_not_starts_with_nocase: InputMaybe; - createdAt_starts_with: InputMaybe; - createdAt_starts_with_nocase: InputMaybe; - fundingRounds: InputMaybe>; - fundingRounds_: InputMaybe; - fundingRounds_contains: InputMaybe>; - fundingRounds_contains_nocase: InputMaybe>; - fundingRounds_not: InputMaybe>; - fundingRounds_not_contains: InputMaybe>; - fundingRounds_not_contains_nocase: InputMaybe>; - id: InputMaybe; - id_gt: InputMaybe; - id_gte: InputMaybe; - id_in: InputMaybe>; - id_lt: InputMaybe; - id_lte: InputMaybe; - id_not: InputMaybe; - id_not_in: InputMaybe>; - lastUpdatedAt: InputMaybe; - lastUpdatedAt_contains: InputMaybe; - lastUpdatedAt_contains_nocase: InputMaybe; - lastUpdatedAt_ends_with: InputMaybe; - lastUpdatedAt_ends_with_nocase: InputMaybe; - lastUpdatedAt_gt: InputMaybe; - lastUpdatedAt_gte: InputMaybe; - lastUpdatedAt_in: InputMaybe>; - lastUpdatedAt_lt: InputMaybe; - lastUpdatedAt_lte: InputMaybe; - lastUpdatedAt_not: InputMaybe; - lastUpdatedAt_not_contains: InputMaybe; - lastUpdatedAt_not_contains_nocase: InputMaybe; - lastUpdatedAt_not_ends_with: InputMaybe; - lastUpdatedAt_not_ends_with_nocase: InputMaybe; - lastUpdatedAt_not_in: InputMaybe>; - lastUpdatedAt_not_starts_with: InputMaybe; - lastUpdatedAt_not_starts_with_nocase: InputMaybe; - lastUpdatedAt_starts_with: InputMaybe; - lastUpdatedAt_starts_with_nocase: InputMaybe; - or: InputMaybe>>; - verifiedTimeStamp: InputMaybe; - verifiedTimeStamp_contains: InputMaybe; - verifiedTimeStamp_contains_nocase: InputMaybe; - verifiedTimeStamp_ends_with: InputMaybe; - verifiedTimeStamp_ends_with_nocase: InputMaybe; - verifiedTimeStamp_gt: InputMaybe; - verifiedTimeStamp_gte: InputMaybe; - verifiedTimeStamp_in: InputMaybe>; - verifiedTimeStamp_lt: InputMaybe; - verifiedTimeStamp_lte: InputMaybe; - verifiedTimeStamp_not: InputMaybe; - verifiedTimeStamp_not_contains: InputMaybe; - verifiedTimeStamp_not_contains_nocase: InputMaybe; - verifiedTimeStamp_not_ends_with: InputMaybe; - verifiedTimeStamp_not_ends_with_nocase: InputMaybe; - verifiedTimeStamp_not_in: InputMaybe>; - verifiedTimeStamp_not_starts_with: InputMaybe; - verifiedTimeStamp_not_starts_with_nocase: InputMaybe; - verifiedTimeStamp_starts_with: InputMaybe; - verifiedTimeStamp_starts_with_nocase: InputMaybe; - votes_: InputMaybe; -}; - -export enum Contributor_OrderBy { - Contributions = 'contributions', - ContributorAddress = 'contributorAddress', +export enum ClrFund_OrderBy { + BatchUstVerifier = 'batchUstVerifier', ContributorRegistry = 'contributorRegistry', + ContributorRegistryAddress = 'contributorRegistryAddress', ContributorRegistryContext = 'contributorRegistry__context', ContributorRegistryCreatedAt = 'contributorRegistry__createdAt', ContributorRegistryId = 'contributorRegistry__id', ContributorRegistryLastUpdatedAt = 'contributorRegistry__lastUpdatedAt', ContributorRegistryOwner = 'contributorRegistry__owner', + Coordinator = 'coordinator', + CoordinatorPubKey = 'coordinatorPubKey', CreatedAt = 'createdAt', + CurrentRound = 'currentRound', + CurrentRoundContributorCount = 'currentRound__contributorCount', + CurrentRoundContributorRegistryAddress = 'currentRound__contributorRegistryAddress', + CurrentRoundCoordinator = 'currentRound__coordinator', + CurrentRoundCoordinatorPubKeyX = 'currentRound__coordinatorPubKeyX', + CurrentRoundCoordinatorPubKeyY = 'currentRound__coordinatorPubKeyY', + CurrentRoundCreatedAt = 'currentRound__createdAt', + CurrentRoundId = 'currentRound__id', + CurrentRoundIsCancelled = 'currentRound__isCancelled', + CurrentRoundIsFinalized = 'currentRound__isFinalized', + CurrentRoundLastUpdatedAt = 'currentRound__lastUpdatedAt', + CurrentRoundMaci = 'currentRound__maci', + CurrentRoundMatchingPoolSize = 'currentRound__matchingPoolSize', + CurrentRoundMessageTreeDepth = 'currentRound__messageTreeDepth', + CurrentRoundNativeToken = 'currentRound__nativeToken', + CurrentRoundPollAddress = 'currentRound__pollAddress', + CurrentRoundRecipientCount = 'currentRound__recipientCount', + CurrentRoundRecipientRegistryAddress = 'currentRound__recipientRegistryAddress', + CurrentRoundSignUpDeadline = 'currentRound__signUpDeadline', + CurrentRoundStartTime = 'currentRound__startTime', + CurrentRoundStateTreeDepth = 'currentRound__stateTreeDepth', + CurrentRoundTallyHash = 'currentRound__tallyHash', + CurrentRoundTotalSpent = 'currentRound__totalSpent', + CurrentRoundTotalVotes = 'currentRound__totalVotes', + CurrentRoundVoiceCreditFactor = 'currentRound__voiceCreditFactor', + CurrentRoundVoteOptionTreeDepth = 'currentRound__voteOptionTreeDepth', + CurrentRoundVotingDeadline = 'currentRound__votingDeadline', FundingRounds = 'fundingRounds', Id = 'id', LastUpdatedAt = 'lastUpdatedAt', - VerifiedTimeStamp = 'verifiedTimeStamp', - Votes = 'votes' + MaciFactory = 'maciFactory', + MaxMessages = 'maxMessages', + MaxUsers = 'maxUsers', + MaxVoteOptions = 'maxVoteOptions', + MessageBatchSize = 'messageBatchSize', + MessageTreeDepth = 'messageTreeDepth', + NativeToken = 'nativeToken', + NativeTokenInfo = 'nativeTokenInfo', + NativeTokenInfoCreatedAt = 'nativeTokenInfo__createdAt', + NativeTokenInfoDecimals = 'nativeTokenInfo__decimals', + NativeTokenInfoId = 'nativeTokenInfo__id', + NativeTokenInfoLastUpdatedAt = 'nativeTokenInfo__lastUpdatedAt', + NativeTokenInfoSymbol = 'nativeTokenInfo__symbol', + NativeTokenInfoTokenAddress = 'nativeTokenInfo__tokenAddress', + Owner = 'owner', + QvtVerifier = 'qvtVerifier', + RecipientRegistry = 'recipientRegistry', + RecipientRegistryAddress = 'recipientRegistryAddress', + RecipientRegistryBaseDeposit = 'recipientRegistry__baseDeposit', + RecipientRegistryChallengePeriodDuration = 'recipientRegistry__challengePeriodDuration', + RecipientRegistryController = 'recipientRegistry__controller', + RecipientRegistryCreatedAt = 'recipientRegistry__createdAt', + RecipientRegistryId = 'recipientRegistry__id', + RecipientRegistryLastUpdatedAt = 'recipientRegistry__lastUpdatedAt', + RecipientRegistryMaxRecipients = 'recipientRegistry__maxRecipients', + RecipientRegistryOwner = 'recipientRegistry__owner', + SignUpDuration = 'signUpDuration', + StateTreeDepth = 'stateTreeDepth', + TallyBatchSize = 'tallyBatchSize', + VoteOptionTreeDepth = 'voteOptionTreeDepth', + VotingDuration = 'votingDuration' } -export type Coordinator = { - __typename?: 'Coordinator'; - contact: Maybe; +export type Contribution = { + __typename?: 'Contribution'; + amount: Maybe; + contributor: Maybe; createdAt: Maybe; + fundingRound: Maybe; id: Scalars['ID']; - lastUpdatedAt: Maybe; + voiceCredits: Maybe; }; -export type Coordinator_Filter = { +export type Contribution_Filter = { /** Filter for the block changed event. */ _change_block: InputMaybe; - and: InputMaybe>>; - contact: InputMaybe; - contact_contains: InputMaybe; - contact_contains_nocase: InputMaybe; - contact_ends_with: InputMaybe; - contact_ends_with_nocase: InputMaybe; - contact_gt: InputMaybe; - contact_gte: InputMaybe; - contact_in: InputMaybe>; - contact_lt: InputMaybe; - contact_lte: InputMaybe; - contact_not: InputMaybe; - contact_not_contains: InputMaybe; - contact_not_contains_nocase: InputMaybe; - contact_not_ends_with: InputMaybe; - contact_not_ends_with_nocase: InputMaybe; - contact_not_in: InputMaybe>; - contact_not_starts_with: InputMaybe; - contact_not_starts_with_nocase: InputMaybe; - contact_starts_with: InputMaybe; - contact_starts_with_nocase: InputMaybe; - createdAt: InputMaybe; - createdAt_contains: InputMaybe; - createdAt_contains_nocase: InputMaybe; - createdAt_ends_with: InputMaybe; - createdAt_ends_with_nocase: InputMaybe; - createdAt_gt: InputMaybe; - createdAt_gte: InputMaybe; - createdAt_in: InputMaybe>; - createdAt_lt: InputMaybe; - createdAt_lte: InputMaybe; - createdAt_not: InputMaybe; - createdAt_not_contains: InputMaybe; - createdAt_not_contains_nocase: InputMaybe; - createdAt_not_ends_with: InputMaybe; - createdAt_not_ends_with_nocase: InputMaybe; - createdAt_not_in: InputMaybe>; - createdAt_not_starts_with: InputMaybe; - createdAt_not_starts_with_nocase: InputMaybe; - createdAt_starts_with: InputMaybe; - createdAt_starts_with_nocase: InputMaybe; - id: InputMaybe; - id_gt: InputMaybe; - id_gte: InputMaybe; - id_in: InputMaybe>; - id_lt: InputMaybe; - id_lte: InputMaybe; - id_not: InputMaybe; - id_not_in: InputMaybe>; - lastUpdatedAt: InputMaybe; - lastUpdatedAt_contains: InputMaybe; - lastUpdatedAt_contains_nocase: InputMaybe; - lastUpdatedAt_ends_with: InputMaybe; - lastUpdatedAt_ends_with_nocase: InputMaybe; - lastUpdatedAt_gt: InputMaybe; - lastUpdatedAt_gte: InputMaybe; - lastUpdatedAt_in: InputMaybe>; - lastUpdatedAt_lt: InputMaybe; - lastUpdatedAt_lte: InputMaybe; - lastUpdatedAt_not: InputMaybe; - lastUpdatedAt_not_contains: InputMaybe; - lastUpdatedAt_not_contains_nocase: InputMaybe; - lastUpdatedAt_not_ends_with: InputMaybe; - lastUpdatedAt_not_ends_with_nocase: InputMaybe; - lastUpdatedAt_not_in: InputMaybe>; - lastUpdatedAt_not_starts_with: InputMaybe; - lastUpdatedAt_not_starts_with_nocase: InputMaybe; - lastUpdatedAt_starts_with: InputMaybe; - lastUpdatedAt_starts_with_nocase: InputMaybe; - or: InputMaybe>>; -}; - -export enum Coordinator_OrderBy { - Contact = 'contact', - CreatedAt = 'createdAt', - Id = 'id', - LastUpdatedAt = 'lastUpdatedAt' -} - -export type Donation = { - __typename?: 'Donation'; - amount: Maybe; - createdAt: Maybe; - fundingRound: Maybe; - id: Scalars['ID']; - recipient: Maybe; - voteOptionIndex: Maybe; -}; - -export type Donation_Filter = { - /** Filter for the block changed event. */ - _change_block: InputMaybe; - amount: InputMaybe; - amount_gt: InputMaybe; - amount_gte: InputMaybe; - amount_in: InputMaybe>; - amount_lt: InputMaybe; - amount_lte: InputMaybe; - amount_not: InputMaybe; - amount_not_in: InputMaybe>; - and: InputMaybe>>; + amount: InputMaybe; + amount_gt: InputMaybe; + amount_gte: InputMaybe; + amount_in: InputMaybe>; + amount_lt: InputMaybe; + amount_lte: InputMaybe; + amount_not: InputMaybe; + amount_not_in: InputMaybe>; + and: InputMaybe>>; + contributor: InputMaybe; + contributor_: InputMaybe; + contributor_contains: InputMaybe; + contributor_contains_nocase: InputMaybe; + contributor_ends_with: InputMaybe; + contributor_ends_with_nocase: InputMaybe; + contributor_gt: InputMaybe; + contributor_gte: InputMaybe; + contributor_in: InputMaybe>; + contributor_lt: InputMaybe; + contributor_lte: InputMaybe; + contributor_not: InputMaybe; + contributor_not_contains: InputMaybe; + contributor_not_contains_nocase: InputMaybe; + contributor_not_ends_with: InputMaybe; + contributor_not_ends_with_nocase: InputMaybe; + contributor_not_in: InputMaybe>; + contributor_not_starts_with: InputMaybe; + contributor_not_starts_with_nocase: InputMaybe; + contributor_starts_with: InputMaybe; + contributor_starts_with_nocase: InputMaybe; createdAt: InputMaybe; createdAt_contains: InputMaybe; createdAt_contains_nocase: InputMaybe; @@ -658,34 +556,32 @@ export type Donation_Filter = { id_lte: InputMaybe; id_not: InputMaybe; id_not_in: InputMaybe>; - or: InputMaybe>>; - recipient: InputMaybe; - recipient_contains: InputMaybe; - recipient_gt: InputMaybe; - recipient_gte: InputMaybe; - recipient_in: InputMaybe>; - recipient_lt: InputMaybe; - recipient_lte: InputMaybe; - recipient_not: InputMaybe; - recipient_not_contains: InputMaybe; - recipient_not_in: InputMaybe>; - voteOptionIndex: InputMaybe; - voteOptionIndex_gt: InputMaybe; - voteOptionIndex_gte: InputMaybe; - voteOptionIndex_in: InputMaybe>; - voteOptionIndex_lt: InputMaybe; - voteOptionIndex_lte: InputMaybe; - voteOptionIndex_not: InputMaybe; - voteOptionIndex_not_in: InputMaybe>; + or: InputMaybe>>; + voiceCredits: InputMaybe; + voiceCredits_gt: InputMaybe; + voiceCredits_gte: InputMaybe; + voiceCredits_in: InputMaybe>; + voiceCredits_lt: InputMaybe; + voiceCredits_lte: InputMaybe; + voiceCredits_not: InputMaybe; + voiceCredits_not_in: InputMaybe>; }; -export enum Donation_OrderBy { +export enum Contribution_OrderBy { Amount = 'amount', + Contributor = 'contributor', + ContributorContributorAddress = 'contributor__contributorAddress', + ContributorCreatedAt = 'contributor__createdAt', + ContributorId = 'contributor__id', + ContributorLastUpdatedAt = 'contributor__lastUpdatedAt', + ContributorVerifiedTimeStamp = 'contributor__verifiedTimeStamp', CreatedAt = 'createdAt', FundingRound = 'fundingRound', FundingRoundContributorCount = 'fundingRound__contributorCount', FundingRoundContributorRegistryAddress = 'fundingRound__contributorRegistryAddress', FundingRoundCoordinator = 'fundingRound__coordinator', + FundingRoundCoordinatorPubKeyX = 'fundingRound__coordinatorPubKeyX', + FundingRoundCoordinatorPubKeyY = 'fundingRound__coordinatorPubKeyY', FundingRoundCreatedAt = 'fundingRound__createdAt', FundingRoundId = 'fundingRound__id', FundingRoundIsCancelled = 'fundingRound__isCancelled', @@ -693,56 +589,39 @@ export enum Donation_OrderBy { FundingRoundLastUpdatedAt = 'fundingRound__lastUpdatedAt', FundingRoundMaci = 'fundingRound__maci', FundingRoundMatchingPoolSize = 'fundingRound__matchingPoolSize', + FundingRoundMessageTreeDepth = 'fundingRound__messageTreeDepth', FundingRoundNativeToken = 'fundingRound__nativeToken', + FundingRoundPollAddress = 'fundingRound__pollAddress', FundingRoundRecipientCount = 'fundingRound__recipientCount', FundingRoundRecipientRegistryAddress = 'fundingRound__recipientRegistryAddress', FundingRoundSignUpDeadline = 'fundingRound__signUpDeadline', FundingRoundStartTime = 'fundingRound__startTime', + FundingRoundStateTreeDepth = 'fundingRound__stateTreeDepth', FundingRoundTallyHash = 'fundingRound__tallyHash', FundingRoundTotalSpent = 'fundingRound__totalSpent', FundingRoundTotalVotes = 'fundingRound__totalVotes', FundingRoundVoiceCreditFactor = 'fundingRound__voiceCreditFactor', + FundingRoundVoteOptionTreeDepth = 'fundingRound__voteOptionTreeDepth', FundingRoundVotingDeadline = 'fundingRound__votingDeadline', Id = 'id', - Recipient = 'recipient', - VoteOptionIndex = 'voteOptionIndex' + VoiceCredits = 'voiceCredits' } -export type FundingRound = { - __typename?: 'FundingRound'; +export type Contributor = { + __typename?: 'Contributor'; contributions: Maybe>; - contributorCount: Scalars['BigInt']; - contributorRegistry: Maybe; - contributorRegistryAddress: Maybe; - contributors: Maybe>; - coordinator: Maybe; + contributorAddress: Maybe; + contributorRegistry: ContributorRegistry; createdAt: Maybe; - fundingRoundFactory: Maybe; + fundingRounds: Maybe>; id: Scalars['ID']; - isCancelled: Maybe; - isFinalized: Maybe; lastUpdatedAt: Maybe; - maci: Maybe; - matchingPoolSize: Maybe; - messages: Maybe>; - nativeToken: Maybe; - nativeTokenInfo: Maybe; - recipientCount: Scalars['BigInt']; - recipientRegistry: Maybe; - recipientRegistryAddress: Maybe; - recipients: Maybe>; - signUpDeadline: Maybe; - startTime: Maybe; - tallyHash: Maybe; - totalSpent: Maybe; - totalVotes: Maybe; - voiceCreditFactor: Maybe; + verifiedTimeStamp: Maybe; votes: Maybe>; - votingDeadline: Maybe; }; -export type FundingRoundContributionsArgs = { +export type ContributorContributionsArgs = { first?: InputMaybe; orderBy: InputMaybe; orderDirection: InputMaybe; @@ -751,34 +630,16 @@ export type FundingRoundContributionsArgs = { }; -export type FundingRoundContributorsArgs = { - first?: InputMaybe; - orderBy: InputMaybe; - orderDirection: InputMaybe; - skip?: InputMaybe; - where: InputMaybe; -}; - - -export type FundingRoundMessagesArgs = { - first?: InputMaybe; - orderBy: InputMaybe; - orderDirection: InputMaybe; - skip?: InputMaybe; - where: InputMaybe; -}; - - -export type FundingRoundRecipientsArgs = { +export type ContributorFundingRoundsArgs = { first?: InputMaybe; - orderBy: InputMaybe; + orderBy: InputMaybe; orderDirection: InputMaybe; skip?: InputMaybe; - where: InputMaybe; + where: InputMaybe; }; -export type FundingRoundVotesArgs = { +export type ContributorVotesArgs = { first?: InputMaybe; orderBy: InputMaybe; orderDirection: InputMaybe; @@ -786,121 +647,72 @@ export type FundingRoundVotesArgs = { where: InputMaybe; }; -export type FundingRoundFactory = { - __typename?: 'FundingRoundFactory'; - batchUstVerifier: Maybe; - contributorRegistry: Maybe; - contributorRegistryAddress: Maybe; - coordinator: Maybe; - coordinatorPubKey: Maybe; +export type ContributorRegistry = { + __typename?: 'ContributorRegistry'; + clrFund: ClrFund; + context: Maybe; + contributors: Maybe>; createdAt: Maybe; - currentRound: Maybe; - fundingRounds: Maybe>; id: Scalars['ID']; lastUpdatedAt: Maybe; - maciFactory: Maybe; - maxMessages: Maybe; - maxUsers: Maybe; - maxVoteOptions: Maybe; - messageBatchSize: Maybe; - messageTreeDepth: Maybe; - nativeToken: Maybe; - nativeTokenInfo: Maybe; owner: Maybe; - qvtVerifier: Maybe; - recipientRegistry: Maybe; - recipientRegistryAddress: Maybe; - signUpDuration: Maybe; - stateTreeDepth: Maybe; - tallyBatchSize: Maybe; - voteOptionTreeDepth: Maybe; - votingDuration: Maybe; }; -export type FundingRoundFactoryFundingRoundsArgs = { +export type ContributorRegistryContributorsArgs = { first?: InputMaybe; - orderBy: InputMaybe; + orderBy: InputMaybe; orderDirection: InputMaybe; skip?: InputMaybe; - where: InputMaybe; + where: InputMaybe; }; -export type FundingRoundFactory_Filter = { +export type ContributorRegistry_Filter = { /** Filter for the block changed event. */ _change_block: InputMaybe; - and: InputMaybe>>; - batchUstVerifier: InputMaybe; - batchUstVerifier_contains: InputMaybe; - batchUstVerifier_gt: InputMaybe; - batchUstVerifier_gte: InputMaybe; - batchUstVerifier_in: InputMaybe>; - batchUstVerifier_lt: InputMaybe; - batchUstVerifier_lte: InputMaybe; - batchUstVerifier_not: InputMaybe; - batchUstVerifier_not_contains: InputMaybe; - batchUstVerifier_not_in: InputMaybe>; - contributorRegistry: InputMaybe; - contributorRegistryAddress: InputMaybe; - contributorRegistryAddress_contains: InputMaybe; - contributorRegistryAddress_gt: InputMaybe; - contributorRegistryAddress_gte: InputMaybe; - contributorRegistryAddress_in: InputMaybe>; - contributorRegistryAddress_lt: InputMaybe; - contributorRegistryAddress_lte: InputMaybe; - contributorRegistryAddress_not: InputMaybe; - contributorRegistryAddress_not_contains: InputMaybe; - contributorRegistryAddress_not_in: InputMaybe>; - contributorRegistry_: InputMaybe; - contributorRegistry_contains: InputMaybe; - contributorRegistry_contains_nocase: InputMaybe; - contributorRegistry_ends_with: InputMaybe; - contributorRegistry_ends_with_nocase: InputMaybe; - contributorRegistry_gt: InputMaybe; - contributorRegistry_gte: InputMaybe; - contributorRegistry_in: InputMaybe>; - contributorRegistry_lt: InputMaybe; - contributorRegistry_lte: InputMaybe; - contributorRegistry_not: InputMaybe; - contributorRegistry_not_contains: InputMaybe; - contributorRegistry_not_contains_nocase: InputMaybe; - contributorRegistry_not_ends_with: InputMaybe; - contributorRegistry_not_ends_with_nocase: InputMaybe; - contributorRegistry_not_in: InputMaybe>; - contributorRegistry_not_starts_with: InputMaybe; - contributorRegistry_not_starts_with_nocase: InputMaybe; - contributorRegistry_starts_with: InputMaybe; - contributorRegistry_starts_with_nocase: InputMaybe; - coordinator: InputMaybe; - coordinatorPubKey: InputMaybe; - coordinatorPubKey_contains: InputMaybe; - coordinatorPubKey_contains_nocase: InputMaybe; - coordinatorPubKey_ends_with: InputMaybe; - coordinatorPubKey_ends_with_nocase: InputMaybe; - coordinatorPubKey_gt: InputMaybe; - coordinatorPubKey_gte: InputMaybe; - coordinatorPubKey_in: InputMaybe>; - coordinatorPubKey_lt: InputMaybe; - coordinatorPubKey_lte: InputMaybe; - coordinatorPubKey_not: InputMaybe; - coordinatorPubKey_not_contains: InputMaybe; - coordinatorPubKey_not_contains_nocase: InputMaybe; - coordinatorPubKey_not_ends_with: InputMaybe; - coordinatorPubKey_not_ends_with_nocase: InputMaybe; - coordinatorPubKey_not_in: InputMaybe>; - coordinatorPubKey_not_starts_with: InputMaybe; - coordinatorPubKey_not_starts_with_nocase: InputMaybe; - coordinatorPubKey_starts_with: InputMaybe; - coordinatorPubKey_starts_with_nocase: InputMaybe; - coordinator_contains: InputMaybe; - coordinator_gt: InputMaybe; - coordinator_gte: InputMaybe; - coordinator_in: InputMaybe>; - coordinator_lt: InputMaybe; - coordinator_lte: InputMaybe; - coordinator_not: InputMaybe; - coordinator_not_contains: InputMaybe; - coordinator_not_in: InputMaybe>; + and: InputMaybe>>; + clrFund: InputMaybe; + clrFund_: InputMaybe; + clrFund_contains: InputMaybe; + clrFund_contains_nocase: InputMaybe; + clrFund_ends_with: InputMaybe; + clrFund_ends_with_nocase: InputMaybe; + clrFund_gt: InputMaybe; + clrFund_gte: InputMaybe; + clrFund_in: InputMaybe>; + clrFund_lt: InputMaybe; + clrFund_lte: InputMaybe; + clrFund_not: InputMaybe; + clrFund_not_contains: InputMaybe; + clrFund_not_contains_nocase: InputMaybe; + clrFund_not_ends_with: InputMaybe; + clrFund_not_ends_with_nocase: InputMaybe; + clrFund_not_in: InputMaybe>; + clrFund_not_starts_with: InputMaybe; + clrFund_not_starts_with_nocase: InputMaybe; + clrFund_starts_with: InputMaybe; + clrFund_starts_with_nocase: InputMaybe; + context: InputMaybe; + context_contains: InputMaybe; + context_contains_nocase: InputMaybe; + context_ends_with: InputMaybe; + context_ends_with_nocase: InputMaybe; + context_gt: InputMaybe; + context_gte: InputMaybe; + context_in: InputMaybe>; + context_lt: InputMaybe; + context_lte: InputMaybe; + context_not: InputMaybe; + context_not_contains: InputMaybe; + context_not_contains_nocase: InputMaybe; + context_not_ends_with: InputMaybe; + context_not_ends_with_nocase: InputMaybe; + context_not_in: InputMaybe>; + context_not_starts_with: InputMaybe; + context_not_starts_with_nocase: InputMaybe; + context_starts_with: InputMaybe; + context_starts_with_nocase: InputMaybe; + contributors_: InputMaybe; createdAt: InputMaybe; createdAt_contains: InputMaybe; createdAt_contains_nocase: InputMaybe; @@ -921,28 +733,6 @@ export type FundingRoundFactory_Filter = { createdAt_not_starts_with_nocase: InputMaybe; createdAt_starts_with: InputMaybe; createdAt_starts_with_nocase: InputMaybe; - currentRound: InputMaybe; - currentRound_: InputMaybe; - currentRound_contains: InputMaybe; - currentRound_contains_nocase: InputMaybe; - currentRound_ends_with: InputMaybe; - currentRound_ends_with_nocase: InputMaybe; - currentRound_gt: InputMaybe; - currentRound_gte: InputMaybe; - currentRound_in: InputMaybe>; - currentRound_lt: InputMaybe; - currentRound_lte: InputMaybe; - currentRound_not: InputMaybe; - currentRound_not_contains: InputMaybe; - currentRound_not_contains_nocase: InputMaybe; - currentRound_not_ends_with: InputMaybe; - currentRound_not_ends_with_nocase: InputMaybe; - currentRound_not_in: InputMaybe>; - currentRound_not_starts_with: InputMaybe; - currentRound_not_starts_with_nocase: InputMaybe; - currentRound_starts_with: InputMaybe; - currentRound_starts_with_nocase: InputMaybe; - fundingRounds_: InputMaybe; id: InputMaybe; id_gt: InputMaybe; id_gte: InputMaybe; @@ -971,88 +761,7 @@ export type FundingRoundFactory_Filter = { lastUpdatedAt_not_starts_with_nocase: InputMaybe; lastUpdatedAt_starts_with: InputMaybe; lastUpdatedAt_starts_with_nocase: InputMaybe; - maciFactory: InputMaybe; - maciFactory_contains: InputMaybe; - maciFactory_gt: InputMaybe; - maciFactory_gte: InputMaybe; - maciFactory_in: InputMaybe>; - maciFactory_lt: InputMaybe; - maciFactory_lte: InputMaybe; - maciFactory_not: InputMaybe; - maciFactory_not_contains: InputMaybe; - maciFactory_not_in: InputMaybe>; - maxMessages: InputMaybe; - maxMessages_gt: InputMaybe; - maxMessages_gte: InputMaybe; - maxMessages_in: InputMaybe>; - maxMessages_lt: InputMaybe; - maxMessages_lte: InputMaybe; - maxMessages_not: InputMaybe; - maxMessages_not_in: InputMaybe>; - maxUsers: InputMaybe; - maxUsers_gt: InputMaybe; - maxUsers_gte: InputMaybe; - maxUsers_in: InputMaybe>; - maxUsers_lt: InputMaybe; - maxUsers_lte: InputMaybe; - maxUsers_not: InputMaybe; - maxUsers_not_in: InputMaybe>; - maxVoteOptions: InputMaybe; - maxVoteOptions_gt: InputMaybe; - maxVoteOptions_gte: InputMaybe; - maxVoteOptions_in: InputMaybe>; - maxVoteOptions_lt: InputMaybe; - maxVoteOptions_lte: InputMaybe; - maxVoteOptions_not: InputMaybe; - maxVoteOptions_not_in: InputMaybe>; - messageBatchSize: InputMaybe; - messageBatchSize_gt: InputMaybe; - messageBatchSize_gte: InputMaybe; - messageBatchSize_in: InputMaybe>; - messageBatchSize_lt: InputMaybe; - messageBatchSize_lte: InputMaybe; - messageBatchSize_not: InputMaybe; - messageBatchSize_not_in: InputMaybe>; - messageTreeDepth: InputMaybe; - messageTreeDepth_gt: InputMaybe; - messageTreeDepth_gte: InputMaybe; - messageTreeDepth_in: InputMaybe>; - messageTreeDepth_lt: InputMaybe; - messageTreeDepth_lte: InputMaybe; - messageTreeDepth_not: InputMaybe; - messageTreeDepth_not_in: InputMaybe>; - nativeToken: InputMaybe; - nativeTokenInfo: InputMaybe; - nativeTokenInfo_: InputMaybe; - nativeTokenInfo_contains: InputMaybe; - nativeTokenInfo_contains_nocase: InputMaybe; - nativeTokenInfo_ends_with: InputMaybe; - nativeTokenInfo_ends_with_nocase: InputMaybe; - nativeTokenInfo_gt: InputMaybe; - nativeTokenInfo_gte: InputMaybe; - nativeTokenInfo_in: InputMaybe>; - nativeTokenInfo_lt: InputMaybe; - nativeTokenInfo_lte: InputMaybe; - nativeTokenInfo_not: InputMaybe; - nativeTokenInfo_not_contains: InputMaybe; - nativeTokenInfo_not_contains_nocase: InputMaybe; - nativeTokenInfo_not_ends_with: InputMaybe; - nativeTokenInfo_not_ends_with_nocase: InputMaybe; - nativeTokenInfo_not_in: InputMaybe>; - nativeTokenInfo_not_starts_with: InputMaybe; - nativeTokenInfo_not_starts_with_nocase: InputMaybe; - nativeTokenInfo_starts_with: InputMaybe; - nativeTokenInfo_starts_with_nocase: InputMaybe; - nativeToken_contains: InputMaybe; - nativeToken_gt: InputMaybe; - nativeToken_gte: InputMaybe; - nativeToken_in: InputMaybe>; - nativeToken_lt: InputMaybe; - nativeToken_lte: InputMaybe; - nativeToken_not: InputMaybe; - nativeToken_not_contains: InputMaybe; - nativeToken_not_in: InputMaybe>; - or: InputMaybe>>; + or: InputMaybe>>; owner: InputMaybe; owner_contains: InputMaybe; owner_gt: InputMaybe; @@ -1063,162 +772,498 @@ export type FundingRoundFactory_Filter = { owner_not: InputMaybe; owner_not_contains: InputMaybe; owner_not_in: InputMaybe>; - qvtVerifier: InputMaybe; - qvtVerifier_contains: InputMaybe; - qvtVerifier_gt: InputMaybe; - qvtVerifier_gte: InputMaybe; - qvtVerifier_in: InputMaybe>; - qvtVerifier_lt: InputMaybe; - qvtVerifier_lte: InputMaybe; - qvtVerifier_not: InputMaybe; - qvtVerifier_not_contains: InputMaybe; - qvtVerifier_not_in: InputMaybe>; - recipientRegistry: InputMaybe; - recipientRegistryAddress: InputMaybe; - recipientRegistryAddress_contains: InputMaybe; - recipientRegistryAddress_gt: InputMaybe; - recipientRegistryAddress_gte: InputMaybe; - recipientRegistryAddress_in: InputMaybe>; - recipientRegistryAddress_lt: InputMaybe; - recipientRegistryAddress_lte: InputMaybe; - recipientRegistryAddress_not: InputMaybe; - recipientRegistryAddress_not_contains: InputMaybe; - recipientRegistryAddress_not_in: InputMaybe>; - recipientRegistry_: InputMaybe; - recipientRegistry_contains: InputMaybe; - recipientRegistry_contains_nocase: InputMaybe; - recipientRegistry_ends_with: InputMaybe; - recipientRegistry_ends_with_nocase: InputMaybe; - recipientRegistry_gt: InputMaybe; - recipientRegistry_gte: InputMaybe; - recipientRegistry_in: InputMaybe>; - recipientRegistry_lt: InputMaybe; - recipientRegistry_lte: InputMaybe; - recipientRegistry_not: InputMaybe; - recipientRegistry_not_contains: InputMaybe; - recipientRegistry_not_contains_nocase: InputMaybe; - recipientRegistry_not_ends_with: InputMaybe; - recipientRegistry_not_ends_with_nocase: InputMaybe; - recipientRegistry_not_in: InputMaybe>; - recipientRegistry_not_starts_with: InputMaybe; - recipientRegistry_not_starts_with_nocase: InputMaybe; - recipientRegistry_starts_with: InputMaybe; - recipientRegistry_starts_with_nocase: InputMaybe; - signUpDuration: InputMaybe; - signUpDuration_gt: InputMaybe; - signUpDuration_gte: InputMaybe; - signUpDuration_in: InputMaybe>; - signUpDuration_lt: InputMaybe; - signUpDuration_lte: InputMaybe; - signUpDuration_not: InputMaybe; - signUpDuration_not_in: InputMaybe>; - stateTreeDepth: InputMaybe; - stateTreeDepth_gt: InputMaybe; - stateTreeDepth_gte: InputMaybe; - stateTreeDepth_in: InputMaybe>; - stateTreeDepth_lt: InputMaybe; - stateTreeDepth_lte: InputMaybe; - stateTreeDepth_not: InputMaybe; - stateTreeDepth_not_in: InputMaybe>; - tallyBatchSize: InputMaybe; - tallyBatchSize_gt: InputMaybe; - tallyBatchSize_gte: InputMaybe; - tallyBatchSize_in: InputMaybe>; - tallyBatchSize_lt: InputMaybe; - tallyBatchSize_lte: InputMaybe; - tallyBatchSize_not: InputMaybe; - tallyBatchSize_not_in: InputMaybe>; - voteOptionTreeDepth: InputMaybe; - voteOptionTreeDepth_gt: InputMaybe; - voteOptionTreeDepth_gte: InputMaybe; - voteOptionTreeDepth_in: InputMaybe>; - voteOptionTreeDepth_lt: InputMaybe; - voteOptionTreeDepth_lte: InputMaybe; - voteOptionTreeDepth_not: InputMaybe; - voteOptionTreeDepth_not_in: InputMaybe>; - votingDuration: InputMaybe; - votingDuration_gt: InputMaybe; - votingDuration_gte: InputMaybe; - votingDuration_in: InputMaybe>; - votingDuration_lt: InputMaybe; - votingDuration_lte: InputMaybe; - votingDuration_not: InputMaybe; - votingDuration_not_in: InputMaybe>; }; -export enum FundingRoundFactory_OrderBy { - BatchUstVerifier = 'batchUstVerifier', - ContributorRegistry = 'contributorRegistry', - ContributorRegistryAddress = 'contributorRegistryAddress', - ContributorRegistryContext = 'contributorRegistry__context', - ContributorRegistryCreatedAt = 'contributorRegistry__createdAt', - ContributorRegistryId = 'contributorRegistry__id', - ContributorRegistryLastUpdatedAt = 'contributorRegistry__lastUpdatedAt', - ContributorRegistryOwner = 'contributorRegistry__owner', - Coordinator = 'coordinator', - CoordinatorPubKey = 'coordinatorPubKey', +export enum ContributorRegistry_OrderBy { + ClrFund = 'clrFund', + ClrFundBatchUstVerifier = 'clrFund__batchUstVerifier', + ClrFundContributorRegistryAddress = 'clrFund__contributorRegistryAddress', + ClrFundCoordinator = 'clrFund__coordinator', + ClrFundCoordinatorPubKey = 'clrFund__coordinatorPubKey', + ClrFundCreatedAt = 'clrFund__createdAt', + ClrFundId = 'clrFund__id', + ClrFundLastUpdatedAt = 'clrFund__lastUpdatedAt', + ClrFundMaciFactory = 'clrFund__maciFactory', + ClrFundMaxMessages = 'clrFund__maxMessages', + ClrFundMaxUsers = 'clrFund__maxUsers', + ClrFundMaxVoteOptions = 'clrFund__maxVoteOptions', + ClrFundMessageBatchSize = 'clrFund__messageBatchSize', + ClrFundMessageTreeDepth = 'clrFund__messageTreeDepth', + ClrFundNativeToken = 'clrFund__nativeToken', + ClrFundOwner = 'clrFund__owner', + ClrFundQvtVerifier = 'clrFund__qvtVerifier', + ClrFundRecipientRegistryAddress = 'clrFund__recipientRegistryAddress', + ClrFundSignUpDuration = 'clrFund__signUpDuration', + ClrFundStateTreeDepth = 'clrFund__stateTreeDepth', + ClrFundTallyBatchSize = 'clrFund__tallyBatchSize', + ClrFundVoteOptionTreeDepth = 'clrFund__voteOptionTreeDepth', + ClrFundVotingDuration = 'clrFund__votingDuration', + Context = 'context', + Contributors = 'contributors', + CreatedAt = 'createdAt', + Id = 'id', + LastUpdatedAt = 'lastUpdatedAt', + Owner = 'owner' +} + +export type Contributor_Filter = { + /** Filter for the block changed event. */ + _change_block: InputMaybe; + and: InputMaybe>>; + contributions_: InputMaybe; + contributorAddress: InputMaybe; + contributorAddress_contains: InputMaybe; + contributorAddress_gt: InputMaybe; + contributorAddress_gte: InputMaybe; + contributorAddress_in: InputMaybe>; + contributorAddress_lt: InputMaybe; + contributorAddress_lte: InputMaybe; + contributorAddress_not: InputMaybe; + contributorAddress_not_contains: InputMaybe; + contributorAddress_not_in: InputMaybe>; + contributorRegistry: InputMaybe; + contributorRegistry_: InputMaybe; + contributorRegistry_contains: InputMaybe; + contributorRegistry_contains_nocase: InputMaybe; + contributorRegistry_ends_with: InputMaybe; + contributorRegistry_ends_with_nocase: InputMaybe; + contributorRegistry_gt: InputMaybe; + contributorRegistry_gte: InputMaybe; + contributorRegistry_in: InputMaybe>; + contributorRegistry_lt: InputMaybe; + contributorRegistry_lte: InputMaybe; + contributorRegistry_not: InputMaybe; + contributorRegistry_not_contains: InputMaybe; + contributorRegistry_not_contains_nocase: InputMaybe; + contributorRegistry_not_ends_with: InputMaybe; + contributorRegistry_not_ends_with_nocase: InputMaybe; + contributorRegistry_not_in: InputMaybe>; + contributorRegistry_not_starts_with: InputMaybe; + contributorRegistry_not_starts_with_nocase: InputMaybe; + contributorRegistry_starts_with: InputMaybe; + contributorRegistry_starts_with_nocase: InputMaybe; + createdAt: InputMaybe; + createdAt_contains: InputMaybe; + createdAt_contains_nocase: InputMaybe; + createdAt_ends_with: InputMaybe; + createdAt_ends_with_nocase: InputMaybe; + createdAt_gt: InputMaybe; + createdAt_gte: InputMaybe; + createdAt_in: InputMaybe>; + createdAt_lt: InputMaybe; + createdAt_lte: InputMaybe; + createdAt_not: InputMaybe; + createdAt_not_contains: InputMaybe; + createdAt_not_contains_nocase: InputMaybe; + createdAt_not_ends_with: InputMaybe; + createdAt_not_ends_with_nocase: InputMaybe; + createdAt_not_in: InputMaybe>; + createdAt_not_starts_with: InputMaybe; + createdAt_not_starts_with_nocase: InputMaybe; + createdAt_starts_with: InputMaybe; + createdAt_starts_with_nocase: InputMaybe; + fundingRounds: InputMaybe>; + fundingRounds_: InputMaybe; + fundingRounds_contains: InputMaybe>; + fundingRounds_contains_nocase: InputMaybe>; + fundingRounds_not: InputMaybe>; + fundingRounds_not_contains: InputMaybe>; + fundingRounds_not_contains_nocase: InputMaybe>; + id: InputMaybe; + id_gt: InputMaybe; + id_gte: InputMaybe; + id_in: InputMaybe>; + id_lt: InputMaybe; + id_lte: InputMaybe; + id_not: InputMaybe; + id_not_in: InputMaybe>; + lastUpdatedAt: InputMaybe; + lastUpdatedAt_contains: InputMaybe; + lastUpdatedAt_contains_nocase: InputMaybe; + lastUpdatedAt_ends_with: InputMaybe; + lastUpdatedAt_ends_with_nocase: InputMaybe; + lastUpdatedAt_gt: InputMaybe; + lastUpdatedAt_gte: InputMaybe; + lastUpdatedAt_in: InputMaybe>; + lastUpdatedAt_lt: InputMaybe; + lastUpdatedAt_lte: InputMaybe; + lastUpdatedAt_not: InputMaybe; + lastUpdatedAt_not_contains: InputMaybe; + lastUpdatedAt_not_contains_nocase: InputMaybe; + lastUpdatedAt_not_ends_with: InputMaybe; + lastUpdatedAt_not_ends_with_nocase: InputMaybe; + lastUpdatedAt_not_in: InputMaybe>; + lastUpdatedAt_not_starts_with: InputMaybe; + lastUpdatedAt_not_starts_with_nocase: InputMaybe; + lastUpdatedAt_starts_with: InputMaybe; + lastUpdatedAt_starts_with_nocase: InputMaybe; + or: InputMaybe>>; + verifiedTimeStamp: InputMaybe; + verifiedTimeStamp_contains: InputMaybe; + verifiedTimeStamp_contains_nocase: InputMaybe; + verifiedTimeStamp_ends_with: InputMaybe; + verifiedTimeStamp_ends_with_nocase: InputMaybe; + verifiedTimeStamp_gt: InputMaybe; + verifiedTimeStamp_gte: InputMaybe; + verifiedTimeStamp_in: InputMaybe>; + verifiedTimeStamp_lt: InputMaybe; + verifiedTimeStamp_lte: InputMaybe; + verifiedTimeStamp_not: InputMaybe; + verifiedTimeStamp_not_contains: InputMaybe; + verifiedTimeStamp_not_contains_nocase: InputMaybe; + verifiedTimeStamp_not_ends_with: InputMaybe; + verifiedTimeStamp_not_ends_with_nocase: InputMaybe; + verifiedTimeStamp_not_in: InputMaybe>; + verifiedTimeStamp_not_starts_with: InputMaybe; + verifiedTimeStamp_not_starts_with_nocase: InputMaybe; + verifiedTimeStamp_starts_with: InputMaybe; + verifiedTimeStamp_starts_with_nocase: InputMaybe; + votes_: InputMaybe; +}; + +export enum Contributor_OrderBy { + Contributions = 'contributions', + ContributorAddress = 'contributorAddress', + ContributorRegistry = 'contributorRegistry', + ContributorRegistryContext = 'contributorRegistry__context', + ContributorRegistryCreatedAt = 'contributorRegistry__createdAt', + ContributorRegistryId = 'contributorRegistry__id', + ContributorRegistryLastUpdatedAt = 'contributorRegistry__lastUpdatedAt', + ContributorRegistryOwner = 'contributorRegistry__owner', + CreatedAt = 'createdAt', + FundingRounds = 'fundingRounds', + Id = 'id', + LastUpdatedAt = 'lastUpdatedAt', + VerifiedTimeStamp = 'verifiedTimeStamp', + Votes = 'votes' +} + +export type Coordinator = { + __typename?: 'Coordinator'; + contact: Maybe; + createdAt: Maybe; + id: Scalars['ID']; + lastUpdatedAt: Maybe; +}; + +export type Coordinator_Filter = { + /** Filter for the block changed event. */ + _change_block: InputMaybe; + and: InputMaybe>>; + contact: InputMaybe; + contact_contains: InputMaybe; + contact_contains_nocase: InputMaybe; + contact_ends_with: InputMaybe; + contact_ends_with_nocase: InputMaybe; + contact_gt: InputMaybe; + contact_gte: InputMaybe; + contact_in: InputMaybe>; + contact_lt: InputMaybe; + contact_lte: InputMaybe; + contact_not: InputMaybe; + contact_not_contains: InputMaybe; + contact_not_contains_nocase: InputMaybe; + contact_not_ends_with: InputMaybe; + contact_not_ends_with_nocase: InputMaybe; + contact_not_in: InputMaybe>; + contact_not_starts_with: InputMaybe; + contact_not_starts_with_nocase: InputMaybe; + contact_starts_with: InputMaybe; + contact_starts_with_nocase: InputMaybe; + createdAt: InputMaybe; + createdAt_contains: InputMaybe; + createdAt_contains_nocase: InputMaybe; + createdAt_ends_with: InputMaybe; + createdAt_ends_with_nocase: InputMaybe; + createdAt_gt: InputMaybe; + createdAt_gte: InputMaybe; + createdAt_in: InputMaybe>; + createdAt_lt: InputMaybe; + createdAt_lte: InputMaybe; + createdAt_not: InputMaybe; + createdAt_not_contains: InputMaybe; + createdAt_not_contains_nocase: InputMaybe; + createdAt_not_ends_with: InputMaybe; + createdAt_not_ends_with_nocase: InputMaybe; + createdAt_not_in: InputMaybe>; + createdAt_not_starts_with: InputMaybe; + createdAt_not_starts_with_nocase: InputMaybe; + createdAt_starts_with: InputMaybe; + createdAt_starts_with_nocase: InputMaybe; + id: InputMaybe; + id_gt: InputMaybe; + id_gte: InputMaybe; + id_in: InputMaybe>; + id_lt: InputMaybe; + id_lte: InputMaybe; + id_not: InputMaybe; + id_not_in: InputMaybe>; + lastUpdatedAt: InputMaybe; + lastUpdatedAt_contains: InputMaybe; + lastUpdatedAt_contains_nocase: InputMaybe; + lastUpdatedAt_ends_with: InputMaybe; + lastUpdatedAt_ends_with_nocase: InputMaybe; + lastUpdatedAt_gt: InputMaybe; + lastUpdatedAt_gte: InputMaybe; + lastUpdatedAt_in: InputMaybe>; + lastUpdatedAt_lt: InputMaybe; + lastUpdatedAt_lte: InputMaybe; + lastUpdatedAt_not: InputMaybe; + lastUpdatedAt_not_contains: InputMaybe; + lastUpdatedAt_not_contains_nocase: InputMaybe; + lastUpdatedAt_not_ends_with: InputMaybe; + lastUpdatedAt_not_ends_with_nocase: InputMaybe; + lastUpdatedAt_not_in: InputMaybe>; + lastUpdatedAt_not_starts_with: InputMaybe; + lastUpdatedAt_not_starts_with_nocase: InputMaybe; + lastUpdatedAt_starts_with: InputMaybe; + lastUpdatedAt_starts_with_nocase: InputMaybe; + or: InputMaybe>>; +}; + +export enum Coordinator_OrderBy { + Contact = 'contact', + CreatedAt = 'createdAt', + Id = 'id', + LastUpdatedAt = 'lastUpdatedAt' +} + +export type Donation = { + __typename?: 'Donation'; + amount: Maybe; + createdAt: Maybe; + fundingRound: Maybe; + id: Scalars['ID']; + recipient: Maybe; + voteOptionIndex: Maybe; +}; + +export type Donation_Filter = { + /** Filter for the block changed event. */ + _change_block: InputMaybe; + amount: InputMaybe; + amount_gt: InputMaybe; + amount_gte: InputMaybe; + amount_in: InputMaybe>; + amount_lt: InputMaybe; + amount_lte: InputMaybe; + amount_not: InputMaybe; + amount_not_in: InputMaybe>; + and: InputMaybe>>; + createdAt: InputMaybe; + createdAt_contains: InputMaybe; + createdAt_contains_nocase: InputMaybe; + createdAt_ends_with: InputMaybe; + createdAt_ends_with_nocase: InputMaybe; + createdAt_gt: InputMaybe; + createdAt_gte: InputMaybe; + createdAt_in: InputMaybe>; + createdAt_lt: InputMaybe; + createdAt_lte: InputMaybe; + createdAt_not: InputMaybe; + createdAt_not_contains: InputMaybe; + createdAt_not_contains_nocase: InputMaybe; + createdAt_not_ends_with: InputMaybe; + createdAt_not_ends_with_nocase: InputMaybe; + createdAt_not_in: InputMaybe>; + createdAt_not_starts_with: InputMaybe; + createdAt_not_starts_with_nocase: InputMaybe; + createdAt_starts_with: InputMaybe; + createdAt_starts_with_nocase: InputMaybe; + fundingRound: InputMaybe; + fundingRound_: InputMaybe; + fundingRound_contains: InputMaybe; + fundingRound_contains_nocase: InputMaybe; + fundingRound_ends_with: InputMaybe; + fundingRound_ends_with_nocase: InputMaybe; + fundingRound_gt: InputMaybe; + fundingRound_gte: InputMaybe; + fundingRound_in: InputMaybe>; + fundingRound_lt: InputMaybe; + fundingRound_lte: InputMaybe; + fundingRound_not: InputMaybe; + fundingRound_not_contains: InputMaybe; + fundingRound_not_contains_nocase: InputMaybe; + fundingRound_not_ends_with: InputMaybe; + fundingRound_not_ends_with_nocase: InputMaybe; + fundingRound_not_in: InputMaybe>; + fundingRound_not_starts_with: InputMaybe; + fundingRound_not_starts_with_nocase: InputMaybe; + fundingRound_starts_with: InputMaybe; + fundingRound_starts_with_nocase: InputMaybe; + id: InputMaybe; + id_gt: InputMaybe; + id_gte: InputMaybe; + id_in: InputMaybe>; + id_lt: InputMaybe; + id_lte: InputMaybe; + id_not: InputMaybe; + id_not_in: InputMaybe>; + or: InputMaybe>>; + recipient: InputMaybe; + recipient_contains: InputMaybe; + recipient_gt: InputMaybe; + recipient_gte: InputMaybe; + recipient_in: InputMaybe>; + recipient_lt: InputMaybe; + recipient_lte: InputMaybe; + recipient_not: InputMaybe; + recipient_not_contains: InputMaybe; + recipient_not_in: InputMaybe>; + voteOptionIndex: InputMaybe; + voteOptionIndex_gt: InputMaybe; + voteOptionIndex_gte: InputMaybe; + voteOptionIndex_in: InputMaybe>; + voteOptionIndex_lt: InputMaybe; + voteOptionIndex_lte: InputMaybe; + voteOptionIndex_not: InputMaybe; + voteOptionIndex_not_in: InputMaybe>; +}; + +export enum Donation_OrderBy { + Amount = 'amount', CreatedAt = 'createdAt', - CurrentRound = 'currentRound', - CurrentRoundContributorCount = 'currentRound__contributorCount', - CurrentRoundContributorRegistryAddress = 'currentRound__contributorRegistryAddress', - CurrentRoundCoordinator = 'currentRound__coordinator', - CurrentRoundCreatedAt = 'currentRound__createdAt', - CurrentRoundId = 'currentRound__id', - CurrentRoundIsCancelled = 'currentRound__isCancelled', - CurrentRoundIsFinalized = 'currentRound__isFinalized', - CurrentRoundLastUpdatedAt = 'currentRound__lastUpdatedAt', - CurrentRoundMaci = 'currentRound__maci', - CurrentRoundMatchingPoolSize = 'currentRound__matchingPoolSize', - CurrentRoundNativeToken = 'currentRound__nativeToken', - CurrentRoundRecipientCount = 'currentRound__recipientCount', - CurrentRoundRecipientRegistryAddress = 'currentRound__recipientRegistryAddress', - CurrentRoundSignUpDeadline = 'currentRound__signUpDeadline', - CurrentRoundStartTime = 'currentRound__startTime', - CurrentRoundTallyHash = 'currentRound__tallyHash', - CurrentRoundTotalSpent = 'currentRound__totalSpent', - CurrentRoundTotalVotes = 'currentRound__totalVotes', - CurrentRoundVoiceCreditFactor = 'currentRound__voiceCreditFactor', - CurrentRoundVotingDeadline = 'currentRound__votingDeadline', - FundingRounds = 'fundingRounds', + FundingRound = 'fundingRound', + FundingRoundContributorCount = 'fundingRound__contributorCount', + FundingRoundContributorRegistryAddress = 'fundingRound__contributorRegistryAddress', + FundingRoundCoordinator = 'fundingRound__coordinator', + FundingRoundCoordinatorPubKeyX = 'fundingRound__coordinatorPubKeyX', + FundingRoundCoordinatorPubKeyY = 'fundingRound__coordinatorPubKeyY', + FundingRoundCreatedAt = 'fundingRound__createdAt', + FundingRoundId = 'fundingRound__id', + FundingRoundIsCancelled = 'fundingRound__isCancelled', + FundingRoundIsFinalized = 'fundingRound__isFinalized', + FundingRoundLastUpdatedAt = 'fundingRound__lastUpdatedAt', + FundingRoundMaci = 'fundingRound__maci', + FundingRoundMatchingPoolSize = 'fundingRound__matchingPoolSize', + FundingRoundMessageTreeDepth = 'fundingRound__messageTreeDepth', + FundingRoundNativeToken = 'fundingRound__nativeToken', + FundingRoundPollAddress = 'fundingRound__pollAddress', + FundingRoundRecipientCount = 'fundingRound__recipientCount', + FundingRoundRecipientRegistryAddress = 'fundingRound__recipientRegistryAddress', + FundingRoundSignUpDeadline = 'fundingRound__signUpDeadline', + FundingRoundStartTime = 'fundingRound__startTime', + FundingRoundStateTreeDepth = 'fundingRound__stateTreeDepth', + FundingRoundTallyHash = 'fundingRound__tallyHash', + FundingRoundTotalSpent = 'fundingRound__totalSpent', + FundingRoundTotalVotes = 'fundingRound__totalVotes', + FundingRoundVoiceCreditFactor = 'fundingRound__voiceCreditFactor', + FundingRoundVoteOptionTreeDepth = 'fundingRound__voteOptionTreeDepth', + FundingRoundVotingDeadline = 'fundingRound__votingDeadline', Id = 'id', - LastUpdatedAt = 'lastUpdatedAt', - MaciFactory = 'maciFactory', - MaxMessages = 'maxMessages', - MaxUsers = 'maxUsers', - MaxVoteOptions = 'maxVoteOptions', - MessageBatchSize = 'messageBatchSize', - MessageTreeDepth = 'messageTreeDepth', - NativeToken = 'nativeToken', - NativeTokenInfo = 'nativeTokenInfo', - NativeTokenInfoCreatedAt = 'nativeTokenInfo__createdAt', - NativeTokenInfoDecimals = 'nativeTokenInfo__decimals', - NativeTokenInfoId = 'nativeTokenInfo__id', - NativeTokenInfoLastUpdatedAt = 'nativeTokenInfo__lastUpdatedAt', - NativeTokenInfoSymbol = 'nativeTokenInfo__symbol', - NativeTokenInfoTokenAddress = 'nativeTokenInfo__tokenAddress', - Owner = 'owner', - QvtVerifier = 'qvtVerifier', - RecipientRegistry = 'recipientRegistry', - RecipientRegistryAddress = 'recipientRegistryAddress', - RecipientRegistryBaseDeposit = 'recipientRegistry__baseDeposit', - RecipientRegistryChallengePeriodDuration = 'recipientRegistry__challengePeriodDuration', - RecipientRegistryController = 'recipientRegistry__controller', - RecipientRegistryCreatedAt = 'recipientRegistry__createdAt', - RecipientRegistryId = 'recipientRegistry__id', - RecipientRegistryLastUpdatedAt = 'recipientRegistry__lastUpdatedAt', - RecipientRegistryMaxRecipients = 'recipientRegistry__maxRecipients', - RecipientRegistryOwner = 'recipientRegistry__owner', - SignUpDuration = 'signUpDuration', - StateTreeDepth = 'stateTreeDepth', - TallyBatchSize = 'tallyBatchSize', - VoteOptionTreeDepth = 'voteOptionTreeDepth', - VotingDuration = 'votingDuration' + Recipient = 'recipient', + VoteOptionIndex = 'voteOptionIndex' } +export type FundingRound = { + __typename?: 'FundingRound'; + clrFund: Maybe; + contributions: Maybe>; + contributorCount: Scalars['BigInt']; + contributorRegistry: Maybe; + contributorRegistryAddress: Maybe; + contributors: Maybe>; + coordinator: Maybe; + coordinatorPubKeyX: Maybe; + coordinatorPubKeyY: Maybe; + createdAt: Maybe; + id: Scalars['ID']; + isCancelled: Maybe; + isFinalized: Maybe; + lastUpdatedAt: Maybe; + maci: Maybe; + matchingPoolSize: Maybe; + messageTreeDepth: Maybe; + messages: Maybe>; + nativeToken: Maybe; + nativeTokenInfo: Maybe; + pollAddress: Maybe; + recipientCount: Scalars['BigInt']; + recipientRegistry: Maybe; + recipientRegistryAddress: Maybe; + recipients: Maybe>; + signUpDeadline: Maybe; + startTime: Maybe; + stateTreeDepth: Maybe; + tallyHash: Maybe; + totalSpent: Maybe; + totalVotes: Maybe; + voiceCreditFactor: Maybe; + voteOptionTreeDepth: Maybe; + votes: Maybe>; + votingDeadline: Maybe; +}; + + +export type FundingRoundContributionsArgs = { + first?: InputMaybe; + orderBy: InputMaybe; + orderDirection: InputMaybe; + skip?: InputMaybe; + where: InputMaybe; +}; + + +export type FundingRoundContributorsArgs = { + first?: InputMaybe; + orderBy: InputMaybe; + orderDirection: InputMaybe; + skip?: InputMaybe; + where: InputMaybe; +}; + + +export type FundingRoundMessagesArgs = { + first?: InputMaybe; + orderBy: InputMaybe; + orderDirection: InputMaybe; + skip?: InputMaybe; + where: InputMaybe; +}; + + +export type FundingRoundRecipientsArgs = { + first?: InputMaybe; + orderBy: InputMaybe; + orderDirection: InputMaybe; + skip?: InputMaybe; + where: InputMaybe; +}; + + +export type FundingRoundVotesArgs = { + first?: InputMaybe; + orderBy: InputMaybe; + orderDirection: InputMaybe; + skip?: InputMaybe; + where: InputMaybe; +}; + export type FundingRound_Filter = { /** Filter for the block changed event. */ _change_block: InputMaybe; and: InputMaybe>>; + clrFund: InputMaybe; + clrFund_: InputMaybe; + clrFund_contains: InputMaybe; + clrFund_contains_nocase: InputMaybe; + clrFund_ends_with: InputMaybe; + clrFund_ends_with_nocase: InputMaybe; + clrFund_gt: InputMaybe; + clrFund_gte: InputMaybe; + clrFund_in: InputMaybe>; + clrFund_lt: InputMaybe; + clrFund_lte: InputMaybe; + clrFund_not: InputMaybe; + clrFund_not_contains: InputMaybe; + clrFund_not_contains_nocase: InputMaybe; + clrFund_not_ends_with: InputMaybe; + clrFund_not_ends_with_nocase: InputMaybe; + clrFund_not_in: InputMaybe>; + clrFund_not_starts_with: InputMaybe; + clrFund_not_starts_with_nocase: InputMaybe; + clrFund_starts_with: InputMaybe; + clrFund_starts_with_nocase: InputMaybe; contributions_: InputMaybe; contributorCount: InputMaybe; contributorCount_gt: InputMaybe; @@ -1261,6 +1306,22 @@ export type FundingRound_Filter = { contributorRegistry_starts_with_nocase: InputMaybe; contributors_: InputMaybe; coordinator: InputMaybe; + coordinatorPubKeyX: InputMaybe; + coordinatorPubKeyX_gt: InputMaybe; + coordinatorPubKeyX_gte: InputMaybe; + coordinatorPubKeyX_in: InputMaybe>; + coordinatorPubKeyX_lt: InputMaybe; + coordinatorPubKeyX_lte: InputMaybe; + coordinatorPubKeyX_not: InputMaybe; + coordinatorPubKeyX_not_in: InputMaybe>; + coordinatorPubKeyY: InputMaybe; + coordinatorPubKeyY_gt: InputMaybe; + coordinatorPubKeyY_gte: InputMaybe; + coordinatorPubKeyY_in: InputMaybe>; + coordinatorPubKeyY_lt: InputMaybe; + coordinatorPubKeyY_lte: InputMaybe; + coordinatorPubKeyY_not: InputMaybe; + coordinatorPubKeyY_not_in: InputMaybe>; coordinator_contains: InputMaybe; coordinator_gt: InputMaybe; coordinator_gte: InputMaybe; @@ -1290,27 +1351,6 @@ export type FundingRound_Filter = { createdAt_not_starts_with_nocase: InputMaybe; createdAt_starts_with: InputMaybe; createdAt_starts_with_nocase: InputMaybe; - fundingRoundFactory: InputMaybe; - fundingRoundFactory_: InputMaybe; - fundingRoundFactory_contains: InputMaybe; - fundingRoundFactory_contains_nocase: InputMaybe; - fundingRoundFactory_ends_with: InputMaybe; - fundingRoundFactory_ends_with_nocase: InputMaybe; - fundingRoundFactory_gt: InputMaybe; - fundingRoundFactory_gte: InputMaybe; - fundingRoundFactory_in: InputMaybe>; - fundingRoundFactory_lt: InputMaybe; - fundingRoundFactory_lte: InputMaybe; - fundingRoundFactory_not: InputMaybe; - fundingRoundFactory_not_contains: InputMaybe; - fundingRoundFactory_not_contains_nocase: InputMaybe; - fundingRoundFactory_not_ends_with: InputMaybe; - fundingRoundFactory_not_ends_with_nocase: InputMaybe; - fundingRoundFactory_not_in: InputMaybe>; - fundingRoundFactory_not_starts_with: InputMaybe; - fundingRoundFactory_not_starts_with_nocase: InputMaybe; - fundingRoundFactory_starts_with: InputMaybe; - fundingRoundFactory_starts_with_nocase: InputMaybe; id: InputMaybe; id_gt: InputMaybe; id_gte: InputMaybe; @@ -1365,6 +1405,14 @@ export type FundingRound_Filter = { matchingPoolSize_lte: InputMaybe; matchingPoolSize_not: InputMaybe; matchingPoolSize_not_in: InputMaybe>; + messageTreeDepth: InputMaybe; + messageTreeDepth_gt: InputMaybe; + messageTreeDepth_gte: InputMaybe; + messageTreeDepth_in: InputMaybe>; + messageTreeDepth_lt: InputMaybe; + messageTreeDepth_lte: InputMaybe; + messageTreeDepth_not: InputMaybe; + messageTreeDepth_not_in: InputMaybe>; messages_: InputMaybe; nativeToken: InputMaybe; nativeTokenInfo: InputMaybe; @@ -1398,6 +1446,16 @@ export type FundingRound_Filter = { nativeToken_not_contains: InputMaybe; nativeToken_not_in: InputMaybe>; or: InputMaybe>>; + pollAddress: InputMaybe; + pollAddress_contains: InputMaybe; + pollAddress_gt: InputMaybe; + pollAddress_gte: InputMaybe; + pollAddress_in: InputMaybe>; + pollAddress_lt: InputMaybe; + pollAddress_lte: InputMaybe; + pollAddress_not: InputMaybe; + pollAddress_not_contains: InputMaybe; + pollAddress_not_in: InputMaybe>; recipientCount: InputMaybe; recipientCount_gt: InputMaybe; recipientCount_gte: InputMaybe; @@ -1454,6 +1512,14 @@ export type FundingRound_Filter = { startTime_lte: InputMaybe; startTime_not: InputMaybe; startTime_not_in: InputMaybe>; + stateTreeDepth: InputMaybe; + stateTreeDepth_gt: InputMaybe; + stateTreeDepth_gte: InputMaybe; + stateTreeDepth_in: InputMaybe>; + stateTreeDepth_lt: InputMaybe; + stateTreeDepth_lte: InputMaybe; + stateTreeDepth_not: InputMaybe; + stateTreeDepth_not_in: InputMaybe>; tallyHash: InputMaybe; tallyHash_contains: InputMaybe; tallyHash_contains_nocase: InputMaybe; @@ -1498,6 +1564,14 @@ export type FundingRound_Filter = { voiceCreditFactor_lte: InputMaybe; voiceCreditFactor_not: InputMaybe; voiceCreditFactor_not_in: InputMaybe>; + voteOptionTreeDepth: InputMaybe; + voteOptionTreeDepth_gt: InputMaybe; + voteOptionTreeDepth_gte: InputMaybe; + voteOptionTreeDepth_in: InputMaybe>; + voteOptionTreeDepth_lt: InputMaybe; + voteOptionTreeDepth_lte: InputMaybe; + voteOptionTreeDepth_not: InputMaybe; + voteOptionTreeDepth_not_in: InputMaybe>; votes_: InputMaybe; votingDeadline: InputMaybe; votingDeadline_gt: InputMaybe; @@ -1510,6 +1584,29 @@ export type FundingRound_Filter = { }; export enum FundingRound_OrderBy { + ClrFund = 'clrFund', + ClrFundBatchUstVerifier = 'clrFund__batchUstVerifier', + ClrFundContributorRegistryAddress = 'clrFund__contributorRegistryAddress', + ClrFundCoordinator = 'clrFund__coordinator', + ClrFundCoordinatorPubKey = 'clrFund__coordinatorPubKey', + ClrFundCreatedAt = 'clrFund__createdAt', + ClrFundId = 'clrFund__id', + ClrFundLastUpdatedAt = 'clrFund__lastUpdatedAt', + ClrFundMaciFactory = 'clrFund__maciFactory', + ClrFundMaxMessages = 'clrFund__maxMessages', + ClrFundMaxUsers = 'clrFund__maxUsers', + ClrFundMaxVoteOptions = 'clrFund__maxVoteOptions', + ClrFundMessageBatchSize = 'clrFund__messageBatchSize', + ClrFundMessageTreeDepth = 'clrFund__messageTreeDepth', + ClrFundNativeToken = 'clrFund__nativeToken', + ClrFundOwner = 'clrFund__owner', + ClrFundQvtVerifier = 'clrFund__qvtVerifier', + ClrFundRecipientRegistryAddress = 'clrFund__recipientRegistryAddress', + ClrFundSignUpDuration = 'clrFund__signUpDuration', + ClrFundStateTreeDepth = 'clrFund__stateTreeDepth', + ClrFundTallyBatchSize = 'clrFund__tallyBatchSize', + ClrFundVoteOptionTreeDepth = 'clrFund__voteOptionTreeDepth', + ClrFundVotingDuration = 'clrFund__votingDuration', Contributions = 'contributions', ContributorCount = 'contributorCount', ContributorRegistry = 'contributorRegistry', @@ -1521,36 +1618,16 @@ export enum FundingRound_OrderBy { ContributorRegistryOwner = 'contributorRegistry__owner', Contributors = 'contributors', Coordinator = 'coordinator', + CoordinatorPubKeyX = 'coordinatorPubKeyX', + CoordinatorPubKeyY = 'coordinatorPubKeyY', CreatedAt = 'createdAt', - FundingRoundFactory = 'fundingRoundFactory', - FundingRoundFactoryBatchUstVerifier = 'fundingRoundFactory__batchUstVerifier', - FundingRoundFactoryContributorRegistryAddress = 'fundingRoundFactory__contributorRegistryAddress', - FundingRoundFactoryCoordinator = 'fundingRoundFactory__coordinator', - FundingRoundFactoryCoordinatorPubKey = 'fundingRoundFactory__coordinatorPubKey', - FundingRoundFactoryCreatedAt = 'fundingRoundFactory__createdAt', - FundingRoundFactoryId = 'fundingRoundFactory__id', - FundingRoundFactoryLastUpdatedAt = 'fundingRoundFactory__lastUpdatedAt', - FundingRoundFactoryMaciFactory = 'fundingRoundFactory__maciFactory', - FundingRoundFactoryMaxMessages = 'fundingRoundFactory__maxMessages', - FundingRoundFactoryMaxUsers = 'fundingRoundFactory__maxUsers', - FundingRoundFactoryMaxVoteOptions = 'fundingRoundFactory__maxVoteOptions', - FundingRoundFactoryMessageBatchSize = 'fundingRoundFactory__messageBatchSize', - FundingRoundFactoryMessageTreeDepth = 'fundingRoundFactory__messageTreeDepth', - FundingRoundFactoryNativeToken = 'fundingRoundFactory__nativeToken', - FundingRoundFactoryOwner = 'fundingRoundFactory__owner', - FundingRoundFactoryQvtVerifier = 'fundingRoundFactory__qvtVerifier', - FundingRoundFactoryRecipientRegistryAddress = 'fundingRoundFactory__recipientRegistryAddress', - FundingRoundFactorySignUpDuration = 'fundingRoundFactory__signUpDuration', - FundingRoundFactoryStateTreeDepth = 'fundingRoundFactory__stateTreeDepth', - FundingRoundFactoryTallyBatchSize = 'fundingRoundFactory__tallyBatchSize', - FundingRoundFactoryVoteOptionTreeDepth = 'fundingRoundFactory__voteOptionTreeDepth', - FundingRoundFactoryVotingDuration = 'fundingRoundFactory__votingDuration', Id = 'id', IsCancelled = 'isCancelled', IsFinalized = 'isFinalized', LastUpdatedAt = 'lastUpdatedAt', Maci = 'maci', MatchingPoolSize = 'matchingPoolSize', + MessageTreeDepth = 'messageTreeDepth', Messages = 'messages', NativeToken = 'nativeToken', NativeTokenInfo = 'nativeTokenInfo', @@ -1560,6 +1637,7 @@ export enum FundingRound_OrderBy { NativeTokenInfoLastUpdatedAt = 'nativeTokenInfo__lastUpdatedAt', NativeTokenInfoSymbol = 'nativeTokenInfo__symbol', NativeTokenInfoTokenAddress = 'nativeTokenInfo__tokenAddress', + PollAddress = 'pollAddress', RecipientCount = 'recipientCount', RecipientRegistry = 'recipientRegistry', RecipientRegistryAddress = 'recipientRegistryAddress', @@ -1574,10 +1652,12 @@ export enum FundingRound_OrderBy { Recipients = 'recipients', SignUpDeadline = 'signUpDeadline', StartTime = 'startTime', + StateTreeDepth = 'stateTreeDepth', TallyHash = 'tallyHash', TotalSpent = 'totalSpent', TotalVotes = 'totalVotes', VoiceCreditFactor = 'voiceCreditFactor', + VoteOptionTreeDepth = 'voteOptionTreeDepth', Votes = 'votes', VotingDeadline = 'votingDeadline' } @@ -1588,7 +1668,7 @@ export type Message = { data: Maybe>; fundingRound: Maybe; id: Scalars['ID']; - iv: Scalars['BigInt']; + msgType: Scalars['BigInt']; publicKey: Maybe; submittedBy: Maybe; timestamp: Maybe; @@ -1642,14 +1722,14 @@ export type Message_Filter = { id_lte: InputMaybe; id_not: InputMaybe; id_not_in: InputMaybe>; - iv: InputMaybe; - iv_gt: InputMaybe; - iv_gte: InputMaybe; - iv_in: InputMaybe>; - iv_lt: InputMaybe; - iv_lte: InputMaybe; - iv_not: InputMaybe; - iv_not_in: InputMaybe>; + msgType: InputMaybe; + msgType_gt: InputMaybe; + msgType_gte: InputMaybe; + msgType_in: InputMaybe>; + msgType_lt: InputMaybe; + msgType_lte: InputMaybe; + msgType_not: InputMaybe; + msgType_not_in: InputMaybe>; or: InputMaybe>>; publicKey: InputMaybe; publicKey_: InputMaybe; @@ -1719,6 +1799,8 @@ export enum Message_OrderBy { FundingRoundContributorCount = 'fundingRound__contributorCount', FundingRoundContributorRegistryAddress = 'fundingRound__contributorRegistryAddress', FundingRoundCoordinator = 'fundingRound__coordinator', + FundingRoundCoordinatorPubKeyX = 'fundingRound__coordinatorPubKeyX', + FundingRoundCoordinatorPubKeyY = 'fundingRound__coordinatorPubKeyY', FundingRoundCreatedAt = 'fundingRound__createdAt', FundingRoundId = 'fundingRound__id', FundingRoundIsCancelled = 'fundingRound__isCancelled', @@ -1726,18 +1808,22 @@ export enum Message_OrderBy { FundingRoundLastUpdatedAt = 'fundingRound__lastUpdatedAt', FundingRoundMaci = 'fundingRound__maci', FundingRoundMatchingPoolSize = 'fundingRound__matchingPoolSize', + FundingRoundMessageTreeDepth = 'fundingRound__messageTreeDepth', FundingRoundNativeToken = 'fundingRound__nativeToken', + FundingRoundPollAddress = 'fundingRound__pollAddress', FundingRoundRecipientCount = 'fundingRound__recipientCount', FundingRoundRecipientRegistryAddress = 'fundingRound__recipientRegistryAddress', FundingRoundSignUpDeadline = 'fundingRound__signUpDeadline', FundingRoundStartTime = 'fundingRound__startTime', + FundingRoundStateTreeDepth = 'fundingRound__stateTreeDepth', FundingRoundTallyHash = 'fundingRound__tallyHash', FundingRoundTotalSpent = 'fundingRound__totalSpent', FundingRoundTotalVotes = 'fundingRound__totalVotes', FundingRoundVoiceCreditFactor = 'fundingRound__voiceCreditFactor', + FundingRoundVoteOptionTreeDepth = 'fundingRound__voteOptionTreeDepth', FundingRoundVotingDeadline = 'fundingRound__votingDeadline', Id = 'id', - Iv = 'iv', + MsgType = 'msgType', PublicKey = 'publicKey', PublicKeyId = 'publicKey__id', PublicKeyStateIndex = 'publicKey__stateIndex', @@ -1849,6 +1935,8 @@ export enum PublicKey_OrderBy { FundingRoundContributorCount = 'fundingRound__contributorCount', FundingRoundContributorRegistryAddress = 'fundingRound__contributorRegistryAddress', FundingRoundCoordinator = 'fundingRound__coordinator', + FundingRoundCoordinatorPubKeyX = 'fundingRound__coordinatorPubKeyX', + FundingRoundCoordinatorPubKeyY = 'fundingRound__coordinatorPubKeyY', FundingRoundCreatedAt = 'fundingRound__createdAt', FundingRoundId = 'fundingRound__id', FundingRoundIsCancelled = 'fundingRound__isCancelled', @@ -1856,15 +1944,19 @@ export enum PublicKey_OrderBy { FundingRoundLastUpdatedAt = 'fundingRound__lastUpdatedAt', FundingRoundMaci = 'fundingRound__maci', FundingRoundMatchingPoolSize = 'fundingRound__matchingPoolSize', + FundingRoundMessageTreeDepth = 'fundingRound__messageTreeDepth', FundingRoundNativeToken = 'fundingRound__nativeToken', + FundingRoundPollAddress = 'fundingRound__pollAddress', FundingRoundRecipientCount = 'fundingRound__recipientCount', FundingRoundRecipientRegistryAddress = 'fundingRound__recipientRegistryAddress', FundingRoundSignUpDeadline = 'fundingRound__signUpDeadline', FundingRoundStartTime = 'fundingRound__startTime', + FundingRoundStateTreeDepth = 'fundingRound__stateTreeDepth', FundingRoundTallyHash = 'fundingRound__tallyHash', FundingRoundTotalSpent = 'fundingRound__totalSpent', FundingRoundTotalVotes = 'fundingRound__totalVotes', FundingRoundVoiceCreditFactor = 'fundingRound__voiceCreditFactor', + FundingRoundVoteOptionTreeDepth = 'fundingRound__voteOptionTreeDepth', FundingRoundVotingDeadline = 'fundingRound__votingDeadline', Id = 'id', Messages = 'messages', @@ -1878,6 +1970,8 @@ export type Query = { __typename?: 'Query'; /** Access to subgraph metadata */ _meta: Maybe<_Meta_>; + clrFund: Maybe; + clrFunds: Array; contribution: Maybe; contributions: Array; contributor: Maybe; @@ -1889,8 +1983,6 @@ export type Query = { donation: Maybe; donations: Array; fundingRound: Maybe; - fundingRoundFactories: Array; - fundingRoundFactory: Maybe; fundingRounds: Array; message: Maybe; messages: Array; @@ -1912,6 +2004,24 @@ export type Query_MetaArgs = { }; +export type QueryClrFundArgs = { + block: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryClrFundsArgs = { + block: InputMaybe; + first?: InputMaybe; + orderBy: InputMaybe; + orderDirection: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where: InputMaybe; +}; + + export type QueryContributionArgs = { block: InputMaybe; id: Scalars['ID']; @@ -2009,24 +2119,6 @@ export type QueryFundingRoundArgs = { }; -export type QueryFundingRoundFactoriesArgs = { - block: InputMaybe; - first?: InputMaybe; - orderBy: InputMaybe; - orderDirection: InputMaybe; - skip?: InputMaybe; - subgraphError?: _SubgraphErrorPolicy_; - where: InputMaybe; -}; - - -export type QueryFundingRoundFactoryArgs = { - block: InputMaybe; - id: Scalars['ID']; - subgraphError?: _SubgraphErrorPolicy_; -}; - - export type QueryFundingRoundsArgs = { block: InputMaybe; first?: InputMaybe; @@ -2179,9 +2271,9 @@ export type RecipientRegistry = { __typename?: 'RecipientRegistry'; baseDeposit: Maybe; challengePeriodDuration: Maybe; + clrFund: Maybe; controller: Maybe; createdAt: Maybe; - fundingRoundFactory: Maybe; id: Scalars['ID']; lastUpdatedAt: Maybe; maxRecipients: Maybe; @@ -2218,6 +2310,27 @@ export type RecipientRegistry_Filter = { challengePeriodDuration_lte: InputMaybe; challengePeriodDuration_not: InputMaybe; challengePeriodDuration_not_in: InputMaybe>; + clrFund: InputMaybe; + clrFund_: InputMaybe; + clrFund_contains: InputMaybe; + clrFund_contains_nocase: InputMaybe; + clrFund_ends_with: InputMaybe; + clrFund_ends_with_nocase: InputMaybe; + clrFund_gt: InputMaybe; + clrFund_gte: InputMaybe; + clrFund_in: InputMaybe>; + clrFund_lt: InputMaybe; + clrFund_lte: InputMaybe; + clrFund_not: InputMaybe; + clrFund_not_contains: InputMaybe; + clrFund_not_contains_nocase: InputMaybe; + clrFund_not_ends_with: InputMaybe; + clrFund_not_ends_with_nocase: InputMaybe; + clrFund_not_in: InputMaybe>; + clrFund_not_starts_with: InputMaybe; + clrFund_not_starts_with_nocase: InputMaybe; + clrFund_starts_with: InputMaybe; + clrFund_starts_with_nocase: InputMaybe; controller: InputMaybe; controller_contains: InputMaybe; controller_gt: InputMaybe; @@ -2248,27 +2361,6 @@ export type RecipientRegistry_Filter = { createdAt_not_starts_with_nocase: InputMaybe; createdAt_starts_with: InputMaybe; createdAt_starts_with_nocase: InputMaybe; - fundingRoundFactory: InputMaybe; - fundingRoundFactory_: InputMaybe; - fundingRoundFactory_contains: InputMaybe; - fundingRoundFactory_contains_nocase: InputMaybe; - fundingRoundFactory_ends_with: InputMaybe; - fundingRoundFactory_ends_with_nocase: InputMaybe; - fundingRoundFactory_gt: InputMaybe; - fundingRoundFactory_gte: InputMaybe; - fundingRoundFactory_in: InputMaybe>; - fundingRoundFactory_lt: InputMaybe; - fundingRoundFactory_lte: InputMaybe; - fundingRoundFactory_not: InputMaybe; - fundingRoundFactory_not_contains: InputMaybe; - fundingRoundFactory_not_contains_nocase: InputMaybe; - fundingRoundFactory_not_ends_with: InputMaybe; - fundingRoundFactory_not_ends_with_nocase: InputMaybe; - fundingRoundFactory_not_in: InputMaybe>; - fundingRoundFactory_not_starts_with: InputMaybe; - fundingRoundFactory_not_starts_with_nocase: InputMaybe; - fundingRoundFactory_starts_with: InputMaybe; - fundingRoundFactory_starts_with_nocase: InputMaybe; id: InputMaybe; id_gt: InputMaybe; id_gte: InputMaybe; @@ -2322,31 +2414,31 @@ export type RecipientRegistry_Filter = { export enum RecipientRegistry_OrderBy { BaseDeposit = 'baseDeposit', ChallengePeriodDuration = 'challengePeriodDuration', + ClrFund = 'clrFund', + ClrFundBatchUstVerifier = 'clrFund__batchUstVerifier', + ClrFundContributorRegistryAddress = 'clrFund__contributorRegistryAddress', + ClrFundCoordinator = 'clrFund__coordinator', + ClrFundCoordinatorPubKey = 'clrFund__coordinatorPubKey', + ClrFundCreatedAt = 'clrFund__createdAt', + ClrFundId = 'clrFund__id', + ClrFundLastUpdatedAt = 'clrFund__lastUpdatedAt', + ClrFundMaciFactory = 'clrFund__maciFactory', + ClrFundMaxMessages = 'clrFund__maxMessages', + ClrFundMaxUsers = 'clrFund__maxUsers', + ClrFundMaxVoteOptions = 'clrFund__maxVoteOptions', + ClrFundMessageBatchSize = 'clrFund__messageBatchSize', + ClrFundMessageTreeDepth = 'clrFund__messageTreeDepth', + ClrFundNativeToken = 'clrFund__nativeToken', + ClrFundOwner = 'clrFund__owner', + ClrFundQvtVerifier = 'clrFund__qvtVerifier', + ClrFundRecipientRegistryAddress = 'clrFund__recipientRegistryAddress', + ClrFundSignUpDuration = 'clrFund__signUpDuration', + ClrFundStateTreeDepth = 'clrFund__stateTreeDepth', + ClrFundTallyBatchSize = 'clrFund__tallyBatchSize', + ClrFundVoteOptionTreeDepth = 'clrFund__voteOptionTreeDepth', + ClrFundVotingDuration = 'clrFund__votingDuration', Controller = 'controller', CreatedAt = 'createdAt', - FundingRoundFactory = 'fundingRoundFactory', - FundingRoundFactoryBatchUstVerifier = 'fundingRoundFactory__batchUstVerifier', - FundingRoundFactoryContributorRegistryAddress = 'fundingRoundFactory__contributorRegistryAddress', - FundingRoundFactoryCoordinator = 'fundingRoundFactory__coordinator', - FundingRoundFactoryCoordinatorPubKey = 'fundingRoundFactory__coordinatorPubKey', - FundingRoundFactoryCreatedAt = 'fundingRoundFactory__createdAt', - FundingRoundFactoryId = 'fundingRoundFactory__id', - FundingRoundFactoryLastUpdatedAt = 'fundingRoundFactory__lastUpdatedAt', - FundingRoundFactoryMaciFactory = 'fundingRoundFactory__maciFactory', - FundingRoundFactoryMaxMessages = 'fundingRoundFactory__maxMessages', - FundingRoundFactoryMaxUsers = 'fundingRoundFactory__maxUsers', - FundingRoundFactoryMaxVoteOptions = 'fundingRoundFactory__maxVoteOptions', - FundingRoundFactoryMessageBatchSize = 'fundingRoundFactory__messageBatchSize', - FundingRoundFactoryMessageTreeDepth = 'fundingRoundFactory__messageTreeDepth', - FundingRoundFactoryNativeToken = 'fundingRoundFactory__nativeToken', - FundingRoundFactoryOwner = 'fundingRoundFactory__owner', - FundingRoundFactoryQvtVerifier = 'fundingRoundFactory__qvtVerifier', - FundingRoundFactoryRecipientRegistryAddress = 'fundingRoundFactory__recipientRegistryAddress', - FundingRoundFactorySignUpDuration = 'fundingRoundFactory__signUpDuration', - FundingRoundFactoryStateTreeDepth = 'fundingRoundFactory__stateTreeDepth', - FundingRoundFactoryTallyBatchSize = 'fundingRoundFactory__tallyBatchSize', - FundingRoundFactoryVoteOptionTreeDepth = 'fundingRoundFactory__voteOptionTreeDepth', - FundingRoundFactoryVotingDuration = 'fundingRoundFactory__votingDuration', Id = 'id', LastUpdatedAt = 'lastUpdatedAt', MaxRecipients = 'maxRecipients', @@ -2611,6 +2703,8 @@ export type Subscription = { __typename?: 'Subscription'; /** Access to subgraph metadata */ _meta: Maybe<_Meta_>; + clrFund: Maybe; + clrFunds: Array; contribution: Maybe; contributions: Array; contributor: Maybe; @@ -2622,8 +2716,6 @@ export type Subscription = { donation: Maybe; donations: Array; fundingRound: Maybe; - fundingRoundFactories: Array; - fundingRoundFactory: Maybe; fundingRounds: Array; message: Maybe; messages: Array; @@ -2645,6 +2737,24 @@ export type Subscription_MetaArgs = { }; +export type SubscriptionClrFundArgs = { + block: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionClrFundsArgs = { + block: InputMaybe; + first?: InputMaybe; + orderBy: InputMaybe; + orderDirection: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where: InputMaybe; +}; + + export type SubscriptionContributionArgs = { block: InputMaybe; id: Scalars['ID']; @@ -2742,24 +2852,6 @@ export type SubscriptionFundingRoundArgs = { }; -export type SubscriptionFundingRoundFactoriesArgs = { - block: InputMaybe; - first?: InputMaybe; - orderBy: InputMaybe; - orderDirection: InputMaybe; - skip?: InputMaybe; - subgraphError?: _SubgraphErrorPolicy_; - where: InputMaybe; -}; - - -export type SubscriptionFundingRoundFactoryArgs = { - block: InputMaybe; - id: Scalars['ID']; - subgraphError?: _SubgraphErrorPolicy_; -}; - - export type SubscriptionFundingRoundsArgs = { block: InputMaybe; first?: InputMaybe; @@ -3081,6 +3173,8 @@ export enum Vote_OrderBy { FundingRoundContributorCount = 'fundingRound__contributorCount', FundingRoundContributorRegistryAddress = 'fundingRound__contributorRegistryAddress', FundingRoundCoordinator = 'fundingRound__coordinator', + FundingRoundCoordinatorPubKeyX = 'fundingRound__coordinatorPubKeyX', + FundingRoundCoordinatorPubKeyY = 'fundingRound__coordinatorPubKeyY', FundingRoundCreatedAt = 'fundingRound__createdAt', FundingRoundId = 'fundingRound__id', FundingRoundIsCancelled = 'fundingRound__isCancelled', @@ -3088,15 +3182,19 @@ export enum Vote_OrderBy { FundingRoundLastUpdatedAt = 'fundingRound__lastUpdatedAt', FundingRoundMaci = 'fundingRound__maci', FundingRoundMatchingPoolSize = 'fundingRound__matchingPoolSize', + FundingRoundMessageTreeDepth = 'fundingRound__messageTreeDepth', FundingRoundNativeToken = 'fundingRound__nativeToken', + FundingRoundPollAddress = 'fundingRound__pollAddress', FundingRoundRecipientCount = 'fundingRound__recipientCount', FundingRoundRecipientRegistryAddress = 'fundingRound__recipientRegistryAddress', FundingRoundSignUpDeadline = 'fundingRound__signUpDeadline', FundingRoundStartTime = 'fundingRound__startTime', + FundingRoundStateTreeDepth = 'fundingRound__stateTreeDepth', FundingRoundTallyHash = 'fundingRound__tallyHash', FundingRoundTotalSpent = 'fundingRound__totalSpent', FundingRoundTotalVotes = 'fundingRound__totalVotes', FundingRoundVoiceCreditFactor = 'fundingRound__voiceCreditFactor', + FundingRoundVoteOptionTreeDepth = 'fundingRound__voteOptionTreeDepth', FundingRoundVotingDeadline = 'fundingRound__votingDeadline', Id = 'id', Secret = 'secret', @@ -3137,6 +3235,13 @@ export enum _SubgraphErrorPolicy_ { Deny = 'deny' } +export type GetClrFundInfoQueryVariables = Exact<{ + clrFundAddress: Scalars['ID']; +}>; + + +export type GetClrFundInfoQuery = { __typename?: 'Query', clrFund: { __typename?: 'ClrFund', contributorRegistryAddress: any | null, recipientRegistryAddress: any | null, nativeTokenInfo: { __typename?: 'Token', tokenAddress: any | null, symbol: string | null, decimals: any | null } | null } | null }; + export type GetContributionsAmountQueryVariables = Exact<{ fundingRoundAddress: Scalars['ID']; contributorAddress: Scalars['ID']; @@ -3160,7 +3265,7 @@ export type GetContributorMessagesQueryVariables = Exact<{ }>; -export type GetContributorMessagesQuery = { __typename?: 'Query', messages: Array<{ __typename?: 'Message', id: string, data: Array | null, iv: any, timestamp: string | null, blockNumber: any, transactionIndex: any }> }; +export type GetContributorMessagesQuery = { __typename?: 'Query', messages: Array<{ __typename?: 'Message', id: string, data: Array | null, msgType: any, timestamp: string | null, blockNumber: any, transactionIndex: any }> }; export type GetContributorVotesQueryVariables = Exact<{ fundingRoundAddress: Scalars['ID']; @@ -3171,18 +3276,11 @@ export type GetContributorVotesQueryVariables = Exact<{ export type GetContributorVotesQuery = { __typename?: 'Query', fundingRound: { __typename?: 'FundingRound', id: string, contributors: Array<{ __typename?: 'Contributor', votes: Array<{ __typename?: 'Vote', id: string }> | null }> | null } | null }; export type GetCurrentRoundQueryVariables = Exact<{ - fundingRoundFactoryAddress: Scalars['ID']; -}>; - - -export type GetCurrentRoundQuery = { __typename?: 'Query', fundingRoundFactory: { __typename?: 'FundingRoundFactory', currentRound: { __typename?: 'FundingRound', id: string } | null } | null }; - -export type GetFactoryInfoQueryVariables = Exact<{ - factoryAddress: Scalars['ID']; + clrFundAddress: Scalars['ID']; }>; -export type GetFactoryInfoQuery = { __typename?: 'Query', fundingRoundFactory: { __typename?: 'FundingRoundFactory', contributorRegistryAddress: any | null, recipientRegistryAddress: any | null, nativeTokenInfo: { __typename?: 'Token', tokenAddress: any | null, symbol: string | null, decimals: any | null } | null } | null }; +export type GetCurrentRoundQuery = { __typename?: 'Query', clrFund: { __typename?: 'ClrFund', currentRound: { __typename?: 'FundingRound', id: string } | null } | null }; export type GetLatestBlockNumberQueryVariables = Exact<{ [key: string]: never; }>; @@ -3229,11 +3327,11 @@ export type GetRecipientDonationsQueryVariables = Exact<{ export type GetRecipientDonationsQuery = { __typename?: 'Query', donations: Array<{ __typename?: 'Donation', id: string }> }; export type GetRecipientRegistryInfoQueryVariables = Exact<{ - factoryAddress: Scalars['ID']; + clrFundAddress: Scalars['ID']; }>; -export type GetRecipientRegistryInfoQuery = { __typename?: 'Query', fundingRoundFactory: { __typename?: 'FundingRoundFactory', recipientRegistry: { __typename?: 'RecipientRegistry', id: string, owner: any | null, baseDeposit: any | null, challengePeriodDuration: any | null } | null, currentRound: { __typename?: 'FundingRound', id: string, recipientRegistry: { __typename?: 'RecipientRegistry', id: string, owner: any | null, baseDeposit: any | null, challengePeriodDuration: any | null } | null } | null } | null }; +export type GetRecipientRegistryInfoQuery = { __typename?: 'Query', clrFund: { __typename?: 'ClrFund', recipientRegistry: { __typename?: 'RecipientRegistry', id: string, owner: any | null, baseDeposit: any | null, challengePeriodDuration: any | null } | null, currentRound: { __typename?: 'FundingRound', id: string, recipientRegistry: { __typename?: 'RecipientRegistry', id: string, owner: any | null, baseDeposit: any | null, challengePeriodDuration: any | null } | null } | null } | null }; export type GetRecipientsQueryVariables = Exact<{ registryAddress: Scalars['String']; @@ -3247,7 +3345,7 @@ export type GetRoundInfoQueryVariables = Exact<{ }>; -export type GetRoundInfoQuery = { __typename?: 'Query', fundingRound: { __typename?: 'FundingRound', id: string, maci: any | null, recipientRegistryAddress: any | null, contributorRegistryAddress: any | null, voiceCreditFactor: any | null, isFinalized: boolean | null, isCancelled: boolean | null, contributorCount: any, totalSpent: any | null, matchingPoolSize: any | null, nativeTokenInfo: { __typename?: 'Token', tokenAddress: any | null, symbol: string | null, decimals: any | null } | null } | null }; +export type GetRoundInfoQuery = { __typename?: 'Query', fundingRound: { __typename?: 'FundingRound', id: string, maci: any | null, pollAddress: any | null, recipientRegistryAddress: any | null, contributorRegistryAddress: any | null, voiceCreditFactor: any | null, isFinalized: boolean | null, isCancelled: boolean | null, contributorCount: any, totalSpent: any | null, matchingPoolSize: any | null, startTime: any | null, signUpDeadline: any | null, votingDeadline: any | null, coordinatorPubKeyX: any | null, coordinatorPubKeyY: any | null, stateTreeDepth: number | null, messageTreeDepth: number | null, voteOptionTreeDepth: number | null, nativeTokenInfo: { __typename?: 'Token', tokenAddress: any | null, symbol: string | null, decimals: any | null } | null } | null }; export type GetRoundsQueryVariables = Exact<{ [key: string]: never; }>; @@ -3269,6 +3367,19 @@ export type GetTotalContributedQueryVariables = Exact<{ export type GetTotalContributedQuery = { __typename?: 'Query', fundingRound: { __typename?: 'FundingRound', contributorCount: any } | null }; +export const GetClrFundInfoDocument = gql` + query GetClrFundInfo($clrFundAddress: ID!) { + clrFund(id: $clrFundAddress) { + nativeTokenInfo { + tokenAddress + symbol + decimals + } + contributorRegistryAddress + recipientRegistryAddress + } +} + `; export const GetContributionsAmountDocument = gql` query GetContributionsAmount($fundingRoundAddress: ID!, $contributorAddress: ID!) { contributions( @@ -3296,7 +3407,7 @@ export const GetContributorMessagesDocument = gql` ) { id data - iv + msgType timestamp blockNumber transactionIndex @@ -3316,27 +3427,14 @@ export const GetContributorVotesDocument = gql` } `; export const GetCurrentRoundDocument = gql` - query GetCurrentRound($fundingRoundFactoryAddress: ID!) { - fundingRoundFactory(id: $fundingRoundFactoryAddress) { + query GetCurrentRound($clrFundAddress: ID!) { + clrFund(id: $clrFundAddress) { currentRound { id } } } `; -export const GetFactoryInfoDocument = gql` - query GetFactoryInfo($factoryAddress: ID!) { - fundingRoundFactory(id: $factoryAddress) { - nativeTokenInfo { - tokenAddress - symbol - decimals - } - contributorRegistryAddress - recipientRegistryAddress - } -} - `; export const GetLatestBlockNumberDocument = gql` query GetLatestBlockNumber { _meta { @@ -3408,8 +3506,8 @@ export const GetRecipientDonationsDocument = gql` } `; export const GetRecipientRegistryInfoDocument = gql` - query GetRecipientRegistryInfo($factoryAddress: ID!) { - fundingRoundFactory(id: $factoryAddress) { + query GetRecipientRegistryInfo($clrFundAddress: ID!) { + clrFund(id: $clrFundAddress) { recipientRegistry { id owner @@ -3450,6 +3548,7 @@ export const GetRoundInfoDocument = gql` fundingRound(id: $fundingRoundAddress) { id maci + pollAddress nativeTokenInfo { tokenAddress symbol @@ -3463,6 +3562,14 @@ export const GetRoundInfoDocument = gql` contributorCount totalSpent matchingPoolSize + startTime + signUpDeadline + votingDeadline + coordinatorPubKeyX + coordinatorPubKeyY + stateTreeDepth + messageTreeDepth + voteOptionTreeDepth } } `; @@ -3503,6 +3610,9 @@ const defaultWrapper: SdkFunctionWrapper = (action, _operationName, _operationTy export function getSdk(client: GraphQLClient, withWrapper: SdkFunctionWrapper = defaultWrapper) { return { + GetClrFundInfo(variables: GetClrFundInfoQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { + return withWrapper((wrappedRequestHeaders) => client.request(GetClrFundInfoDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'GetClrFundInfo', 'query'); + }, GetContributionsAmount(variables: GetContributionsAmountQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { return withWrapper((wrappedRequestHeaders) => client.request(GetContributionsAmountDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'GetContributionsAmount', 'query'); }, @@ -3518,9 +3628,6 @@ export function getSdk(client: GraphQLClient, withWrapper: SdkFunctionWrapper = GetCurrentRound(variables: GetCurrentRoundQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { return withWrapper((wrappedRequestHeaders) => client.request(GetCurrentRoundDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'GetCurrentRound', 'query'); }, - GetFactoryInfo(variables: GetFactoryInfoQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { - return withWrapper((wrappedRequestHeaders) => client.request(GetFactoryInfoDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'GetFactoryInfo', 'query'); - }, GetLatestBlockNumber(variables?: GetLatestBlockNumberQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise { return withWrapper((wrappedRequestHeaders) => client.request(GetLatestBlockNumberDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'GetLatestBlockNumber', 'query'); }, diff --git a/vue-app/src/graphql/queries/GetFactoryInfo.graphql b/vue-app/src/graphql/queries/GetClrFundInfo.graphql similarity index 61% rename from vue-app/src/graphql/queries/GetFactoryInfo.graphql rename to vue-app/src/graphql/queries/GetClrFundInfo.graphql index 47459a56a..d59d3049a 100644 --- a/vue-app/src/graphql/queries/GetFactoryInfo.graphql +++ b/vue-app/src/graphql/queries/GetClrFundInfo.graphql @@ -1,5 +1,5 @@ -query GetFactoryInfo($factoryAddress: ID!) { - fundingRoundFactory(id: $factoryAddress) { +query GetClrFundInfo($clrFundAddress: ID!) { + clrFund(id: $clrFundAddress) { nativeTokenInfo { tokenAddress symbol diff --git a/vue-app/src/graphql/queries/GetContributorMessages.graphql b/vue-app/src/graphql/queries/GetContributorMessages.graphql index c50d866db..d163b923b 100644 --- a/vue-app/src/graphql/queries/GetContributorMessages.graphql +++ b/vue-app/src/graphql/queries/GetContributorMessages.graphql @@ -14,7 +14,7 @@ query GetContributorMessages( { id data - iv + msgType timestamp blockNumber transactionIndex diff --git a/vue-app/src/graphql/queries/GetCurrentRound.graphql b/vue-app/src/graphql/queries/GetCurrentRound.graphql index 2d25e39bd..1a5820164 100644 --- a/vue-app/src/graphql/queries/GetCurrentRound.graphql +++ b/vue-app/src/graphql/queries/GetCurrentRound.graphql @@ -1,5 +1,5 @@ -query GetCurrentRound($fundingRoundFactoryAddress: ID!) { - fundingRoundFactory(id: $fundingRoundFactoryAddress) { +query GetCurrentRound($clrFundAddress: ID!) { + clrFund(id: $clrFundAddress) { currentRound { id } diff --git a/vue-app/src/graphql/queries/GetRecipientRegistryInfo.graphql b/vue-app/src/graphql/queries/GetRecipientRegistryInfo.graphql index 6d236fed9..bb2b34713 100644 --- a/vue-app/src/graphql/queries/GetRecipientRegistryInfo.graphql +++ b/vue-app/src/graphql/queries/GetRecipientRegistryInfo.graphql @@ -1,5 +1,5 @@ -query GetRecipientRegistryInfo($factoryAddress: ID!) { - fundingRoundFactory(id: $factoryAddress) { +query GetRecipientRegistryInfo($clrFundAddress: ID!) { + clrFund(id: $clrFundAddress) { recipientRegistry { id owner diff --git a/vue-app/src/graphql/queries/GetRoundInfo.graphql b/vue-app/src/graphql/queries/GetRoundInfo.graphql index cb8ec910d..8dbf7db9d 100644 --- a/vue-app/src/graphql/queries/GetRoundInfo.graphql +++ b/vue-app/src/graphql/queries/GetRoundInfo.graphql @@ -2,6 +2,7 @@ query GetRoundInfo($fundingRoundAddress: ID!) { fundingRound(id: $fundingRoundAddress) { id maci + pollAddress nativeTokenInfo { tokenAddress symbol @@ -15,5 +16,13 @@ query GetRoundInfo($fundingRoundAddress: ID!) { contributorCount totalSpent matchingPoolSize + startTime + signUpDeadline + votingDeadline + coordinatorPubKeyX + coordinatorPubKeyY + stateTreeDepth + messageTreeDepth + voteOptionTreeDepth } } diff --git a/vue-app/src/router/index.ts b/vue-app/src/router/index.ts index 6a68c45b9..e6e415a07 100644 --- a/vue-app/src/router/index.ts +++ b/vue-app/src/router/index.ts @@ -30,7 +30,7 @@ const TransactionSuccess = () => import('@/views/TransactionSuccess.vue') const Leaderboard = () => import('@/views/Leaderboard.vue') const LeaderboardProject = () => import('@/views/LeaderboardProject.vue') -// TODO: create a new route that takes funding factory address as a param +// TODO: create a new route that takes funding ClrFund address as a param const routes: Array = [ { path: '/', diff --git a/vue-app/src/stores/app.ts b/vue-app/src/stores/app.ts index eb5513ad1..4ed0c7752 100644 --- a/vue-app/src/stores/app.ts +++ b/vue-app/src/stores/app.ts @@ -13,7 +13,7 @@ import { getCommittedCart } from '@/api/cart' import { operator, chain, ThemeMode, recipientRegistryType, recipientJoinDeadlineConfig } from '@/api/core' import { type RoundInfo, RoundStatus, getRoundInfo } from '@/api/round' import { getTally, type Tally } from '@/api/tally' -import { type Factory, getFactoryInfo } from '@/api/factory' +import { type ClrFund, getClrFundInfo } from '@/api/clrFund' import { getMACIFactoryInfo, type MACIFactory } from '@/api/maci-factory' import { isSameAddress } from '@/utils/accounts' import { storage } from '@/api/storage' @@ -39,7 +39,7 @@ export type AppState = { showCartPanel: boolean tally: Tally | null theme: string | null - factory: Factory | null + clrFund: ClrFund | null maciFactory: MACIFactory | null showSimpleLeaderboard: boolean } @@ -59,7 +59,7 @@ export const useAppStore = defineStore('app', { showCartPanel: false, tally: null, theme: null, - factory: null, + clrFund: null, maciFactory: null, showSimpleLeaderboard: true, }), @@ -153,23 +153,23 @@ export const useAppStore = defineStore('app', { return operator }, userRegistryAddress: (state): string | undefined => { - const { currentRound, factory } = state + const { currentRound, clrFund } = state if (currentRound) { return currentRound.userRegistryAddress } - if (factory) { - return factory.userRegistryAddress + if (clrFund) { + return clrFund.userRegistryAddress } }, matchingPool: (state): BigNumber => { - const { currentRound, factory } = state + const { currentRound, clrFund } = state let matchingPool = BigNumber.from(0) - if (factory) { - matchingPool = factory.matchingPool + if (clrFund) { + matchingPool = clrFund.matchingPool } if (currentRound) { @@ -179,12 +179,12 @@ export const useAppStore = defineStore('app', { return matchingPool }, nativeTokenSymbol: (state): string => { - const { currentRound, factory } = state + const { currentRound, clrFund } = state let nativeTokenSymbol = '' - if (factory) { - nativeTokenSymbol = factory.nativeTokenSymbol + if (clrFund) { + nativeTokenSymbol = clrFund.nativeTokenSymbol } if (currentRound) { @@ -194,12 +194,12 @@ export const useAppStore = defineStore('app', { return nativeTokenSymbol }, nativeTokenDecimals: (state): number | undefined => { - const { currentRound, factory } = state + const { currentRound, clrFund } = state let nativeTokenDecimals - if (factory) { - nativeTokenDecimals = factory.nativeTokenDecimals + if (clrFund) { + nativeTokenDecimals = clrFund.nativeTokenDecimals } if (currentRound) { @@ -209,12 +209,12 @@ export const useAppStore = defineStore('app', { return nativeTokenDecimals }, nativeTokenAddress: (state): string => { - const { currentRound, factory } = state + const { currentRound, clrFund } = state let nativeTokenAddress = '' - if (factory) { - nativeTokenAddress = factory.nativeTokenAddress + if (clrFund) { + nativeTokenAddress = clrFund.nativeTokenAddress } if (currentRound) { @@ -460,9 +460,9 @@ export const useAppStore = defineStore('app', { stateIndex, } }, - async loadFactoryInfo() { - const factory = await getFactoryInfo() - this.factory = factory + async loadClrFundInfo() { + const clrFund = await getClrFundInfo() + this.clrFund = clrFund }, async loadMACIFactoryInfo() { const factory = await getMACIFactoryInfo() diff --git a/vue-app/src/stores/recipient.ts b/vue-app/src/stores/recipient.ts index 271258412..0a8c85638 100644 --- a/vue-app/src/stores/recipient.ts +++ b/vue-app/src/stores/recipient.ts @@ -41,7 +41,7 @@ export const useRecipientStore = defineStore('recipient', { }, async loadRecipientRegistryInfo() { const appStore = useAppStore() - //TODO: update call to getRecipientRegistryAddress to take factory address as a parameter + //TODO: update call to getRecipientRegistryAddress to take ClrFund address as a parameter const recipientRegistryAddress = this.recipientRegistryAddress || (await getRecipientRegistryAddress(appStore.currentRoundAddress)) this.recipientRegistryAddress = recipientRegistryAddress diff --git a/vue-app/src/stores/user.ts b/vue-app/src/stores/user.ts index 655a18647..0a6d121b8 100644 --- a/vue-app/src/stores/user.ts +++ b/vue-app/src/stores/user.ts @@ -66,9 +66,9 @@ export const useUserStore = defineStore('user', { let isRegistered: boolean | undefined = undefined const walletAddress = this.currentUser.walletAddress - if (appStore.factory) { - nativeTokenAddress = appStore.factory.nativeTokenAddress - userRegistryAddress = appStore.factory.userRegistryAddress + if (appStore.clrFund) { + nativeTokenAddress = appStore.clrFund.nativeTokenAddress + userRegistryAddress = appStore.clrFund.userRegistryAddress } if (appStore.currentRound) { diff --git a/vue-app/src/views/Project.vue b/vue-app/src/views/Project.vue index a681aa2cb..08ce13444 100644 --- a/vue-app/src/views/Project.vue +++ b/vue-app/src/views/Project.vue @@ -55,7 +55,7 @@ onMounted(async () => { return } - //TODO: update to take factory address as a parameter, default to env. variable + //TODO: update to take ClrFund address as a parameter, default to env. variable const currentRoundAddress = appStore.currentRoundAddress || (await getCurrentRound()) roundAddress.value = (route.params.address as string) || currentRoundAddress || '' diff --git a/vue-app/src/views/ProjectList.vue b/vue-app/src/views/ProjectList.vue index 92d09477a..d6345fb3b 100644 --- a/vue-app/src/views/ProjectList.vue +++ b/vue-app/src/views/ProjectList.vue @@ -144,7 +144,7 @@ async function loadProjectRoundInfo(roundAddress: string): Promise Date: Fri, 1 Dec 2023 11:31:33 -0500 Subject: [PATCH 102/338] move cancel script from tasks to cli --- contracts/cli/cancelRound.ts | 36 ++++++++++++++++++++++++++++++++++ contracts/tasks/cancelRound.ts | 17 ---------------- 2 files changed, 36 insertions(+), 17 deletions(-) create mode 100644 contracts/cli/cancelRound.ts delete mode 100644 contracts/tasks/cancelRound.ts diff --git a/contracts/cli/cancelRound.ts b/contracts/cli/cancelRound.ts new file mode 100644 index 000000000..27e597501 --- /dev/null +++ b/contracts/cli/cancelRound.ts @@ -0,0 +1,36 @@ +/** + * Cancel the current round + * + * Sample usage: + * HARDHAT_NETWORK=localhost yarn ts-node cli/cancelRound.ts + */ +import { ethers, network } from 'hardhat' +import { program } from 'commander' + +program + .description('Cancel the current round') + .argument('clrfund', 'The ClrFund contract address') + .parse() + +async function main(args: any) { + const [deployer] = await ethers.getSigners() + console.log('deployer', deployer.address) + console.log('network', network.name) + + const clrfundContract = await ethers.getContractAt( + 'ClrFund', + args[0], + deployer + ) + + const cancelTx = await clrfundContract.cancelCurrentRound() + await cancelTx.wait() + console.log('Cancel transaction hash: ', cancelTx.hash) +} + +main(program.args) + .then(() => process.exit(0)) + .catch((error) => { + console.error(error) + process.exit(1) + }) diff --git a/contracts/tasks/cancelRound.ts b/contracts/tasks/cancelRound.ts deleted file mode 100644 index f1cb010d5..000000000 --- a/contracts/tasks/cancelRound.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { task } from 'hardhat/config' - -task('cancel-round', 'Cancel the current round') - .addParam('clrfund', 'The ClrFund contract address') - .setAction(async ({ clrfund }, { ethers }) => { - const [deployer] = await ethers.getSigners() - console.log('deployer', deployer.address) - const clrfundContract = await ethers.getContractAt( - 'ClrFund', - clrfund, - deployer - ) - - const cancelTx = await clrfundContract.cancelCurrentRound() - await cancelTx.wait() - console.log('Cancel transaction hash: ', cancelTx.hash) - }) From 53458852e5d20769595c4713bd616c7d3daa087d Mon Sep 17 00:00:00 2001 From: yuetloo Date: Fri, 1 Dec 2023 12:22:29 -0500 Subject: [PATCH 103/338] add pollId to roundInfo --- subgraph/abis/FundingRound.json | 13 +++++++++++++ subgraph/generated/ClrFund/FundingRound.ts | 15 +++++++++++++++ subgraph/generated/schema.ts | 17 +++++++++++++++++ .../templates/FundingRound/FundingRound.ts | 15 +++++++++++++++ .../generated/templates/MACI/FundingRound.ts | 15 +++++++++++++++ .../generated/templates/Poll/FundingRound.ts | 15 +++++++++++++++ subgraph/schema.graphql | 1 + subgraph/src/ClrFundMapping.ts | 6 +++++- vue-app/src/api/round.ts | 18 ++++++++++++------ vue-app/src/components/ContributionModal.vue | 3 ++- vue-app/src/graphql/API.ts | 19 ++++++++++++++++++- .../src/graphql/queries/GetRoundInfo.graphql | 1 + 12 files changed, 129 insertions(+), 9 deletions(-) diff --git a/subgraph/abis/FundingRound.json b/subgraph/abis/FundingRound.json index 5abae313a..7a482f795 100644 --- a/subgraph/abis/FundingRound.json +++ b/subgraph/abis/FundingRound.json @@ -466,6 +466,19 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "pollId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "totalSpent", diff --git a/subgraph/generated/ClrFund/FundingRound.ts b/subgraph/generated/ClrFund/FundingRound.ts index bde4327d0..e86a75ef4 100644 --- a/subgraph/generated/ClrFund/FundingRound.ts +++ b/subgraph/generated/ClrFund/FundingRound.ts @@ -386,6 +386,21 @@ export class FundingRound extends ethereum.SmartContract { return ethereum.CallResult.fromValue(value[0].toAddress()); } + pollId(): BigInt { + let result = super.call("pollId", "pollId():(uint256)", []); + + return result[0].toBigInt(); + } + + try_pollId(): ethereum.CallResult { + let result = super.tryCall("pollId", "pollId():(uint256)", []); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBigInt()); + } + totalSpent(): BigInt { let result = super.call("totalSpent", "totalSpent():(uint256)", []); diff --git a/subgraph/generated/schema.ts b/subgraph/generated/schema.ts index 7a5649125..4aa73bc1b 100644 --- a/subgraph/generated/schema.ts +++ b/subgraph/generated/schema.ts @@ -796,6 +796,23 @@ export class FundingRound extends Entity { } } + get pollId(): BigInt | null { + let value = this.get("pollId"); + if (!value || value.kind == ValueKind.NULL) { + return null; + } else { + return value.toBigInt(); + } + } + + set pollId(value: BigInt | null) { + if (!value) { + this.unset("pollId"); + } else { + this.set("pollId", Value.fromBigInt(value)); + } + } + get pollAddress(): Bytes | null { let value = this.get("pollAddress"); if (!value || value.kind == ValueKind.NULL) { diff --git a/subgraph/generated/templates/FundingRound/FundingRound.ts b/subgraph/generated/templates/FundingRound/FundingRound.ts index bde4327d0..e86a75ef4 100644 --- a/subgraph/generated/templates/FundingRound/FundingRound.ts +++ b/subgraph/generated/templates/FundingRound/FundingRound.ts @@ -386,6 +386,21 @@ export class FundingRound extends ethereum.SmartContract { return ethereum.CallResult.fromValue(value[0].toAddress()); } + pollId(): BigInt { + let result = super.call("pollId", "pollId():(uint256)", []); + + return result[0].toBigInt(); + } + + try_pollId(): ethereum.CallResult { + let result = super.tryCall("pollId", "pollId():(uint256)", []); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBigInt()); + } + totalSpent(): BigInt { let result = super.call("totalSpent", "totalSpent():(uint256)", []); diff --git a/subgraph/generated/templates/MACI/FundingRound.ts b/subgraph/generated/templates/MACI/FundingRound.ts index bde4327d0..e86a75ef4 100644 --- a/subgraph/generated/templates/MACI/FundingRound.ts +++ b/subgraph/generated/templates/MACI/FundingRound.ts @@ -386,6 +386,21 @@ export class FundingRound extends ethereum.SmartContract { return ethereum.CallResult.fromValue(value[0].toAddress()); } + pollId(): BigInt { + let result = super.call("pollId", "pollId():(uint256)", []); + + return result[0].toBigInt(); + } + + try_pollId(): ethereum.CallResult { + let result = super.tryCall("pollId", "pollId():(uint256)", []); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBigInt()); + } + totalSpent(): BigInt { let result = super.call("totalSpent", "totalSpent():(uint256)", []); diff --git a/subgraph/generated/templates/Poll/FundingRound.ts b/subgraph/generated/templates/Poll/FundingRound.ts index bde4327d0..e86a75ef4 100644 --- a/subgraph/generated/templates/Poll/FundingRound.ts +++ b/subgraph/generated/templates/Poll/FundingRound.ts @@ -386,6 +386,21 @@ export class FundingRound extends ethereum.SmartContract { return ethereum.CallResult.fromValue(value[0].toAddress()); } + pollId(): BigInt { + let result = super.call("pollId", "pollId():(uint256)", []); + + return result[0].toBigInt(); + } + + try_pollId(): ethereum.CallResult { + let result = super.tryCall("pollId", "pollId():(uint256)", []); + if (result.reverted) { + return new ethereum.CallResult(); + } + let value = result.value; + return ethereum.CallResult.fromValue(value[0].toBigInt()); + } + totalSpent(): BigInt { let result = super.call("totalSpent", "totalSpent():(uint256)", []); diff --git a/subgraph/schema.graphql b/subgraph/schema.graphql index ab72afa11..1f86045f5 100644 --- a/subgraph/schema.graphql +++ b/subgraph/schema.graphql @@ -58,6 +58,7 @@ type FundingRound @entity { id: ID! clrFund: ClrFund maci: Bytes + pollId: BigInt pollAddress: Bytes messages: [Message!] @derivedFrom(field: "fundingRound") recipientRegistry: RecipientRegistry diff --git a/subgraph/src/ClrFundMapping.ts b/subgraph/src/ClrFundMapping.ts index a957a9fad..946079b6c 100644 --- a/subgraph/src/ClrFundMapping.ts +++ b/subgraph/src/ClrFundMapping.ts @@ -251,8 +251,12 @@ export function handleRoundStarted(event: RoundStarted): void { } log.info('TRY pollAddress', []) - let pollAddressCall = fundingRoundContract.try_poll() + let pollIdCall = fundingRoundContract.try_pollId() + if (!pollIdCall.reverted) { + fundingRound.pollId = pollIdCall.value + } + let pollAddressCall = fundingRoundContract.try_poll() if (pollAddressCall.reverted) { log.info('TRY pollAddress Failed', []) } else { diff --git a/vue-app/src/api/round.ts b/vue-app/src/api/round.ts index c5d9ca88b..9b492b9f8 100644 --- a/vue-app/src/api/round.ts +++ b/vue-app/src/api/round.ts @@ -17,6 +17,7 @@ export interface RoundInfo { userRegistryAddress: string recipientRegistryAddress: string maciAddress: string + pollId: bigint recipientTreeDepth: number maxContributors: number maxRecipients: number @@ -148,6 +149,7 @@ export async function getRoundInfo( } const { + pollId, pollAddress, maci: maciAddress, recipientRegistryAddress, @@ -157,9 +159,9 @@ export async function getRoundInfo( stateTreeDepth, messageTreeDepth, voteOptionTreeDepth, - startTime, - signUpDeadline, - votingDeadline, + startTime: startTimeInSeconds, + signUpDeadline: signUpDeadlineInSeconds, + votingDeadline: votingDeadlineInSeconds, coordinatorPubKeyX, coordinatorPubKeyY, } = data.fundingRound @@ -177,6 +179,9 @@ export async function getRoundInfo( const maxContributors = stateTreeDepth ? 2 ** stateTreeDepth - 1 : 0 const maxMessages = messageTreeDepth ? 2 ** messageTreeDepth - 1 : 0 const now = DateTime.local() + const startTime = DateTime.fromSeconds(Number(startTimeInSeconds || 0)) + const signUpDeadline = DateTime.fromSeconds(Number(signUpDeadlineInSeconds || 0)) + const votingDeadline = DateTime.fromSeconds(Number(votingDeadlineInSeconds || 0)) const contributionsInfo = await getTotalContributed(fundingRoundAddress) const contributors = contributionsInfo.count let status: string @@ -214,6 +219,7 @@ export async function getRoundInfo( recipientRegistryAddress: utils.getAddress(recipientRegistryAddress), userRegistryAddress: utils.getAddress(userRegistryAddress), maciAddress: utils.getAddress(maciAddress), + pollId: BigInt(pollId || 0), recipientTreeDepth: voteOptionTreeDepth || 1, maxContributors, maxRecipients: voteOptionTreeDepth ? 5 ** voteOptionTreeDepth - 1 : 0, @@ -224,9 +230,9 @@ export async function getRoundInfo( nativeTokenDecimals, voiceCreditFactor, status, - startTime: DateTime.fromSeconds(Number(startTime || 0)), - signUpDeadline: DateTime.fromSeconds(Number(signUpDeadline || 0)), - votingDeadline: DateTime.fromSeconds(Number(votingDeadline || 0)), + startTime, + signUpDeadline, + votingDeadline, totalFunds, matchingPool, contributions, diff --git a/vue-app/src/components/ContributionModal.vue b/vue-app/src/components/ContributionModal.vue index b1f9ed176..478c0c434 100644 --- a/vue-app/src/components/ContributionModal.vue +++ b/vue-app/src/components/ContributionModal.vue @@ -168,7 +168,7 @@ onMounted(() => { }) async function sendVotes() { - const { coordinatorPubKey } = currentRound.value! + const { coordinatorPubKey, pollId } = currentRound.value! const contributor = appStore.contributor const messages: Message[] = [] @@ -183,6 +183,7 @@ async function sendVotes() { recipientIndex, voiceCredits, nonce, + pollId, ) messages.push(message) encPubKeys.push(encPubKey) diff --git a/vue-app/src/graphql/API.ts b/vue-app/src/graphql/API.ts index 15c5c5433..96cdd297e 100644 --- a/vue-app/src/graphql/API.ts +++ b/vue-app/src/graphql/API.ts @@ -417,6 +417,7 @@ export enum ClrFund_OrderBy { CurrentRoundMessageTreeDepth = 'currentRound__messageTreeDepth', CurrentRoundNativeToken = 'currentRound__nativeToken', CurrentRoundPollAddress = 'currentRound__pollAddress', + CurrentRoundPollId = 'currentRound__pollId', CurrentRoundRecipientCount = 'currentRound__recipientCount', CurrentRoundRecipientRegistryAddress = 'currentRound__recipientRegistryAddress', CurrentRoundSignUpDeadline = 'currentRound__signUpDeadline', @@ -592,6 +593,7 @@ export enum Contribution_OrderBy { FundingRoundMessageTreeDepth = 'fundingRound__messageTreeDepth', FundingRoundNativeToken = 'fundingRound__nativeToken', FundingRoundPollAddress = 'fundingRound__pollAddress', + FundingRoundPollId = 'fundingRound__pollId', FundingRoundRecipientCount = 'fundingRound__recipientCount', FundingRoundRecipientRegistryAddress = 'fundingRound__recipientRegistryAddress', FundingRoundSignUpDeadline = 'fundingRound__signUpDeadline', @@ -1139,6 +1141,7 @@ export enum Donation_OrderBy { FundingRoundMessageTreeDepth = 'fundingRound__messageTreeDepth', FundingRoundNativeToken = 'fundingRound__nativeToken', FundingRoundPollAddress = 'fundingRound__pollAddress', + FundingRoundPollId = 'fundingRound__pollId', FundingRoundRecipientCount = 'fundingRound__recipientCount', FundingRoundRecipientRegistryAddress = 'fundingRound__recipientRegistryAddress', FundingRoundSignUpDeadline = 'fundingRound__signUpDeadline', @@ -1178,6 +1181,7 @@ export type FundingRound = { nativeToken: Maybe; nativeTokenInfo: Maybe; pollAddress: Maybe; + pollId: Maybe; recipientCount: Scalars['BigInt']; recipientRegistry: Maybe; recipientRegistryAddress: Maybe; @@ -1456,6 +1460,14 @@ export type FundingRound_Filter = { pollAddress_not: InputMaybe; pollAddress_not_contains: InputMaybe; pollAddress_not_in: InputMaybe>; + pollId: InputMaybe; + pollId_gt: InputMaybe; + pollId_gte: InputMaybe; + pollId_in: InputMaybe>; + pollId_lt: InputMaybe; + pollId_lte: InputMaybe; + pollId_not: InputMaybe; + pollId_not_in: InputMaybe>; recipientCount: InputMaybe; recipientCount_gt: InputMaybe; recipientCount_gte: InputMaybe; @@ -1638,6 +1650,7 @@ export enum FundingRound_OrderBy { NativeTokenInfoSymbol = 'nativeTokenInfo__symbol', NativeTokenInfoTokenAddress = 'nativeTokenInfo__tokenAddress', PollAddress = 'pollAddress', + PollId = 'pollId', RecipientCount = 'recipientCount', RecipientRegistry = 'recipientRegistry', RecipientRegistryAddress = 'recipientRegistryAddress', @@ -1811,6 +1824,7 @@ export enum Message_OrderBy { FundingRoundMessageTreeDepth = 'fundingRound__messageTreeDepth', FundingRoundNativeToken = 'fundingRound__nativeToken', FundingRoundPollAddress = 'fundingRound__pollAddress', + FundingRoundPollId = 'fundingRound__pollId', FundingRoundRecipientCount = 'fundingRound__recipientCount', FundingRoundRecipientRegistryAddress = 'fundingRound__recipientRegistryAddress', FundingRoundSignUpDeadline = 'fundingRound__signUpDeadline', @@ -1947,6 +1961,7 @@ export enum PublicKey_OrderBy { FundingRoundMessageTreeDepth = 'fundingRound__messageTreeDepth', FundingRoundNativeToken = 'fundingRound__nativeToken', FundingRoundPollAddress = 'fundingRound__pollAddress', + FundingRoundPollId = 'fundingRound__pollId', FundingRoundRecipientCount = 'fundingRound__recipientCount', FundingRoundRecipientRegistryAddress = 'fundingRound__recipientRegistryAddress', FundingRoundSignUpDeadline = 'fundingRound__signUpDeadline', @@ -3185,6 +3200,7 @@ export enum Vote_OrderBy { FundingRoundMessageTreeDepth = 'fundingRound__messageTreeDepth', FundingRoundNativeToken = 'fundingRound__nativeToken', FundingRoundPollAddress = 'fundingRound__pollAddress', + FundingRoundPollId = 'fundingRound__pollId', FundingRoundRecipientCount = 'fundingRound__recipientCount', FundingRoundRecipientRegistryAddress = 'fundingRound__recipientRegistryAddress', FundingRoundSignUpDeadline = 'fundingRound__signUpDeadline', @@ -3345,7 +3361,7 @@ export type GetRoundInfoQueryVariables = Exact<{ }>; -export type GetRoundInfoQuery = { __typename?: 'Query', fundingRound: { __typename?: 'FundingRound', id: string, maci: any | null, pollAddress: any | null, recipientRegistryAddress: any | null, contributorRegistryAddress: any | null, voiceCreditFactor: any | null, isFinalized: boolean | null, isCancelled: boolean | null, contributorCount: any, totalSpent: any | null, matchingPoolSize: any | null, startTime: any | null, signUpDeadline: any | null, votingDeadline: any | null, coordinatorPubKeyX: any | null, coordinatorPubKeyY: any | null, stateTreeDepth: number | null, messageTreeDepth: number | null, voteOptionTreeDepth: number | null, nativeTokenInfo: { __typename?: 'Token', tokenAddress: any | null, symbol: string | null, decimals: any | null } | null } | null }; +export type GetRoundInfoQuery = { __typename?: 'Query', fundingRound: { __typename?: 'FundingRound', id: string, maci: any | null, pollId: any | null, pollAddress: any | null, recipientRegistryAddress: any | null, contributorRegistryAddress: any | null, voiceCreditFactor: any | null, isFinalized: boolean | null, isCancelled: boolean | null, contributorCount: any, totalSpent: any | null, matchingPoolSize: any | null, startTime: any | null, signUpDeadline: any | null, votingDeadline: any | null, coordinatorPubKeyX: any | null, coordinatorPubKeyY: any | null, stateTreeDepth: number | null, messageTreeDepth: number | null, voteOptionTreeDepth: number | null, nativeTokenInfo: { __typename?: 'Token', tokenAddress: any | null, symbol: string | null, decimals: any | null } | null } | null }; export type GetRoundsQueryVariables = Exact<{ [key: string]: never; }>; @@ -3548,6 +3564,7 @@ export const GetRoundInfoDocument = gql` fundingRound(id: $fundingRoundAddress) { id maci + pollId pollAddress nativeTokenInfo { tokenAddress diff --git a/vue-app/src/graphql/queries/GetRoundInfo.graphql b/vue-app/src/graphql/queries/GetRoundInfo.graphql index 8dbf7db9d..d5995c8ff 100644 --- a/vue-app/src/graphql/queries/GetRoundInfo.graphql +++ b/vue-app/src/graphql/queries/GetRoundInfo.graphql @@ -2,6 +2,7 @@ query GetRoundInfo($fundingRoundAddress: ID!) { fundingRound(id: $fundingRoundAddress) { id maci + pollId pollAddress nativeTokenInfo { tokenAddress From 94daae6ad1fd6e9738214215a1092143663a40a5 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Fri, 1 Dec 2023 12:31:43 -0500 Subject: [PATCH 104/338] remove obsolete scripts --- contracts/scripts/deployBrightIdSponsor.ts | 30 -- contracts/scripts/deployTestRound.ts | 380 --------------------- contracts/scripts/generate-key.ts | 16 - contracts/scripts/get-bytecode.ts | 27 -- contracts/scripts/prepare-results.ts | 97 ------ contracts/scripts/verify.ts | 16 - 6 files changed, 566 deletions(-) delete mode 100644 contracts/scripts/deployBrightIdSponsor.ts delete mode 100644 contracts/scripts/deployTestRound.ts delete mode 100644 contracts/scripts/generate-key.ts delete mode 100644 contracts/scripts/get-bytecode.ts delete mode 100644 contracts/scripts/prepare-results.ts delete mode 100644 contracts/scripts/verify.ts diff --git a/contracts/scripts/deployBrightIdSponsor.ts b/contracts/scripts/deployBrightIdSponsor.ts deleted file mode 100644 index c2967cdd5..000000000 --- a/contracts/scripts/deployBrightIdSponsor.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { ethers } from 'hardhat' - -async function main() { - console.log('**************************************') - console.log('Deploying a BrightId sponsor contract!') - console.log('**************************************') - - const [deployer] = await ethers.getSigners() - console.log('Deployer address', deployer.address) - - const BrightIdSponsor = await ethers.getContractFactory( - 'BrightIdSponsor', - deployer - ) - const sponsor = await BrightIdSponsor.deploy() - console.log('Transaction hash', sponsor.deployTransaction.hash) - await sponsor.deployTransaction.wait() - console.log('Sponsor contract', sponsor.address) - - console.log('*******************') - console.log('Deploy complete!') - console.log('*******************') -} - -main() - .then(() => process.exit(0)) - .catch((error) => { - console.error(error) - process.exit(1) - }) diff --git a/contracts/scripts/deployTestRound.ts b/contracts/scripts/deployTestRound.ts deleted file mode 100644 index 97f7746cb..000000000 --- a/contracts/scripts/deployTestRound.ts +++ /dev/null @@ -1,380 +0,0 @@ -import fs from 'fs' -import { ethers } from 'hardhat' -import { Keypair } from '@clrfund/common' - -import { UNIT } from '../utils/constants' -import { getEventArg } from '../utils/contracts' -import { MaciParameters } from '../utils/maci' - -async function main() { - // We're hardcoding factory address due to a buidler limitation: - // https://github.com/nomiclabs/buidler/issues/651 - const factoryAddress = '0x5FC8d32690cc91D4c39d9d3abcBD16989F875707' - const [ - deployer, - , - poolContributor, - recipient1, - recipient2, - recipient3, - recipient4, - recipient5, - recipient6, - recipient7, - recipient8, - recipient9, - contributor1, - contributor2, - ] = await ethers.getSigners() - - // Deploy ERC20 token contract - const Token = await ethers.getContractFactory('AnyOldERC20Token', deployer) - const tokenInitialSupply = UNIT.mul(1000) - const token = await Token.deploy(tokenInitialSupply) - await token.deployTransaction.wait() - console.log(`Token deployed: ${token.address}`) - - const tokenReceivers = [poolContributor, contributor1, contributor2] - let transferTx - for (const account of tokenReceivers) { - transferTx = await token.transfer(account.getAddress(), UNIT.mul(100)) - transferTx.wait() - } - - // Configure factory - const factory = await ethers.getContractAt( - 'FundingRoundFactory', - factoryAddress - ) - const setTokenTx = await factory.setToken(token.address) - await setTokenTx.wait() - const coordinatorKeyPair = new Keypair() - const setCoordinatorTx = await factory.setCoordinator( - deployer.getAddress(), - coordinatorKeyPair.pubKey.asContractParam() - ) - await setCoordinatorTx.wait() - - // Configure MACI factory - const maciFactoryAddress = await factory.maciFactory() - const maciFactory = await ethers.getContractAt( - 'MACIFactory', - maciFactoryAddress - ) - const maciParameters = await MaciParameters.read(maciFactory) - maciParameters.update({ - signUpDuration: 60 * 5, // 5 minutes - votingDuration: 60 * 5, - }) - const setMaciParametersTx = await factory.setMaciParameters( - ...maciParameters.values() - ) - await setMaciParametersTx.wait() - - // Add to matching pool - const poolContributionAmount = UNIT.mul(10) - const poolContributorToken = token.connect(poolContributor) - const poolContributionTx = await poolContributorToken.transfer( - factory.address, - poolContributionAmount - ) - await poolContributionTx.wait() - - // Add contributors - const userRegistryType = process.env.USER_REGISTRY_TYPE || 'simple' - if (userRegistryType === 'simple') { - const userRegistryAddress = await factory.userRegistry() - const userRegistry = await ethers.getContractAt( - 'SimpleUserRegistry', - userRegistryAddress - ) - const users = [contributor1, contributor2] - let addUserTx - for (const account of users) { - addUserTx = await userRegistry.addUser(account.getAddress()) - addUserTx.wait() - } - } - - // Add dummy recipients - // TODO add better dummy data - const metadataRecipient1 = { - name: 'Commons Simulator', - description: - 'Funding open-source projects & other public goods is the killer app of blockchain tech. Giveth & BlockScience are joining forces to build the Commons Stack: a modular library of well engineered components that can be used to create economic models for projects that are creating value, yet have trouble finding sustainable business models.', - imageHash: 'QmbMP2fMiy6ek5uQZaxG3bzT9gSqMWxpdCUcQg1iSeEFMU', - tagline: 'Modeling Sustainable Funding for Public Good', - category: 'Data', - problemSpace: 'metadata.problemSpace', - plans: 'metadata.plans', - teamName: 'metadata.teamName', - teamDescription: 'metadata.teamDescription', - githubUrl: 'https://github.com/', - radicleUrl: 'https://radicle.xyz/', - websiteUrl: 'https://website.com/', - twitterUrl: 'https://twitter.com/', - discordUrl: 'https://discord.com/', - bannerImageHash: 'QmaDy75RkRVtZcbYeqMDLcCK8dDvahfik68zP7FbpxvD2F', - thumbnailImageHash: 'QmaDy75RkRVtZcbYeqMDLcCK8dDvahfik68zP7FbpxvD2F', - } - - const metadataRecipient2 = { - name: 'Synthereum', - description: - 'The aim of our synthetic assets is to help creating fiat-based wallet and applications on any local currencies, and help to create stock, commodities portfolio in order to bring more traditional users within the DeFi ecosystem.', - imageHash: 'QmbMP2fMiy6ek5uQZaxG3bzT9gSqMWxpdCUcQg1iSeEFMU', - tagline: - 'Synthetic assets with liquidity pools to bridge traditional and digital finance.', - category: 'Content', - problemSpace: 'metadata.problemSpace', - plans: 'metadata.plans', - teamName: 'metadata.teamName', - teamDescription: 'metadata.teamDescription', - githubUrl: 'https://github.com/', - radicleUrl: 'https://radicle.xyz/', - websiteUrl: 'https://website.com/', - twitterUrl: 'https://twitter.com/', - discordUrl: 'https://discord.com/', - bannerImageHash: 'QmaDy75RkRVtZcbYeqMDLcCK8dDvahfik68zP7FbpxvD2F', - thumbnailImageHash: 'QmaDy75RkRVtZcbYeqMDLcCK8dDvahfik68zP7FbpxvD2F', - } - - const metadataRecipient3 = { - name: 'Commons Simulator', - description: - 'Funding open-source projects & other public goods is the killer app of blockchain tech. Giveth & BlockScience are joining forces to build the Commons Stack: a modular library of well engineered components that can be used to create economic models for projects that are creating value, yet have trouble finding sustainable business models.', - imageHash: 'QmbMP2fMiy6ek5uQZaxG3bzT9gSqMWxpdCUcQg1iSeEFMU', - tagline: 'Modeling Sustainable Funding for Public Good', - category: 'Data', - problemSpace: 'metadata.problemSpace', - plans: 'metadata.plans', - teamName: 'metadata.teamName', - teamDescription: 'metadata.teamDescription', - githubUrl: 'https://github.com/', - radicleUrl: 'https://radicle.xyz/', - websiteUrl: 'https://website.com/', - twitterUrl: 'https://twitter.com/', - discordUrl: 'https://discord.com/', - bannerImageHash: 'QmaDy75RkRVtZcbYeqMDLcCK8dDvahfik68zP7FbpxvD2F', - thumbnailImageHash: 'QmaDy75RkRVtZcbYeqMDLcCK8dDvahfik68zP7FbpxvD2F', - } - const metadataRecipient4 = { - name: 'Synthereum', - description: - 'The aim of our synthetic assets is to help creating fiat-based wallet and applications on any local currencies, and help to create stock, commodities portfolio in order to bring more traditional users within the DeFi ecosystem.', - imageHash: 'QmbMP2fMiy6ek5uQZaxG3bzT9gSqMWxpdCUcQg1iSeEFMU', - tagline: - 'Synthetic assets with liquidity pools to bridge traditional and digital finance.', - category: 'Content', - problemSpace: 'metadata.problemSpace', - plans: 'metadata.plans', - teamName: 'metadata.teamName', - teamDescription: 'metadata.teamDescription', - githubUrl: 'https://github.com/', - radicleUrl: 'https://radicle.xyz/', - websiteUrl: 'https://website.com/', - twitterUrl: 'https://twitter.com/', - discordUrl: 'https://discord.com/', - bannerImageHash: 'QmaDy75RkRVtZcbYeqMDLcCK8dDvahfik68zP7FbpxvD2F', - thumbnailImageHash: 'QmaDy75RkRVtZcbYeqMDLcCK8dDvahfik68zP7FbpxvD2F', - } - const metadataRecipient5 = { - name: 'Commons Simulator', - description: - 'Funding open-source projects & other public goods is the killer app of blockchain tech. Giveth & BlockScience are joining forces to build the Commons Stack: a modular library of well engineered components that can be used to create economic models for projects that are creating value, yet have trouble finding sustainable business models.', - imageHash: 'QmbMP2fMiy6ek5uQZaxG3bzT9gSqMWxpdCUcQg1iSeEFMU', - tagline: 'Modeling Sustainable Funding for Public Good', - category: 'Data', - problemSpace: 'metadata.problemSpace', - plans: 'metadata.plans', - teamName: 'metadata.teamName', - teamDescription: 'metadata.teamDescription', - githubUrl: 'https://github.com/', - radicleUrl: 'https://radicle.xyz/', - websiteUrl: 'https://website.com/', - twitterUrl: 'https://twitter.com/', - discordUrl: 'https://discord.com/', - bannerImageHash: 'QmaDy75RkRVtZcbYeqMDLcCK8dDvahfik68zP7FbpxvD2F', - thumbnailImageHash: 'QmaDy75RkRVtZcbYeqMDLcCK8dDvahfik68zP7FbpxvD2F', - } - const metadataRecipient6 = { - name: 'Synthereum', - description: - 'The aim of our synthetic assets is to help creating fiat-based wallet and applications on any local currencies, and help to create stock, commodities portfolio in order to bring more traditional users within the DeFi ecosystem.', - imageHash: 'QmbMP2fMiy6ek5uQZaxG3bzT9gSqMWxpdCUcQg1iSeEFMU', - tagline: - 'Synthetic assets with liquidity pools to bridge traditional and digital finance.', - category: 'Content', - problemSpace: 'metadata.problemSpace', - plans: 'metadata.plans', - teamName: 'metadata.teamName', - teamDescription: 'metadata.teamDescription', - githubUrl: 'https://github.com/', - radicleUrl: 'https://radicle.xyz/', - websiteUrl: 'https://website.com/', - twitterUrl: 'https://twitter.com/', - discordUrl: 'https://discord.com/', - bannerImageHash: 'QmaDy75RkRVtZcbYeqMDLcCK8dDvahfik68zP7FbpxvD2F', - thumbnailImageHash: 'QmaDy75RkRVtZcbYeqMDLcCK8dDvahfik68zP7FbpxvD2F', - } - const metadataRecipient7 = { - name: 'Commons Simulator', - description: - 'Funding open-source projects & other public goods is the killer app of blockchain tech. Giveth & BlockScience are joining forces to build the Commons Stack: a modular library of well engineered components that can be used to create economic models for projects that are creating value, yet have trouble finding sustainable business models.', - imageHash: 'QmbMP2fMiy6ek5uQZaxG3bzT9gSqMWxpdCUcQg1iSeEFMU', - tagline: 'Modeling Sustainable Funding for Public Good', - category: 'Data', - problemSpace: 'metadata.problemSpace', - plans: 'metadata.plans', - teamName: 'metadata.teamName', - teamDescription: 'metadata.teamDescription', - githubUrl: 'https://github.com/', - radicleUrl: 'https://radicle.xyz/', - websiteUrl: 'https://website.com/', - twitterUrl: 'https://twitter.com/', - discordUrl: 'https://discord.com/', - bannerImageHash: 'QmaDy75RkRVtZcbYeqMDLcCK8dDvahfik68zP7FbpxvD2F', - thumbnailImageHash: 'QmaDy75RkRVtZcbYeqMDLcCK8dDvahfik68zP7FbpxvD2F', - } - const metadataRecipient8 = { - name: 'Synthereum', - description: - 'The aim of our synthetic assets is to help creating fiat-based wallet and applications on any local currencies, and help to create stock, commodities portfolio in order to bring more traditional users within the DeFi ecosystem.', - imageHash: 'QmbMP2fMiy6ek5uQZaxG3bzT9gSqMWxpdCUcQg1iSeEFMU', - tagline: - 'Synthetic assets with liquidity pools to bridge traditional and digital finance.', - category: 'Content', - problemSpace: 'metadata.problemSpace', - plans: 'metadata.plans', - teamName: 'metadata.teamName', - teamDescription: 'metadata.teamDescription', - githubUrl: 'https://github.com/', - radicleUrl: 'https://radicle.xyz/', - websiteUrl: 'https://website.com/', - twitterUrl: 'https://twitter.com/', - discordUrl: 'https://discord.com/', - bannerImageHash: 'QmaDy75RkRVtZcbYeqMDLcCK8dDvahfik68zP7FbpxvD2F', - thumbnailImageHash: 'QmaDy75RkRVtZcbYeqMDLcCK8dDvahfik68zP7FbpxvD2F', - } - const metadataRecipient9 = { - name: 'Commons Simulator', - description: - 'Funding open-source projects & other public goods is the killer app of blockchain tech. Giveth & BlockScience are joining forces to build the Commons Stack: a modular library of well engineered components that can be used to create economic models for projects that are creating value, yet have trouble finding sustainable business models.', - imageHash: 'QmbMP2fMiy6ek5uQZaxG3bzT9gSqMWxpdCUcQg1iSeEFMU', - tagline: 'Modeling Sustainable Funding for Public Good', - category: 'Data', - problemSpace: 'metadata.problemSpace', - plans: 'metadata.plans', - teamName: 'metadata.teamName', - teamDescription: 'metadata.teamDescription', - githubUrl: 'https://github.com/', - radicleUrl: 'https://radicle.xyz/', - websiteUrl: 'https://website.com/', - twitterUrl: 'https://twitter.com/', - discordUrl: 'https://discord.com/', - bannerImageHash: 'QmaDy75RkRVtZcbYeqMDLcCK8dDvahfik68zP7FbpxvD2F', - thumbnailImageHash: 'QmaDy75RkRVtZcbYeqMDLcCK8dDvahfik68zP7FbpxvD2F', - } - - // Deploy new funding round and MACI - const deployNewRoundTx = await factory.deployNewRound() - await deployNewRoundTx.wait() - const fundingRoundAddress = await factory.getCurrentRound() - console.log(`Funding round deployed: ${fundingRoundAddress}`) - const fundingRound = await ethers.getContractAt( - 'FundingRound', - fundingRoundAddress - ) - const maciAddress = await fundingRound.maci() - console.log(`MACI address: ${maciAddress}`) - - const recipientRegistryType = process.env.RECIPIENT_REGISTRY_TYPE || 'simple' - const recipientRegistryAddress = await factory.recipientRegistry() - if (recipientRegistryType === 'simple') { - const recipientRegistry = await ethers.getContractAt( - 'SimpleRecipientRegistry', - recipientRegistryAddress - ) - const recipients = [ - { account: recipient1, metadata: metadataRecipient1 }, - { account: recipient2, metadata: metadataRecipient2 }, - { account: recipient3, metadata: metadataRecipient3 }, - { account: recipient4, metadata: metadataRecipient4 }, - { account: recipient5, metadata: metadataRecipient5 }, - { account: recipient6, metadata: metadataRecipient6 }, - { account: recipient7, metadata: metadataRecipient7 }, - { account: recipient8, metadata: metadataRecipient8 }, - { account: recipient9, metadata: metadataRecipient9 }, - ] - let addRecipientTx - for (const recipient of recipients) { - addRecipientTx = await recipientRegistry.addRecipient( - recipient.account.getAddress(), - JSON.stringify(recipient.metadata) - ) - addRecipientTx.wait() - } - } else if (recipientRegistryType === 'optimistic') { - const recipientRegistry = await ethers.getContractAt( - 'OptimisticRecipientRegistry', - recipientRegistryAddress - ) - const deposit = await recipientRegistry.baseDeposit() - const recipient1Added = await recipientRegistry.addRecipient( - recipient1.getAddress(), - JSON.stringify(metadataRecipient1), - { value: deposit } - ) - await recipient1Added.wait() - - const recipient1Id = await getEventArg( - recipient1Added, - recipientRegistry, - 'RequestSubmitted', - '_recipientId' - ) - const executeRequest1 = await recipientRegistry.executeRequest(recipient1Id) - await executeRequest1.wait() - - const recipient2Added = await recipientRegistry.addRecipient( - recipient2.getAddress(), - JSON.stringify(metadataRecipient2), - { value: deposit } - ) - await recipient2Added.wait() - - const recipient2Id = await getEventArg( - recipient2Added, - recipientRegistry, - 'RequestSubmitted', - '_recipientId' - ) - const executeRequest2 = await recipientRegistry.executeRequest(recipient2Id) - await executeRequest2.wait() - - // Add recipient without executing - const recipient3Added = await recipientRegistry.addRecipient( - recipient3.getAddress(), - JSON.stringify(metadataRecipient3), - { value: deposit } - ) - recipient3Added.wait() - } - - // Save the current state of the round - fs.writeFileSync( - 'state.json', - JSON.stringify({ - factory: factory.address, - fundingRound: fundingRoundAddress, - coordinatorPrivKey: coordinatorKeyPair.privKey.serialize(), - }) - ) -} - -main() - .then(() => process.exit(0)) - .catch((error) => { - console.error(error) - process.exit(1) - }) diff --git a/contracts/scripts/generate-key.ts b/contracts/scripts/generate-key.ts deleted file mode 100644 index e7d527188..000000000 --- a/contracts/scripts/generate-key.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { Keypair } from '@clrfund/common' - -async function main() { - const keypair = new Keypair() - const serializedPrivKey = keypair.privKey.serialize() - const serializedPubKey = keypair.pubKey.serialize() - console.log('Private key:', serializedPrivKey) - console.log('Public key: ', serializedPubKey) -} - -main() - .then(() => process.exit(0)) - .catch((error) => { - console.error(error) - process.exit(1) - }) diff --git a/contracts/scripts/get-bytecode.ts b/contracts/scripts/get-bytecode.ts deleted file mode 100644 index b800378a5..000000000 --- a/contracts/scripts/get-bytecode.ts +++ /dev/null @@ -1,27 +0,0 @@ -// Usage: yarn ts-node scripts/get-bytecode.ts MACI -import { artifacts } from 'hardhat' -import { linkBytecode } from '../utils/deployment' - -async function main() { - const contractName = process.argv[2] - const poseidonT3Address = process.argv[3] - const poseidonT6Address = process.argv[4] - const artifact = await artifacts.readArtifact(contractName) - let result: string - if (poseidonT3Address && poseidonT6Address) { - result = linkBytecode(artifact.deployedBytecode, { - '@clrfund/maci-contracts/sol/Poseidon.sol:PoseidonT3': poseidonT3Address, - '@clrfund/maci-contracts/sol/Poseidon.sol:PoseidonT6': poseidonT6Address, - }) - } else { - result = artifact.deployedBytecode - } - console.info(result) -} - -main() - .then(() => process.exit(0)) - .catch((error) => { - console.error(error) - process.exit(1) - }) diff --git a/contracts/scripts/prepare-results.ts b/contracts/scripts/prepare-results.ts deleted file mode 100644 index e979d2f27..000000000 --- a/contracts/scripts/prepare-results.ts +++ /dev/null @@ -1,97 +0,0 @@ -import fetch from 'node-fetch' -import { ethers } from 'hardhat' -import { Event } from 'ethers' -import { gtcrDecode } from '@kleros/gtcr-encoder' -import { DEFAULT_IPFS_GATEWAY } from '../utils/constants' - -const ipfsGatewayUrl = process.env.IPFS_GATEWAY_URL || DEFAULT_IPFS_GATEWAY - -interface Project { - id: string - name: string - index: number - result?: number - spent?: number -} - -interface TcrColumn { - label: string - type: string -} - -function decodeRecipientAdded(event: Event, columns: TcrColumn[]): Project { - const args = event.args as any - const consoleError = console.error - console.error = function () {} // eslint-disable-line @typescript-eslint/no-empty-function - const decodedMetadata = gtcrDecode({ columns, values: args._metadata }) - console.error = consoleError - /* eslint-enable no-console */ - return { - id: args._tcrItemId, - name: decodedMetadata[0] as string, - index: args._index.toNumber(), - } -} - -async function main() { - const fundingRound = await ethers.getContractAt( - 'FundingRound', - process.env.ROUND_ADDRESS as string - ) - const startBlock = await fundingRound.startBlock() - const maci = await ethers.getContractAt('MACI', await fundingRound.maci()) - const signUpDuration = await maci.signUpDurationSeconds() - const votingDuration = await maci.votingDurationSeconds() - const endBlock = startBlock.add(signUpDuration.add(votingDuration).div(15)) - const tallyHash = await fundingRound.tallyHash() - const tallyResponse = await fetch(`${ipfsGatewayUrl}/ipfs/${tallyHash}`) - const tally = await tallyResponse.json() - const registry = await ethers.getContractAt( - 'KlerosGTCRAdapter', - await fundingRound.recipientRegistry() - ) - const tcr = await ethers.getContractAt('KlerosGTCRMock', await registry.tcr()) - const metaEvidenceFilter = tcr.filters.MetaEvidence() - const metaEvidenceEvents = await tcr.queryFilter(metaEvidenceFilter, 0) - const regMetaEvidenceEvent = metaEvidenceEvents[metaEvidenceEvents.length - 2] - const tcrEvidenceIpfsPath = (regMetaEvidenceEvent.args as any)._evidence - const tcrDataResponse = await fetch(`${ipfsGatewayUrl}${tcrEvidenceIpfsPath}`) - const tcrData = await tcrDataResponse.json() - const tcrColumns = tcrData.metadata.columns - const recipientAddedFilter = registry.filters.RecipientAdded() - const recipientAddedEvents = await registry.queryFilter( - recipientAddedFilter, - 0 - ) - const recipientRemovedFilter = registry.filters.RecipientRemoved() - const recipientRemovedEvents = await registry.queryFilter( - recipientRemovedFilter, - 0 - ) - const projects: Project[] = [] - for (const event of recipientAddedEvents) { - const project = decodeRecipientAdded(event, tcrColumns) - if (event.blockNumber >= endBlock.toNumber()) { - continue - } - const removed = recipientRemovedEvents.find((event) => { - return (event.args as any)._tcrItemId === project.id - }) - if (removed) { - continue - } - project.result = parseInt(tally.results.tally[project.index]) - project.spent = parseInt( - tally.totalVoiceCreditsPerVoteOption.tally[project.index] - ) - projects.push(project) - } - console.log(JSON.stringify(projects)) -} - -main() - .then(() => process.exit(0)) - .catch((error) => { - console.error(error) - process.exit(1) - }) diff --git a/contracts/scripts/verify.ts b/contracts/scripts/verify.ts deleted file mode 100644 index 0cb07c074..000000000 --- a/contracts/scripts/verify.ts +++ /dev/null @@ -1,16 +0,0 @@ -// Usage: yarn ts-node scripts/verify.ts tally.json -import { verify } from 'maci-cli' - -async function main() { - const tallyFile = process.argv[2] - await verify({ - tally_file: tallyFile, // eslint-disable-line @typescript-eslint/camelcase - }) -} - -main() - .then(() => process.exit(0)) - .catch((error) => { - console.error(error) - process.exit(1) - }) From fc8697053277ad89943cb03453d747e81c32d50e Mon Sep 17 00:00:00 2001 From: yuetloo Date: Fri, 1 Dec 2023 13:15:18 -0500 Subject: [PATCH 105/338] add pollId to the roundInfo --- vue-app/src/api/round.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/vue-app/src/api/round.ts b/vue-app/src/api/round.ts index 9b492b9f8..755837fea 100644 --- a/vue-app/src/api/round.ts +++ b/vue-app/src/api/round.ts @@ -86,6 +86,7 @@ export function toRoundInfo(data: any, network: string): RoundInfo { recipientRegistryAddress: utils.getAddress(data.recipientRegistryAddress), userRegistryAddress: utils.getAddress(data.userRegistryAddress), maciAddress: utils.getAddress(data.maciAddress), + pollId: BigInt(data.pollId || 0), recipientTreeDepth: 0, maxContributors: 0, maxRecipients: data.maxRecipients, From 5328452968e326b524c612af46b67ac6fc18a8b8 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Fri, 1 Dec 2023 16:07:43 -0500 Subject: [PATCH 106/338] rename -h flag with -t to avoid collision with default -h help flag --- contracts/cli/tally.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/cli/tally.ts b/contracts/cli/tally.ts index 4032bef96..c14918929 100644 --- a/contracts/cli/tally.ts +++ b/contracts/cli/tally.ts @@ -50,7 +50,7 @@ program 'File to store the ClrFundDeployer address for e2e testing' ) .requiredOption('-o --output-dir ', 'The proof output directory') - .option('-h --maci-tx-hash ', 'The MACI creation transaction hash') + .option('-t --maci-tx-hash ', 'The MACI creation transaction hash') .option('-r --rapid-snark ', 'The rapidsnark prover path') .option( '-n --num-queue-ops ', From 14305d5faa6bf2e83132d1711e45c46216e15121 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Fri, 1 Dec 2023 16:09:06 -0500 Subject: [PATCH 107/338] remove unused Poll entity --- subgraph/subgraph.template.yaml | 1 - subgraph/subgraph.yaml | 1 - 2 files changed, 2 deletions(-) diff --git a/subgraph/subgraph.template.yaml b/subgraph/subgraph.template.yaml index adf7a2396..de35fe47f 100644 --- a/subgraph/subgraph.template.yaml +++ b/subgraph/subgraph.template.yaml @@ -21,7 +21,6 @@ dataSources: - ContributorRegistry - FundingRound - Token - - Poll abis: - name: ClrFund file: ./abis/ClrFund.json diff --git a/subgraph/subgraph.yaml b/subgraph/subgraph.yaml index 524a44ea0..815835a5e 100644 --- a/subgraph/subgraph.yaml +++ b/subgraph/subgraph.yaml @@ -21,7 +21,6 @@ dataSources: - ContributorRegistry - FundingRound - Token - - Poll abis: - name: ClrFund file: ./abis/ClrFund.json From 8f498febe1154155b7dc3058b67931575929c589 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Fri, 1 Dec 2023 16:09:43 -0500 Subject: [PATCH 108/338] update to match tally file structure --- vue-app/src/components/ClaimButton.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vue-app/src/components/ClaimButton.vue b/vue-app/src/components/ClaimButton.vue index 6eff26bb5..281034152 100644 --- a/vue-app/src/components/ClaimButton.vue +++ b/vue-app/src/components/ClaimButton.vue @@ -85,7 +85,7 @@ async function checkAllocation() { currentRound.value.fundingRoundAddress, currentRound.value.nativeTokenDecimals, tally.value!.results.tally[props.project.index], - tally.value!.totalVoiceCreditsPerVoteOption.tally[props.project.index], + tally.value!.perVOSpentVoiceCredits.tally[props.project.index], ) claimed.value = await isFundsClaimed( currentRound.value.fundingRoundAddress, From 38e8919206c4055d48cb2d27cd0189dbe7be76b0 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Sun, 3 Dec 2023 23:38:19 -0500 Subject: [PATCH 109/338] fix missing PublishMessage events --- subgraph/src/ClrFundMapping.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/subgraph/src/ClrFundMapping.ts b/subgraph/src/ClrFundMapping.ts index 946079b6c..e5e8da56a 100644 --- a/subgraph/src/ClrFundMapping.ts +++ b/subgraph/src/ClrFundMapping.ts @@ -25,6 +25,7 @@ import { FundingRound as FundingRoundTemplate, OptimisticRecipientRegistry as recipientRegistryTemplate, MACI as MACITemplate, + Poll as PollTemplate, } from '../generated/templates' import { ClrFund, @@ -262,6 +263,7 @@ export function handleRoundStarted(event: RoundStarted): void { } else { let pollAddress = pollAddressCall.value fundingRound.pollAddress = pollAddress + PollTemplate.create(pollAddress) let pollContract = PollContract.bind(pollAddress) let deployTimeAndDuration = pollContract.try_getDeployTimeAndDuration() From 65dc298512c11ae5fb6391be53f8414abeac920d Mon Sep 17 00:00:00 2001 From: yuetloo Date: Tue, 5 Dec 2023 00:32:52 -0500 Subject: [PATCH 110/338] fix finalize action and add recipient registry task --- .github/workflows/mantle_finalize_round.yml | 5 +-- .../mantle_new_recipient_registry.yml | 43 +++++++++++++++++++ contracts/tasks/index.ts | 1 + 3 files changed, 46 insertions(+), 3 deletions(-) create mode 100644 .github/workflows/mantle_new_recipient_registry.yml diff --git a/.github/workflows/mantle_finalize_round.yml b/.github/workflows/mantle_finalize_round.yml index 1298cd77c..0ccf766d7 100644 --- a/.github/workflows/mantle_finalize_round.yml +++ b/.github/workflows/mantle_finalize_round.yml @@ -22,7 +22,6 @@ on: env: NODE_VERSION: 16.x - NETWORK: "arbitrum-goerli" COORDINATOR_ETH_PK: ${{ secrets.MANTLE_TESTNET_COORDINATOR_WALLET_PRIVATE_KEY }} COORDINATOR_PK: ${{ secrets.MANTLE_TESTNET_COORDINATOR_MACI_PRIVATE_KEY }} @@ -69,8 +68,8 @@ jobs: echo "MACI_START_BLOCK:" $MACI_START_BLOCK # tally and finalize cd contracts - yarn hardhat tally --round-address "${ROUND_ADDRESS}" --network "${NETWORK}" + yarn hardhat tally --round-address "${ROUND_ADDRESS}" --network "${{ github.event.inputs.network }}" curl --location --request POST 'https://api.pinata.cloud/pinning/pinFileToIPFS' \ --header "Authorization: Bearer ${{ secrets.PINATA_JWT }}" \ --form 'file=@"tally.json"' - yarn hardhat run --network "${NETWORK}" scripts/finalize.ts + yarn hardhat run --network "${{ github.event.inputs.network }}" scripts/finalize.ts diff --git a/.github/workflows/mantle_new_recipient_registry.yml b/.github/workflows/mantle_new_recipient_registry.yml new file mode 100644 index 000000000..d922731c8 --- /dev/null +++ b/.github/workflows/mantle_new_recipient_registry.yml @@ -0,0 +1,43 @@ +name: Mantle testnet - Create new round + +on: + workflow_dispatch: + inputs: + branch_name: + description: 'Clrfund branch name' + required: true + default: 'cohort/EthSingapore' + factory: + description: 'Clrfund factory address' + required: true + default: '0x006f39E6a6D15323334Be1db34C73088550BB20a' + network: + description: 'Network' + required: true + default: 'mantle-testnet' + +env: + NODE_VERSION: 16.x + WALLET_PRIVATE_KEY: ${{ secrets.MANTLE_TESTNET_COORDINATOR_WALLET_PRIVATE_KEY }} + +jobs: + create-new-round: + runs-on: ubuntu-22.04 + steps: + - name: Use Node.js ${{ env.NODE_VERSION }} + uses: actions/setup-node@v3 + with: + node-version: ${{ env.NODE_VERSION }} + - name: Checkout source code + uses: actions/checkout@v3 + - name: Build CLR + run: | + yarn && yarn build + - name: Run create new round script + run: | + cd contracts + export FACTORY_ADDRESS="${{ github.event.inputs.factory }}" + yarn hardhat deploy-recipient-registry \ + --network "${{ github.event.inputs.network }}" \ + --factory "${{ github.event.inputs.factory }}" \ + --type "optimistic" diff --git a/contracts/tasks/index.ts b/contracts/tasks/index.ts index 8cd3f1ac2..c3e053b2e 100644 --- a/contracts/tasks/index.ts +++ b/contracts/tasks/index.ts @@ -17,3 +17,4 @@ import './tally' import './findStorageSlot' import './setStorageRoot' import './loadMerkleUsers' +import './deployRecipientRegistry' From 33e5cf0cf85deafe673a4ae0108354c1698c8d48 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Tue, 5 Dec 2023 00:35:47 -0500 Subject: [PATCH 111/338] add recipient registry task --- contracts/tasks/deployRecipientRegistry.ts | 76 ++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 contracts/tasks/deployRecipientRegistry.ts diff --git a/contracts/tasks/deployRecipientRegistry.ts b/contracts/tasks/deployRecipientRegistry.ts new file mode 100644 index 000000000..0a8662585 --- /dev/null +++ b/contracts/tasks/deployRecipientRegistry.ts @@ -0,0 +1,76 @@ +/** + * Deploy a new recipient registry + * + * Sample usage: + * + * yarn hardhat deploy-recipient-registry \ + * --network arbitrum-goerli \ + * --factory 0x85802c7871e7e778Ec376F097b56BD7299250b8D \ + * --type optimistic + */ +import { task, types } from 'hardhat/config' +import { Contract } from 'ethers' + +// Number.MAX_SAFE_INTEGER - 1 +const challengePeriodSeconds = 9007199254740990 + +task('deploy-recipient-registry', 'Deploy a new recipient registry') + .addParam('factory', 'The funding round factory contract address') + .addParam( + 'type', + 'The recipient registry type, e.g. simple, optimistic', + 'optimistic' + ) + .addOptionalParam( + 'deposit', + 'The base deposit for optimistic recipient registry', + '0.001' + ) + .addOptionalParam( + 'challengePeriod', + 'The challenge period in seconds for optimistic recipient registry', + challengePeriodSeconds, + types.int + ) + .setAction( + async ({ factory, type, deposit, challengePeriod }, { ethers }) => { + const [deployer] = await ethers.getSigners() + const fundingRoundFactory = await ethers.getContractAt( + 'FundingRoundFactory', + factory + ) + + let recipientRegistry: Contract + if (type === 'simple') { + const SimpleRecipientRegistry = await ethers.getContractFactory( + 'SimpleRecipientRegistry', + deployer + ) + recipientRegistry = await SimpleRecipientRegistry.deploy( + fundingRoundFactory.address + ) + } else if (type === 'optimistic') { + const OptimisticRecipientRegistry = await ethers.getContractFactory( + 'OptimisticRecipientRegistry', + deployer + ) + recipientRegistry = await OptimisticRecipientRegistry.deploy( + ethers.utils.parseUnits(deposit), + challengePeriod, + fundingRoundFactory.address + ) + } else { + throw new Error('unsupported recipient registry type') + } + + await recipientRegistry.deployTransaction.wait() + console.log(`Recipient registry deployed: ${recipientRegistry.address}`) + + const setRecipientRegistryTx = + await fundingRoundFactory.setRecipientRegistry( + recipientRegistry.address + ) + await setRecipientRegistryTx.wait() + console.log('Done!') + } + ) From 952b8c469d3cb1ee3886d0bbb618816434df9460 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Tue, 5 Dec 2023 00:50:19 -0500 Subject: [PATCH 112/338] fix action name --- .github/workflows/mantle_new_recipient_registry.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/mantle_new_recipient_registry.yml b/.github/workflows/mantle_new_recipient_registry.yml index d922731c8..6bd0e3ef0 100644 --- a/.github/workflows/mantle_new_recipient_registry.yml +++ b/.github/workflows/mantle_new_recipient_registry.yml @@ -1,4 +1,4 @@ -name: Mantle testnet - Create new round +name: Mantle testnet - New Recipient Registry on: workflow_dispatch: From fd9a03e777c497309eab76be00b71f2e73deeb48 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Tue, 5 Dec 2023 00:58:55 -0500 Subject: [PATCH 113/338] fix action job and task description --- .github/workflows/mantle_new_recipient_registry.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/mantle_new_recipient_registry.yml b/.github/workflows/mantle_new_recipient_registry.yml index 6bd0e3ef0..d2d65b8e9 100644 --- a/.github/workflows/mantle_new_recipient_registry.yml +++ b/.github/workflows/mantle_new_recipient_registry.yml @@ -21,7 +21,7 @@ env: WALLET_PRIVATE_KEY: ${{ secrets.MANTLE_TESTNET_COORDINATOR_WALLET_PRIVATE_KEY }} jobs: - create-new-round: + new-recipient-registry: runs-on: ubuntu-22.04 steps: - name: Use Node.js ${{ env.NODE_VERSION }} @@ -33,7 +33,7 @@ jobs: - name: Build CLR run: | yarn && yarn build - - name: Run create new round script + - name: Create new recipient registry run: | cd contracts export FACTORY_ADDRESS="${{ github.event.inputs.factory }}" From 0285acb0c4c65c4bee83241ea3e4a5121385456f Mon Sep 17 00:00:00 2001 From: yuetloo Date: Tue, 9 Jan 2024 15:21:44 -0500 Subject: [PATCH 114/338] test with maci version 0.0.0-ci.45668db --- common/package.json | 4 +- common/src/keypair.ts | 6 +- common/src/utils.ts | 10 +-- yarn.lock | 143 +++++++++++++++++++++++++++++++++++++++--- 4 files changed, 145 insertions(+), 18 deletions(-) diff --git a/common/package.json b/common/package.json index 02a5d6773..7c5eae689 100644 --- a/common/package.json +++ b/common/package.json @@ -16,8 +16,8 @@ "dependencies": { "@openzeppelin/merkle-tree": "^1.0.5", "ethers": "^5.7.2", - "@clrfund/maci-crypto": "^1.1.7", - "@clrfund/maci-domainobjs": "^1.1.7" + "maci-crypto": "0.0.0-ci.45668db", + "maci-domainobjs": "0.0.0-ci.45668db" }, "repository": { "type": "git", diff --git a/common/src/keypair.ts b/common/src/keypair.ts index 5434b01e6..78cdd0fe4 100644 --- a/common/src/keypair.ts +++ b/common/src/keypair.ts @@ -1,9 +1,5 @@ import { utils, BigNumber } from 'ethers' -import { - Keypair as MaciKeypair, - PrivKey, - PubKey, -} from '@clrfund/maci-domainobjs' +import { Keypair as MaciKeypair, PrivKey, PubKey } from 'maci-domainobjs' const SNARK_FIELD_SIZE = BigInt( '21888242871839275222246405745257275088548364400416034343698204186575808495617' diff --git a/common/src/utils.ts b/common/src/utils.ts index 02c610f54..db87790ec 100644 --- a/common/src/utils.ts +++ b/common/src/utils.ts @@ -1,13 +1,14 @@ import { BigNumber } from 'ethers' import { + genTreeCommitment as genTallyResultCommitment, genRandomSalt, IncrementalQuinTree, hashLeftRight, hash5, hash3, hash2, -} from '@clrfund/maci-crypto' -import { PubKey, PCommand, Message } from '@clrfund/maci-domainobjs' +} from 'maci-crypto' +import { PubKey, PCommand, Message } from 'maci-domainobjs' import { Keypair } from './keypair' import { utils } from 'ethers' import { Tally } from './tally' @@ -141,7 +142,7 @@ export function getPubKeyId(pubKey: PubKey): string { * @parm salt A random salt * @return The hash of the results and the salt, with the salt last */ -export function genTallyResultCommitment( +/*export function genTallyResultCommitment( results: bigint[], salt: bigint, depth: number @@ -151,9 +152,10 @@ export function genTallyResultCommitment( tree.insert(result) } return hashLeftRight(tree.root, salt) -} +}*/ export { + genTallyResultCommitment, Message, PCommand as Command, IncrementalQuinTree, diff --git a/yarn.lock b/yarn.lock index c05880e57..0f132b880 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7,6 +7,11 @@ resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== +"@adraffy/ens-normalize@1.10.0": + version "1.10.0" + resolved "https://registry.yarnpkg.com/@adraffy/ens-normalize/-/ens-normalize-1.10.0.tgz#d2a39395c587e092d77cbbc80acf956a54f38bf7" + integrity sha512-nA9XHtlAkYfJxY7bce8DcN7eKxWWCWkU+1GR9d+U6MbNpfwQp8TI7vqOsBsMcHoT4mBu2kypKoSKnghEzOOq5Q== + "@alloc/quick-lru@^5.2.0": version "5.2.0" resolved "https://registry.yarnpkg.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz#7bf68b20c0a350f936915fcae06f58e32007ce30" @@ -2959,6 +2964,13 @@ dependencies: "@noble/hashes" "1.3.1" +"@noble/curves@1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.2.0.tgz#92d7e12e4e49b23105a2555c6984d41733d65c35" + integrity sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw== + dependencies: + "@noble/hashes" "1.3.2" + "@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" @@ -2969,7 +2981,7 @@ resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.1.tgz#8831ef002114670c603c458ab8b11328406953a9" integrity sha512-EbqwksQwz9xDRGfDST86whPBgM65E0OH/pCgqW0GBVzO22bNE+NuIbeTb714+IfSjU3aRk47EUvXIb5bTsenKA== -"@noble/hashes@~1.3.0", "@noble/hashes@~1.3.1": +"@noble/hashes@1.3.2", "@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== @@ -4630,6 +4642,11 @@ dependencies: undici-types "~5.26.4" +"@types/node@18.15.13": + version "18.15.13" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.13.tgz#f64277c341150c979e42b00e4ac289290c9df469" + integrity sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q== + "@types/node@^10.0.3": version "10.17.60" resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" @@ -5501,6 +5518,40 @@ resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== +"@zk-kit/baby-jubjub@0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@zk-kit/baby-jubjub/-/baby-jubjub-0.1.0.tgz#a54515763b64c9eec3de10fafb44177021dac826" + integrity sha512-oeTAT3gtam1qICNqb7aqCqZiFA9FP8zhFzwB51nhCfufIZvGGKDKWofRseZEpD8+fKoLTwU59aBNmAPTnvSdyg== + dependencies: + "@zk-kit/utils" "0.1.0" + +"@zk-kit/baby-jubjub@0.1.1", "@zk-kit/baby-jubjub@^0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@zk-kit/baby-jubjub/-/baby-jubjub-0.1.1.tgz#8da922d1c0138ca8668c6ba1134ec04f51b24804" + integrity sha512-eWpUSpKKpllGZXE6mdS1IVuegRjY2Yu+3Qccyfg0+gMI8+p0ruioMM/MCK3tg2lRIUJTVd+16UghVcK0145yWg== + dependencies: + "@zk-kit/utils" "0.1.0" + +"@zk-kit/eddsa-poseidon@^0.5.1": + version "0.5.1" + resolved "https://registry.yarnpkg.com/@zk-kit/eddsa-poseidon/-/eddsa-poseidon-0.5.1.tgz#7fef431f441f5385f82e6005cdf83d72d298e8c2" + integrity sha512-sPyoyjwg9EZ+tHLGxOG+FDj9XJK1knVjm27nTMV4ZSiQIf0427QWnLhOk7b6zMvFmEpBWTG9gneJ5pr3jzJ4zg== + dependencies: + "@zk-kit/baby-jubjub" "0.1.1" + "@zk-kit/utils" "0.1.0" + +"@zk-kit/poseidon-cipher@^0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@zk-kit/poseidon-cipher/-/poseidon-cipher-0.1.1.tgz#9e0e006ac6a0a08c7ef7ad40a882a2cbc29a700f" + integrity sha512-EPAuUrOCWBqSDPdUihaQ6bvFLulHsLDe4ViSHmnhLf1Ydyd7hQie8NDEdvNewpuv0ub9aLB+r1+Ev8Afv94RtA== + dependencies: + "@zk-kit/baby-jubjub" "0.1.0" + +"@zk-kit/utils@0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@zk-kit/utils/-/utils-0.1.0.tgz#6c134c22541efc6e634d4a89884c8bfe209b2da1" + integrity sha512-MZmuw2w2StB7XOSNg1TW4VwnBJ746UDmdXTvxwDO/U85UZfGfM3zb53gG35qz5sWpQo/DjfoKqaScmh6HUtQpA== + JSONStream@1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.2.tgz#c102371b6ec3a7cf3b847ca00c20bb0fce4c6dea" @@ -5661,6 +5712,11 @@ aes-js@3.0.0: resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d" integrity sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw== +aes-js@4.0.0-beta.5: + version "4.0.0-beta.5" + resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-4.0.0-beta.5.tgz#8d2452c52adedebc3a3e28465d858c11ca315873" + integrity sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q== + aes-js@^3.1.1: version "3.1.2" resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.1.2.tgz#db9aabde85d5caabbfc0d4f2a4446960f627146a" @@ -7397,6 +7453,7 @@ buffer-from@^1.0.0: integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== "buffer-polyfill@npm:buffer@^6.0.3", buffer@^6.0.1, buffer@^6.0.3: + name buffer-polyfill version "6.0.3" resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== @@ -7978,9 +8035,20 @@ circomlib@^2.0.0, circomlib@^2.0.5: ffjavascript "0.1.0" web3-utils "^1.3.0" -"circomlib@git+https://github.com/weijiekoh/circomlib.git#ac85e82c1914d47789e2032fb11ceb2cfdd38a2b": +"circomlib@https://github.com/weijiekoh/circomlib#ac85e82c1914d47789e2032fb11ceb2cfdd38a2b": version "1.0.0" - resolved "git+https://github.com/weijiekoh/circomlib.git#ac85e82c1914d47789e2032fb11ceb2cfdd38a2b" + resolved "https://github.com/weijiekoh/circomlib#ac85e82c1914d47789e2032fb11ceb2cfdd38a2b" + +"circomlib@https://github.com/weijiekoh/circomlib.git#24ed08eee0bb613b8c0135d66c1013bd9f78d50a": + version "0.5.2" + uid "24ed08eee0bb613b8c0135d66c1013bd9f78d50a" + resolved "https://github.com/weijiekoh/circomlib.git#24ed08eee0bb613b8c0135d66c1013bd9f78d50a" + dependencies: + blake-hash "^1.1.0" + blake2b "^2.1.3" + circom "0.5.45" + ffjavascript "0.1.0" + web3-utils "^1.3.0" circomlibjs@0.0.8: version "0.0.8" @@ -10594,7 +10662,7 @@ ethereumjs-wallet@0.6.5: utf8 "^3.0.0" uuid "^3.3.2" -ethers@^5.0.1, ethers@^5.0.2, ethers@^5.0.3, ethers@^5.4.7, ethers@^5.5.1, ethers@^5.5.2, ethers@^5.7.1, ethers@^5.7.2: +ethers@^5.0.1, ethers@^5.0.2, ethers@^5.0.3, ethers@^5.0.32, ethers@^5.4.7, ethers@^5.5.1, ethers@^5.5.2, ethers@^5.7.1, ethers@^5.7.2: version "5.7.2" resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.2.tgz#3a7deeabbb8c030d4126b24f84e525466145872e" integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg== @@ -10630,6 +10698,19 @@ ethers@^5.0.1, ethers@^5.0.2, ethers@^5.0.3, ethers@^5.4.7, ethers@^5.5.1, ether "@ethersproject/web" "5.7.1" "@ethersproject/wordlists" "5.7.0" +ethers@^6.9.2: + version "6.9.2" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-6.9.2.tgz#6f4632f62e2350fa8354ff28624027a175ef85a4" + integrity sha512-YpkrtILnMQz5jSEsJQRTpduaGT/CXuLnUIuOYzHA0v/7c8IX91m2J48wSKjzGL5L9J/Us3tLoUdb+OwE3U+FFQ== + dependencies: + "@adraffy/ens-normalize" "1.10.0" + "@noble/curves" "1.2.0" + "@noble/hashes" "1.3.2" + "@types/node" "18.15.13" + aes-js "4.0.0-beta.5" + tslib "2.4.0" + ws "8.5.0" + ethjs-unit@0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/ethjs-unit/-/ethjs-unit-0.1.6.tgz#c665921e476e87bce2a9d588a6fe0405b2c41699" @@ -11190,7 +11271,7 @@ ffjavascript@0.2.60: wasmcurves "0.2.2" web-worker "^1.2.0" -ffjavascript@^0.2.30, ffjavascript@^0.2.38, ffjavascript@^0.2.39, ffjavascript@^0.2.45, ffjavascript@^0.2.48, ffjavascript@^0.2.62: +ffjavascript@^0.2.30, ffjavascript@^0.2.38, ffjavascript@^0.2.39, ffjavascript@^0.2.45, ffjavascript@^0.2.48, ffjavascript@^0.2.57, ffjavascript@^0.2.62: version "0.2.62" resolved "https://registry.yarnpkg.com/ffjavascript/-/ffjavascript-0.2.62.tgz#f508dfe662a70181598ec5eb8ce5127eb342f624" integrity sha512-uJ7MTrdzhX/3f+hxn0XhdXbJCqYZJSBB6y2/ui4t21vKYVjyTMlU80pPXu40ir6qpqbrdzUeKdlOdJ0aFG9UNA== @@ -12061,9 +12142,9 @@ globby@^13.0.0, globby@^13.1.1: merge2 "^1.4.1" slash "^4.0.0" -"gluegun@git+https://github.com/edgeandnode/gluegun.git#v4.3.1-pin-colors-dep": +"gluegun@https://github.com/edgeandnode/gluegun#v4.3.1-pin-colors-dep": version "4.3.1" - resolved "git+https://github.com/edgeandnode/gluegun.git#b34b9003d7bf556836da41b57ef36eb21570620a" + resolved "https://github.com/edgeandnode/gluegun#b34b9003d7bf556836da41b57ef36eb21570620a" dependencies: apisauce "^1.0.1" app-module-path "^2.2.0" @@ -15344,6 +15425,35 @@ maci-common@^1.1.2: resolved "https://registry.yarnpkg.com/maci-common/-/maci-common-1.1.2.tgz#8105633d2425a3ce7cf7b3d6700cf82987287b08" integrity sha512-KFaKDT6+QlfAX3B3EZVmitdQ2SD76qouQneFwm7OFfu4lF4RWWEak8J4F/lbS8fqJ1wG4PGTgTv7H9swJycCBw== +maci-crypto@0.0.0-ci.45668db: + version "0.0.0-ci.45668db" + resolved "https://registry.yarnpkg.com/maci-crypto/-/maci-crypto-0.0.0-ci.45668db.tgz#8bf1f3358f8fb8e649063cfe7db2bd5827a4fd04" + integrity sha512-t6q/Z33PI6TIV3Cnrgecl8DbVPB3XDh+2npUV2mZzSnaXo+uBQzRLLna5o0Pb3z40Ado1Cs+dqo11/sVRf09dQ== + dependencies: + "@zk-kit/baby-jubjub" "^0.1.1" + "@zk-kit/eddsa-poseidon" "^0.5.1" + "@zk-kit/poseidon-cipher" "^0.1.1" + ethers "^6.9.2" + optimisedmt "^0.0.9" + +maci-crypto@^0.0.0-ci.45668db: + version "0.0.0-ci.faa76ca" + resolved "https://registry.yarnpkg.com/maci-crypto/-/maci-crypto-0.0.0-ci.faa76ca.tgz#91391760aa9a72bedb281a080740bb814b513667" + integrity sha512-9tMtZrzLo5ePG+/vmghXOeM9tMamdebBofmNIahMVJFlHh2aGevx0GdCfD8dm7igSzNk7UNyPwryLZ4kYIsTTg== + dependencies: + blake-hash "^1.1.0" + circomlib "https://github.com/weijiekoh/circomlib.git#24ed08eee0bb613b8c0135d66c1013bd9f78d50a" + ethers "^5.0.32" + ffjavascript "^0.2.57" + optimisedmt "^0.0.7" + +maci-domainobjs@0.0.0-ci.45668db: + version "0.0.0-ci.45668db" + resolved "https://registry.yarnpkg.com/maci-domainobjs/-/maci-domainobjs-0.0.0-ci.45668db.tgz#36dcda808a9d6004e38e6dbc9583328ea26cd110" + integrity sha512-vyi5kllGYbwXoeZRrzvzFfWT2l+8qihRtrTeX11e2COFetgJeHEOqDd1Il+qrulDnNQMEgAuXAag3mnJmTMPCA== + dependencies: + maci-crypto "^0.0.0-ci.45668db" + macos-release@^3.1.0: version "3.2.0" resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-3.2.0.tgz#dcee82b6a4932971b1538dbf6f3aabc4a903b613" @@ -16942,6 +17052,15 @@ optimisedmt@^0.0.7: circomlibjs "0.0.8" ffjavascript "^0.2.39" +optimisedmt@^0.0.9: + version "0.0.9" + resolved "https://registry.yarnpkg.com/optimisedmt/-/optimisedmt-0.0.9.tgz#9830a1e1431d713aed0bd82342ea1b3584ebaaaa" + integrity sha512-NgpgliUnd8hY8HG3i+mUJ8n+g4zuv/GrcMQDciOZC8OEOYSiBr2gUlM/trnh28YFKKm0VInMECEOA6nr1swoEg== + dependencies: + assert "^2.0.0" + circomlibjs "0.0.8" + ffjavascript "^0.2.39" + optionator@^0.8.1: version "0.8.3" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" @@ -20788,6 +20907,11 @@ tslib@1.14.1, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== +tslib@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" + integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== + tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.5.0, tslib@^2.6.1, tslib@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" @@ -22593,6 +22717,11 @@ ws@8.13.0: resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA== +ws@8.5.0: + version "8.5.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.5.0.tgz#bfb4be96600757fe5382de12c670dab984a1ed4f" + integrity sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg== + ws@^3.0.0: version "3.3.3" resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" From 06199c047653a2b939193ece177447aae518934d Mon Sep 17 00:00:00 2001 From: yuetloo Date: Sat, 13 Jan 2024 22:48:38 -0500 Subject: [PATCH 115/338] upgrade ethers v5 to v6 temporary checkin --- common/package.json | 2 +- common/src/block.ts | 11 +- common/src/ipfs.ts | 6 +- common/src/keypair.ts | 24 +- common/src/proof.ts | 28 +- common/src/utils.ts | 49 +- common/tsconfig.json | 2 +- contracts/.gitignore | 1 + contracts/contracts/ClrFund.sol | 17 +- contracts/contracts/ClrFundDeployer.sol | 10 +- contracts/contracts/ExternalContacts.sol | 12 + contracts/contracts/FundingRound.sol | 36 +- contracts/contracts/MACIFactory.sol | 113 +- contracts/contracts/OwnableUpgradeable.sol | 2 +- contracts/e2e/index.ts | 87 +- contracts/hardhat.config.ts | 5 +- contracts/package.json | 44 +- contracts/tasks/auditTally.ts | 5 +- contracts/tests/deployer.ts | 390 ++-- contracts/tests/maciFactory.ts | 64 +- contracts/tests/recipientRegistry.ts | 292 +-- contracts/tests/round.ts | 663 +++---- contracts/tests/userRegistry.ts | 19 +- contracts/tests/userRegistryBrightId.ts | 93 +- contracts/tests/userRegistryMerkle.ts | 47 +- contracts/tests/userRegistrySnapshot.ts | 19 +- contracts/tsconfig.json | 11 +- contracts/utils/JSONFile.ts | 1 - .../utils/RecipientRegistryLogProcessor.ts | 40 +- contracts/utils/abi.ts | 24 +- contracts/utils/constants.ts | 8 +- contracts/utils/contracts.ts | 20 +- contracts/utils/date.ts | 11 +- contracts/utils/deployment.ts | 91 +- contracts/utils/file.ts | 5 + contracts/utils/ipfs.ts | 18 +- contracts/utils/maci.ts | 18 +- contracts/utils/maciParameters.ts | 8 +- contracts/utils/misc.ts | 2 - contracts/utils/parsers/BaseParser.ts | 18 +- .../parsers/KlerosRecipientAddedParser.ts | 20 +- .../parsers/KlerosRecipientRemovedParser.ts | 10 +- .../utils/parsers/RecipientAddedParser.ts | 11 +- .../utils/parsers/RecipientAddedV1Parser.ts | 11 +- .../utils/parsers/RecipientRemovedParser.ts | 10 +- .../utils/parsers/RecipientRemovedV1Parser.ts | 10 +- .../utils/parsers/RequestResolvedParser.ts | 12 +- .../utils/parsers/RequestSubmittedParser.ts | 9 +- contracts/utils/providers/BaseProvider.ts | 4 +- .../utils/providers/EtherscanProvider.ts | 11 +- contracts/utils/types.ts | 1 + vue-app/package.json | 2 +- vue-app/src/api/abi.ts | 4 +- vue-app/src/api/bright-id.ts | 13 +- vue-app/src/api/cart.ts | 5 +- vue-app/src/api/claims.ts | 4 +- vue-app/src/api/clrFund.ts | 11 +- vue-app/src/api/contributions.ts | 42 +- vue-app/src/api/core.ts | 9 +- vue-app/src/api/projects.ts | 19 +- vue-app/src/api/recipient-registry-kleros.ts | 26 +- .../src/api/recipient-registry-optimistic.ts | 13 +- vue-app/src/api/recipient-registry-simple.ts | 30 +- vue-app/src/api/recipient-registry.ts | 7 +- vue-app/src/api/round.ts | 50 +- vue-app/src/api/subgraph.ts | 2 +- vue-app/src/api/types.ts | 4 +- vue-app/src/api/user.ts | 19 +- vue-app/src/components/Cart.vue | 51 +- vue-app/src/components/ClaimButton.vue | 7 +- vue-app/src/components/ClaimModal.vue | 8 +- vue-app/src/components/ContributionModal.vue | 34 +- vue-app/src/components/FundsNeededWarning.vue | 5 +- .../src/components/LeaderboardDetailView.vue | 9 +- .../src/components/LeaderboardSimpleView.vue | 3 +- vue-app/src/components/MatchingFundsModal.vue | 18 +- vue-app/src/components/ReallocationModal.vue | 10 +- vue-app/src/components/RoundInformation.vue | 5 +- vue-app/src/components/TransactionModal.vue | 2 +- vue-app/src/components/WalletWidget.vue | 3 +- vue-app/src/components/WithdrawalModal.vue | 5 +- vue-app/src/lambda/sponsor.js | 8 +- vue-app/src/stores/app.ts | 7 +- vue-app/src/stores/user.ts | 14 +- vue-app/src/stores/wallet/index.ts | 6 +- vue-app/src/stores/wallet/types.ts | 4 +- vue-app/src/utils/accounts.ts | 7 +- vue-app/src/utils/amounts.ts | 10 +- vue-app/src/utils/contracts.ts | 4 +- vue-app/src/views/JoinLanding.vue | 5 +- vue-app/src/views/RecipientRegistry.vue | 2 +- yarn.lock | 1667 +++++++++-------- 92 files changed, 2379 insertions(+), 2200 deletions(-) create mode 100644 contracts/contracts/ExternalContacts.sol diff --git a/common/package.json b/common/package.json index 7c5eae689..225880483 100644 --- a/common/package.json +++ b/common/package.json @@ -15,7 +15,7 @@ }, "dependencies": { "@openzeppelin/merkle-tree": "^1.0.5", - "ethers": "^5.7.2", + "ethers": "^6.9.2", "maci-crypto": "0.0.0-ci.45668db", "maci-domainobjs": "0.0.0-ci.45668db" }, diff --git a/common/src/block.ts b/common/src/block.ts index fd00cf3f4..5ee2db782 100644 --- a/common/src/block.ts +++ b/common/src/block.ts @@ -1,4 +1,4 @@ -import { providers, utils } from 'ethers' +import { type JsonRpcProvider, toQuantity } from 'ethers' export interface Block { blockNumber: number @@ -6,14 +6,17 @@ export interface Block { stateRoot: string } -/* +/** * get the block stateRoot using eth_getBlockByHash + * @param blockNumber The block number + * @param provider the JSON rpc provider + * @returns the block information with block number, block hash and state root */ export async function getBlock( blockNumber: number, - provider: providers.JsonRpcProvider + provider: JsonRpcProvider ): Promise { - const blockNumberHex = utils.hexValue(blockNumber) + const blockNumberHex = toQuantity(blockNumber) const blockParams = [blockNumberHex, false] const rawBlock = await provider.send('eth_getBlockByNumber', blockParams) return { blockNumber, hash: rawBlock.hash, stateRoot: rawBlock.stateRoot } diff --git a/common/src/ipfs.ts b/common/src/ipfs.ts index 4254607e8..84e864c92 100644 --- a/common/src/ipfs.ts +++ b/common/src/ipfs.ts @@ -1,4 +1,4 @@ -import { utils } from 'ethers' +import { FetchRequest } from 'ethers' const IPFS_BASE_URL = 'https://ipfs.io' @@ -13,6 +13,6 @@ export async function getIpfsContent( gatewayUrl = IPFS_BASE_URL ): Promise { const url = `${gatewayUrl}/ipfs/${hash}` - const result = utils.fetchJson(url) - return result + const req = new FetchRequest(url) + return req.send() } diff --git a/common/src/keypair.ts b/common/src/keypair.ts index 78cdd0fe4..8e02ab52f 100644 --- a/common/src/keypair.ts +++ b/common/src/keypair.ts @@ -1,4 +1,4 @@ -import { utils, BigNumber } from 'ethers' +import { keccak256, isBytesLike, concat, toBeArray } from 'ethers' import { Keypair as MaciKeypair, PrivKey, PubKey } from 'maci-domainobjs' const SNARK_FIELD_SIZE = BigInt( @@ -8,7 +8,7 @@ const SNARK_FIELD_SIZE = BigInt( /** * Returns a BabyJub-compatible value. This function is modified from * the MACI's genRandomBabyJubValue(). Instead of returning random value - * for the private key, it derives the private key from the users', + * for the private key, it derives the private key from the users * signature hash * @param hash - user's signature hash */ @@ -16,28 +16,22 @@ function genPrivKey(hash: string): PrivKey { // Prevent modulo bias //const lim = BigInt('0x10000000000000000000000000000000000000000000000000000000000000000') //const min = (lim - SNARK_FIELD_SIZE) % SNARK_FIELD_SIZE - const min = BigNumber.from( + const min = BigInt( '6350874878119819312338956282401532410528162663560392320966563075034087161851' ) - if (!utils.isBytesLike(hash)) { + if (!isBytesLike(hash)) { throw new Error(`Hash must be a hex string: ${hash}`) } - let hashBN = BigNumber.from(hash) + let hashBN = BigInt(hash) // don't think we'll enter the for loop below, but, just in case - for (let counter = 1; min.gte(hashBN); counter++) { - const data = utils.concat([hashBN.toHexString(), utils.arrayify(counter)]) - hashBN = BigNumber.from(utils.keccak256(data)) - } - - const rawPrivKey = BigInt(hashBN.toString()) % SNARK_FIELD_SIZE - if (rawPrivKey >= SNARK_FIELD_SIZE) { - throw new Error( - `privKey ${rawPrivKey} must be less than SNARK_FIELD_SIZE ${SNARK_FIELD_SIZE}` - ) + for (let counter = 1; hashBN < min; counter++) { + const data = concat([toBeArray(hashBN), toBeArray(counter)]) + hashBN = BigInt(keccak256(data)) } + const rawPrivKey = hashBN % SNARK_FIELD_SIZE return new PrivKey(rawPrivKey) } diff --git a/common/src/proof.ts b/common/src/proof.ts index 5cac6127f..827969a43 100644 --- a/common/src/proof.ts +++ b/common/src/proof.ts @@ -1,4 +1,13 @@ -import { utils, providers } from 'ethers' +import { + keccak256, + concat, + encodeRlp, + decodeRlp, + zeroPadValue, + type JsonRpcProvider, + toQuantity, + toBeHex, +} from 'ethers' /** * RLP encode the proof returned from eth_getProof @@ -6,9 +15,9 @@ import { utils, providers } from 'ethers' * @returns */ export function rlpEncodeProof(proof: string[]) { - const decodedProof = proof.map((node: string) => utils.RLP.decode(node)) + const decodedProof = proof.map((node: string) => decodeRlp(node)) - return utils.RLP.encode(decodedProof) + return encodeRlp(decodedProof) } /** @@ -18,12 +27,7 @@ export function rlpEncodeProof(proof: string[]) { * @returns storage key used in the eth_getProof params */ export function getStorageKey(account: string, slotIndex: number) { - return utils.keccak256( - utils.concat([ - utils.hexZeroPad(account, 32), - utils.hexZeroPad(utils.hexValue(slotIndex), 32), - ]) - ) + return keccak256(concat([zeroPadValue(account, 32), toBeHex(slotIndex, 32)])) } /** @@ -33,7 +37,7 @@ export function getStorageKey(account: string, slotIndex: number) { */ async function getProof( params: Array, - provider: providers.JsonRpcProvider + provider: JsonRpcProvider ): Promise { try { const proof = await provider.send('eth_getProof', params) @@ -56,7 +60,7 @@ async function getProof( export async function getAccountProof( token: string, blockHash: string, - provider: providers.JsonRpcProvider + provider: JsonRpcProvider ): Promise { const params = [token, [], blockHash] return getProof(params, provider) @@ -76,7 +80,7 @@ export async function getStorageProof( blockHash: string, userAccount: string, storageSlotIndex: number, - provider: providers.JsonRpcProvider + provider: JsonRpcProvider ): Promise { const storageKey = getStorageKey(userAccount, storageSlotIndex) diff --git a/common/src/utils.ts b/common/src/utils.ts index db87790ec..86dbc8dbf 100644 --- a/common/src/utils.ts +++ b/common/src/utils.ts @@ -1,4 +1,4 @@ -import { BigNumber } from 'ethers' +import { id } from 'ethers' import { genTreeCommitment as genTallyResultCommitment, genRandomSalt, @@ -10,7 +10,6 @@ import { } from 'maci-crypto' import { PubKey, PCommand, Message } from 'maci-domainobjs' import { Keypair } from './keypair' -import { utils } from 'ethers' import { Tally } from './tally' const LEAVES_PER_NODE = 5 @@ -28,18 +27,18 @@ interface MerkleProof { leaf: Leaf } -export function bnSqrt(a: BigNumber): BigNumber { +export function bnSqrt(a: bigint): bigint { // Take square root from a big number // https://stackoverflow.com/a/52468569/1868395 - if (a.isZero()) { + if (a === 0n) { return a } - let x - let x1 = a.div(2) + let x: bigint + let x1 = a / 2n do { x = x1 - x1 = x.add(a.div(x)).div(2) - } while (!x.eq(x1)) + x1 = (x + a / x) / 2n + } while (x !== x1) return x } @@ -49,7 +48,7 @@ export function createMessage( newUserKeypair: Keypair | null, coordinatorPubKey: PubKey, voteOptionIndex: number | null, - voiceCredits: BigNumber | null, + voiceCredits: bigint | null, nonce: number, pollId: bigint, salt?: bigint @@ -59,15 +58,13 @@ export function createMessage( salt = genRandomSalt() as bigint } - const quadraticVoteWeight = voiceCredits - ? bnSqrt(voiceCredits) - : BigNumber.from(0) + const quadraticVoteWeight = voiceCredits ? bnSqrt(voiceCredits) : 0n const command = new PCommand( BigInt(userStateIndex), encKeypair.pubKey, BigInt(voteOptionIndex || 0), - BigInt(quadraticVoteWeight.toString()), + quadraticVoteWeight, BigInt(nonce), pollId, salt @@ -127,33 +124,9 @@ export function getRecipientClaimData( */ export function getPubKeyId(pubKey: PubKey): string { const pubKeyPair = pubKey.asContractParam() - const id = utils.id(pubKeyPair.x + '.' + pubKeyPair.y) - return id + return id(pubKeyPair.x + '.' + pubKeyPair.y) } -/* - * This function was copied from MACI to work around tree shaking not working - * https://github.com/privacy-scaling-explorations/maci/blob/master/core/ts/MaciState.ts#L1581 - * - * A helper function which hashes a list of results with a salt and returns the - * hash. - * - * @param results A list of vote weights - * @parm salt A random salt - * @return The hash of the results and the salt, with the salt last - */ -/*export function genTallyResultCommitment( - results: bigint[], - salt: bigint, - depth: number -): bigint { - const tree = new IncrementalQuinTree(depth, BigInt(0), 5, hash5) - for (const result of results) { - tree.insert(result) - } - return hashLeftRight(tree.root, salt) -}*/ - export { genTallyResultCommitment, Message, diff --git a/common/tsconfig.json b/common/tsconfig.json index 957cdc1a2..fbc095746 100644 --- a/common/tsconfig.json +++ b/common/tsconfig.json @@ -12,7 +12,7 @@ "sourceMap": true, "strict": true, "outDir": "./build", - "target": "es2018", + "target": "es2020", "esModuleInterop": true, "module": "commonjs", "declaration": true diff --git a/contracts/.gitignore b/contracts/.gitignore index 0f8b3e642..918515f71 100644 --- a/contracts/.gitignore +++ b/contracts/.gitignore @@ -9,3 +9,4 @@ tally.json .DS_Store addresses.txt proof_output +typechain-types diff --git a/contracts/contracts/ClrFund.sol b/contracts/contracts/ClrFund.sol index eaf988db7..3903cd51b 100644 --- a/contracts/contracts/ClrFund.sol +++ b/contracts/contracts/ClrFund.sol @@ -6,10 +6,11 @@ import '@openzeppelin/contracts/token/ERC20/ERC20.sol'; import '@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol'; import '@openzeppelin/contracts/utils/structs/EnumerableSet.sol'; -import {SignUpGatekeeper} from "@clrfund/maci-contracts/contracts/gatekeepers/SignUpGatekeeper.sol"; -import {InitialVoiceCreditProxy} from "@clrfund/maci-contracts/contracts/initialVoiceCreditProxy/InitialVoiceCreditProxy.sol"; -import {PollFactory} from '@clrfund/maci-contracts/contracts/Poll.sol'; -import {Params} from '@clrfund/maci-contracts/contracts/Params.sol'; +import {SignUpGatekeeper} from "maci-contracts/contracts/gatekeepers/SignUpGatekeeper.sol"; +import {InitialVoiceCreditProxy} from "maci-contracts/contracts/initialVoiceCreditProxy/InitialVoiceCreditProxy.sol"; +import {PollFactory} from 'maci-contracts/contracts/PollFactory.sol'; +import {Params} from 'maci-contracts/contracts/utilities/Params.sol'; +import {DomainObjs} from 'maci-contracts/contracts/utilities/DomainObjs.sol'; import './MACIFactory.sol'; import './userRegistry/IUserRegistry.sol'; @@ -19,7 +20,7 @@ import './OwnableUpgradeable.sol'; import {FundingRoundFactory} from './FundingRoundFactory.sol'; import {TopupToken} from './TopupToken.sol'; -contract ClrFund is OwnableUpgradeable, IPubKey, SnarkCommon, Params { +contract ClrFund is OwnableUpgradeable, DomainObjs, SnarkCommon, Params { using EnumerableSet for EnumerableSet.AddressSet; using SafeERC20 for ERC20; @@ -185,7 +186,7 @@ contract ClrFund is OwnableUpgradeable, IPubKey, SnarkCommon, Params { rounds.push(newRound); TopupToken topupToken = newRound.topupToken(); - MACI maci = maciFactory.deployMaci( + (MACI maci, address poll)= maciFactory.deployMaci( SignUpGatekeeper(newRound), InitialVoiceCreditProxy(newRound), address(topupToken), @@ -195,9 +196,7 @@ contract ClrFund is OwnableUpgradeable, IPubKey, SnarkCommon, Params { ); newRound.setMaci(maci); - - // since we just created a new MACI, the first poll id starts from 0 - newRound.setPoll(0); + newRound.setPoll(poll); emit RoundStarted(address(newRound)); } diff --git a/contracts/contracts/ClrFundDeployer.sol b/contracts/contracts/ClrFundDeployer.sol index 8db5bc7fd..12fa47943 100644 --- a/contracts/contracts/ClrFundDeployer.sol +++ b/contracts/contracts/ClrFundDeployer.sol @@ -5,8 +5,8 @@ pragma solidity 0.8.10; import {MACIFactory} from './MACIFactory.sol'; import {ClrFund} from './ClrFund.sol'; import {CloneFactory} from './CloneFactory.sol'; -import {SignUpGatekeeper} from "@clrfund/maci-contracts/contracts/gatekeepers/SignUpGatekeeper.sol"; -import {InitialVoiceCreditProxy} from "@clrfund/maci-contracts/contracts/initialVoiceCreditProxy/InitialVoiceCreditProxy.sol"; +import {SignUpGatekeeper} from "maci-contracts/contracts/gatekeepers/SignUpGatekeeper.sol"; +import {InitialVoiceCreditProxy} from "maci-contracts/contracts/initialVoiceCreditProxy/InitialVoiceCreditProxy.sol"; import {Ownable} from '@openzeppelin/contracts/access/Ownable.sol'; contract ClrFundDeployer is CloneFactory, Ownable { @@ -61,13 +61,17 @@ contract ClrFundDeployer is CloneFactory, Ownable { function deployClrFund() public returns (address) { ClrFund clrfund = ClrFund(createClone(clrfundTemplate)); clrfund.init(maciFactory, roundFactory); + + // clrfund.init() set the owner to us, now transfer to the caller + clrfund.transferOwnership(msg.sender); + emit NewInstance(address(clrfund)); return address(clrfund); } /** - * @dev Register the clrfund instance of subgraph event processing + * @dev Register the clrfund instance for subgraph event processing * @param _clrFundAddress ClrFund address * @param _metadata Clrfund metadata */ diff --git a/contracts/contracts/ExternalContacts.sol b/contracts/contracts/ExternalContacts.sol new file mode 100644 index 000000000..491f6ab46 --- /dev/null +++ b/contracts/contracts/ExternalContacts.sol @@ -0,0 +1,12 @@ +// SPDX-License-Identifier: GPL-3.0 + +pragma solidity ^0.8.10; + +/* + * These imports are just for hardhat to find the contracts for deployment + * They are not used anywhere else + */ +import {PollFactory} from 'maci-contracts/contracts/PollFactory.sol'; +import {TallyFactory} from 'maci-contracts/contracts/TallyFactory.sol'; +import {SubsidyFactory} from 'maci-contracts/contracts/SubsidyFactory.sol'; +import {MessageProcessorFactory} from 'maci-contracts/contracts/MessageProcessorFactory.sol'; diff --git a/contracts/contracts/FundingRound.sol b/contracts/contracts/FundingRound.sol index a4f465a39..cedc25cc6 100644 --- a/contracts/contracts/FundingRound.sol +++ b/contracts/contracts/FundingRound.sol @@ -6,13 +6,13 @@ import '@openzeppelin/contracts/access/Ownable.sol'; import '@openzeppelin/contracts/token/ERC20/ERC20.sol'; import '@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol'; -import {DomainObjs} from '@clrfund/maci-contracts/contracts/DomainObjs.sol'; -import {MACI} from '@clrfund/maci-contracts/contracts/MACI.sol'; -import {Poll} from '@clrfund/maci-contracts/contracts/Poll.sol'; -import {Tally} from '@clrfund/maci-contracts/contracts/Tally.sol'; +import {DomainObjs} from 'maci-contracts/contracts/utilities/DomainObjs.sol'; +import {MACI} from 'maci-contracts/contracts/MACI.sol'; +import {Poll} from 'maci-contracts/contracts/Poll.sol'; +import {Tally} from 'maci-contracts/contracts/Tally.sol'; import {TopupToken} from './TopupToken.sol'; -import {SignUpGatekeeper} from "@clrfund/maci-contracts/contracts/gatekeepers/SignUpGatekeeper.sol"; -import {InitialVoiceCreditProxy} from "@clrfund/maci-contracts/contracts/initialVoiceCreditProxy/InitialVoiceCreditProxy.sol"; +import {SignUpGatekeeper} from "maci-contracts/contracts/gatekeepers/SignUpGatekeeper.sol"; +import {InitialVoiceCreditProxy} from "maci-contracts/contracts/initialVoiceCreditProxy/InitialVoiceCreditProxy.sol"; import './userRegistry/IUserRegistry.sol'; import './recipientRegistry/IRecipientRegistry.sol'; @@ -25,7 +25,7 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom error NotCoordinator(); error PollNotSet(); error TallyNotSet(); - error InvalidPollId(); + error InvalidPoll(); error InvalidTally(); error MaciAlreadySet(); error MaciNotSet(); @@ -86,9 +86,7 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom bool public isFinalized = false; bool public isCancelled = false; - uint256 public pollId; Poll public poll; - Tally public tally; address public coordinator; @@ -115,7 +113,7 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom event TallyPublished(string _tallyHash); event Voted(address indexed _contributor); event TallyResultsAdded(uint256 indexed _voteOptionIndex, uint256 _tally); - event PollSet(uint256 indexed _pollId, address indexed _poll); + event PollSet(address indexed _poll); event TallySet(address indexed _tally); modifier onlyCoordinator() { @@ -178,19 +176,18 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom /** * @dev Set the MACI poll - * @param _pollId The poll id. + * @param _poll The poll address. */ - function setPoll(uint256 _pollId) + function setPoll(address _poll) external onlyOwner { - poll = maci.getPoll(_pollId); - if (address(poll) == address(0)) { - revert InvalidPollId(); + if (_poll == address(0)) { + revert InvalidPoll(); } - pollId = _pollId; - emit PollSet(pollId, address(poll)); + poll = Poll(_poll); + emit PollSet(_poll); } /** @@ -471,7 +468,6 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom revert TallyHashNotPublished(); } - // make sure we have received all the tally results (,,, uint8 voteOptionTreeDepth) = poll.treeDepths(); uint256 totalResults = uint256(LEAVES_PER_NODE) ** uint256(voteOptionTreeDepth); @@ -616,7 +612,7 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom function _addTallyResult( uint256 _voteOptionIndex, uint256 _tallyResult, - uint256[][] calldata _tallyResultProof, + uint256[][] memory _tallyResultProof, uint256 _tallyResultSalt, uint256 _spentVoiceCreditsHash, uint256 _perVOSpentVoiceCreditsHash @@ -652,7 +648,6 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom /** * @dev Add and verify tally results by batch. - * @param _voteOptionTreeDepth Vote option tree depth. * @param _voteOptionIndices Vote option index. * @param _tallyResults The results of vote tally for the recipients. * @param _tallyResultProofs Proofs of correctness of the vote tally results. @@ -661,7 +656,6 @@ contract FundingRound is Ownable, SignUpGatekeeper, InitialVoiceCreditProxy, Dom * @param _perVOSpentVoiceCreditsHashes hashLeftRight(merkle root of the no spent voice credits per vote option, perVOSpentVoiceCredits salt) */ function addTallyResultsBatch( - uint8 _voteOptionTreeDepth, uint256[] calldata _voteOptionIndices, uint256[] calldata _tallyResults, uint256[][][] calldata _tallyResultProofs, diff --git a/contracts/contracts/MACIFactory.sol b/contracts/contracts/MACIFactory.sol index e633fead4..6c13429af 100644 --- a/contracts/contracts/MACIFactory.sol +++ b/contracts/contracts/MACIFactory.sol @@ -2,24 +2,39 @@ pragma solidity ^0.8.10; -import {MACI} from '@clrfund/maci-contracts/contracts/MACI.sol'; -import {Poll, PollFactory} from '@clrfund/maci-contracts/contracts/Poll.sol'; -import {SignUpGatekeeper} from '@clrfund/maci-contracts/contracts/gatekeepers/SignUpGatekeeper.sol'; -import {InitialVoiceCreditProxy} from '@clrfund/maci-contracts/contracts/initialVoiceCreditProxy/InitialVoiceCreditProxy.sol'; -import {TopupCredit} from '@clrfund/maci-contracts/contracts/TopupCredit.sol'; -import {VkRegistry} from '@clrfund/maci-contracts/contracts/VkRegistry.sol'; -import {SnarkCommon} from '@clrfund/maci-contracts/contracts/crypto/SnarkCommon.sol'; +import {MACI} from 'maci-contracts/contracts/MACI.sol'; +import {IPollFactory} from 'maci-contracts/contracts/interfaces/IPollFactory.sol'; +import {ITallySubsidyFactory} from 'maci-contracts/contracts/interfaces/ITallySubsidyFactory.sol'; +import {IMessageProcessorFactory} from 'maci-contracts/contracts/interfaces/IMPFactory.sol'; +import {SignUpGatekeeper} from 'maci-contracts/contracts/gatekeepers/SignUpGatekeeper.sol'; +import {InitialVoiceCreditProxy} from 'maci-contracts/contracts/initialVoiceCreditProxy/InitialVoiceCreditProxy.sol'; +import {TopupCredit} from 'maci-contracts/contracts/TopupCredit.sol'; +import {VkRegistry} from 'maci-contracts/contracts/VkRegistry.sol'; +import {Verifier} from 'maci-contracts/contracts/crypto/Verifier.sol'; +import {SnarkCommon} from 'maci-contracts/contracts/crypto/SnarkCommon.sol'; import {Ownable} from '@openzeppelin/contracts/access/Ownable.sol'; -import {Params} from '@clrfund/maci-contracts/contracts/Params.sol'; -import {IPubKey} from '@clrfund/maci-contracts/contracts/DomainObjs.sol'; - -contract MACIFactory is Ownable, Params, SnarkCommon, IPubKey { - // Constants - uint8 private constant VOTE_OPTION_TREE_BASE = 5; +import {Params} from 'maci-contracts/contracts/utilities/Params.sol'; +import {DomainObjs} from 'maci-contracts/contracts/utilities/DomainObjs.sol'; + +contract MACIFactory is Ownable, Params, SnarkCommon, DomainObjs { + + // all the factories used to create MACI contracts + struct Factories { + address pollFactory; + address tallyFactory; + // subsidyFactory is not currently used, it's just a place holder here + address subsidyFactory; + address messageProcessorFactory; + } - // State + // Verifying Key Registry containing circuit parameters VkRegistry public vkRegistry; - PollFactory public pollFactory; + // All the factory contracts used to deploy Poll, Tally, MessageProcessor, Subsidy + Factories public factories; + // verifier is used when creating Tally, MessageProcessor, Subsidy + Verifier public verifier; + + // circuit parameters uint8 public stateTreeDepth; TreeDepths public treeDepths; MaxValues public maxValues; @@ -35,13 +50,25 @@ contract MACIFactory is Ownable, Params, SnarkCommon, IPubKey { error TallyVkNotSet(); error InvalidVkRegistry(); error InvalidPollFactory(); - - constructor(address _vkRegistry, address _pollFactory) { + error InvalidTallyFactory(); + error InvalidSubsidyFactory(); + error InvalidMessageProcessorFactory(); + error InvalidVerifier(); + + constructor( + address _vkRegistry, + Factories memory _factories, + address _verifier + ) { if (_vkRegistry == address(0)) revert InvalidVkRegistry(); - if (_pollFactory == address(0)) revert InvalidPollFactory(); + if (_factories.pollFactory == address(0)) revert InvalidPollFactory(); + if (_factories.tallyFactory == address(0)) revert InvalidTallyFactory(); + if (_factories.messageProcessorFactory == address(0)) revert InvalidMessageProcessorFactory(); + if (_verifier == address(0)) revert InvalidVerifier(); vkRegistry = VkRegistry(_vkRegistry); - pollFactory = PollFactory(_pollFactory); + factories = _factories; + verifier = Verifier(_verifier); } /** @@ -60,7 +87,37 @@ contract MACIFactory is Ownable, Params, SnarkCommon, IPubKey { function setPollFactory(address _pollFactory) public onlyOwner { if (_pollFactory == address(0)) revert InvalidPollFactory(); - pollFactory = PollFactory(_pollFactory); + factories.pollFactory = _pollFactory; + } + + /** + * @dev set tally factory in MACI factory + * @param _tallyFactory tally factory + */ + function setTallyFactory(address _tallyFactory) public onlyOwner { + if (_tallyFactory == address(0)) revert InvalidTallyFactory(); + + factories.tallyFactory = _tallyFactory; + } + + /** + * @dev set message processor factory in MACI factory + * @param _messageProcessorFactory message processor factory + */ + function setMessageProcessorFactory(address _messageProcessorFactory) public onlyOwner { + if (_messageProcessorFactory == address(0)) revert InvalidMessageProcessorFactory(); + + factories.messageProcessorFactory = _messageProcessorFactory; + } + + /** + * @dev set verifier in MACI factory + * @param _verifier verifier contract + */ + function setVerifier(address _verifier) public onlyOwner { + if (_verifier == address(0)) revert InvalidVerifier(); + + verifier = Verifier(_verifier); } /** @@ -119,7 +176,7 @@ contract MACIFactory is Ownable, Params, SnarkCommon, IPubKey { PubKey calldata coordinatorPubKey ) external - returns (MACI _maci) + returns (MACI _maci, address _poll) { if (!vkRegistry.hasProcessVk( stateTreeDepth, @@ -139,14 +196,18 @@ contract MACIFactory is Ownable, Params, SnarkCommon, IPubKey { } _maci = new MACI( - pollFactory, + IPollFactory(factories.pollFactory), + IMessageProcessorFactory(factories.messageProcessorFactory), + ITallySubsidyFactory(factories.tallyFactory), + ITallySubsidyFactory(factories.subsidyFactory), signUpGatekeeper, - initialVoiceCreditProxy + initialVoiceCreditProxy, + TopupCredit(topupCredit), + stateTreeDepth ); - _maci.init(vkRegistry, TopupCredit(topupCredit)); - address poll = _maci.deployPoll(duration, maxValues, treeDepths, coordinatorPubKey); - Poll(poll).transferOwnership(coordinator); + _poll = _maci.deployPoll(duration, maxValues, treeDepths, coordinatorPubKey, address(verifier), address(vkRegistry), false); + Ownable(_poll).transferOwnership(coordinator); emit MaciDeployed(address(_maci)); } diff --git a/contracts/contracts/OwnableUpgradeable.sol b/contracts/contracts/OwnableUpgradeable.sol index 63d587c3a..3826e125a 100644 --- a/contracts/contracts/OwnableUpgradeable.sol +++ b/contracts/contracts/OwnableUpgradeable.sol @@ -65,7 +65,7 @@ abstract contract ContextUpgradeable is Initializable { function __Context_init_unchained() internal initializer { } function _msgSender() internal view virtual returns (address) { - return tx.origin; + return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { diff --git a/contracts/e2e/index.ts b/contracts/e2e/index.ts index 6e6983b17..9db942fa1 100644 --- a/contracts/e2e/index.ts +++ b/contracts/e2e/index.ts @@ -1,10 +1,15 @@ -/* eslint-disable @typescript-eslint/camelcase */ -import { ethers, waffle, config } from 'hardhat' -import { use, expect } from 'chai' -import { solidity } from 'ethereum-waffle' -import { BigNumber, Contract, Signer, Wallet } from 'ethers' -import { Keypair, createMessage, Message, PubKey } from '@clrfund/common' -import { genTallyResultCommitment } from '@clrfund/common' +import { ethers, config } from 'hardhat' +import { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers' +import { time } from '@nomicfoundation/hardhat-network-helpers' +import { expect } from 'chai' +import { Contract, Signer } from 'ethers' +import { + Keypair, + createMessage, + Message, + PubKey, + genTallyResultCommitment, +} from '@clrfund/common' import { UNIT } from '../utils/constants' import { getEventArg } from '../utils/contracts' @@ -29,9 +34,7 @@ import { MaciParameters } from '../utils/maciParameters' import { readFileSync, existsSync, mkdirSync } from 'fs' import path from 'path' -use(solidity) - -const ZERO = BigNumber.from(0) +const ZERO = BigInt(0) const DEFAULT_SR_QUEUE_OPS = 4 const roundDuration = 7 * 86400 @@ -43,7 +46,7 @@ const proofOutputDirectory = process.env.PROOF_OUTPUT_DIR || './proof_output' const tallyBatchSize = Number(process.env.TALLY_BATCH_SIZE || 8) let maciTransactionHash: string -const ALPHA_PRECISION = BigNumber.from(10).pow(18) +const ALPHA_PRECISION = BigInt(10) ** 18n const currentBlockTimestamp = async (provider: any): Promise => { const blockNum = await provider.getBlockNumber() @@ -51,11 +54,8 @@ const currentBlockTimestamp = async (provider: any): Promise => { return Number(block.timestamp) } -function sumVoiceCredits(voiceCredits: BigNumber[]): string { - const total = voiceCredits.reduce( - (sum, credits) => sum.add(credits), - BigNumber.from(0) - ) +function sumVoiceCredits(voiceCredits: bigint[]): string { + const total = voiceCredits.reduce((sum, credits) => sum + credits, BigInt(0)) return total.toString() } @@ -64,11 +64,11 @@ function sumVoiceCredits(voiceCredits: BigNumber[]): string { * recipientsVotes[i][j] is the jth vote received by recipient i * returns the tally result for each recipient */ -function tallyVotes(recipientsVotes: BigNumber[][]): BigNumber[] { +function tallyVotes(recipientsVotes: bigint[][]): bigint[] { const result = recipientsVotes.map((votes) => { return votes.reduce( - (sum, voiceCredits) => sum.add(bnSqrt(voiceCredits)), - BigNumber.from(0) + (sum, voiceCredits) => sum + bnSqrt(voiceCredits), + BigInt(0) ) }) return result @@ -81,18 +81,16 @@ function tallyVotes(recipientsVotes: BigNumber[][]): BigNumber[] { */ async function calculateClaims( fundingRound: Contract, - votes: BigNumber[][] -): Promise { + votes: bigint[][] +): Promise { const alpha = await fundingRound.alpha() const factor = await fundingRound.voiceCreditFactor() const tallyResult = tallyVotes(votes) return tallyResult.map((quadraticVotes, i) => { const spent = sumVoiceCredits(votes[i]) - const quadratic = quadraticVotes.mul(quadraticVotes).mul(factor).mul(alpha) - const linear = BigNumber.from(spent) - .mul(factor) - .mul(ALPHA_PRECISION.sub(alpha)) - return quadratic.add(linear).div(ALPHA_PRECISION) + const quadratic = quadraticVotes * quadraticVotes * factor * alpha + const linear = BigInt(spent) * factor * (ALPHA_PRECISION - alpha) + return (quadratic + linear) / ALPHA_PRECISION }) } @@ -100,16 +98,14 @@ describe('End-to-end Tests', function () { this.timeout(60 * 60 * 1000) this.bail(true) - const provider = waffle.provider - - let deployer: Signer - let coordinator: Wallet - let poolContributor1: Signer - let poolContributor2: Signer - let recipient1: Signer - let recipient2: Signer - let recipient3: Signer - let contributors: Signer[] + let deployer: HardhatEthersSigner + let coordinator: HardhatEthersSigner + let poolContributor1: HardhatEthersSigner + let poolContributor2: HardhatEthersSigner + let recipient1: HardhatEthersSigner + let recipient2: HardhatEthersSigner + let recipient3: HardhatEthersSigner + let contributors: HardhatEthersSigner[] let poseidonLibraries: { [key: string]: string } let userRegistry: Contract @@ -175,11 +171,7 @@ describe('End-to-end Tests', function () { const transferTx = await maciFactory.transferOwnership(clrfund.address) await transferTx.wait() - const SimpleUserRegistry = await ethers.getContractFactory( - 'SimpleUserRegistry', - deployer - ) - userRegistry = await SimpleUserRegistry.deploy() + userRegistry = await ethers.deployContract('SimpleUserRegistry', deployer) await clrfund.setUserRegistry(userRegistry.address) const SimpleRecipientRegistry = await ethers.getContractFactory( 'SimpleRecipientRegistry', @@ -259,12 +251,11 @@ describe('End-to-end Tests', function () { }) async function timeTravel(duration: number) { - const currentTime = await currentBlockTimestamp(provider) - await provider.send('evm_increaseTime', [duration + currentTime]) - await provider.send('evm_mine') + const currentTime = await time.latest() + await time.increase(duration + currentTime) } - async function makeContributions(amounts: BigNumber[]) { + async function makeContributions(amounts: bigint[]) { const contributions: { [key: string]: any }[] = [] for (let index = 0; index < contributors.length; index++) { const contributionAmount = amounts[index] @@ -393,7 +384,7 @@ describe('End-to-end Tests', function () { ) // Claim funds - const claims: { [index: number]: BigNumber } = {} + const claims: { [index: number]: bigint } = {} for (const recipientIndex of [1, 2]) { const recipient = recipientIndex === 1 ? recipient1 : recipient2 @@ -845,7 +836,7 @@ describe('End-to-end Tests', function () { null, coordinatorKeypair.pubKey, 1, - BigNumber.from(0), + BigInt(0), 2, pollId ) @@ -896,7 +887,7 @@ describe('End-to-end Tests', function () { expect(tally.totalSpentVoiceCredits.spent).to.equal( expectedTotalVoiceCredits ) - expect(claims[1]).to.equal(BigNumber.from(0)) + expect(claims[1]).to.equal(BigInt(0)) const expectedClaims = await calculateClaims(fundingRound, [ [contribution.voiceCredits, contribution2.voiceCredits], diff --git a/contracts/hardhat.config.ts b/contracts/hardhat.config.ts index 8a7d3a827..bc24ec1b8 100644 --- a/contracts/hardhat.config.ts +++ b/contracts/hardhat.config.ts @@ -4,10 +4,9 @@ import dotenv from 'dotenv' import { TASK_COMPILE_SOLIDITY_GET_SOURCE_PATHS } from 'hardhat/builtin-tasks/task-names' import { subtask, task } from 'hardhat/config' -import '@nomiclabs/hardhat-waffle' +import '@nomicfoundation/hardhat-toolbox' import '@nomiclabs/hardhat-ganache' import 'hardhat-contract-sizer' -import '@nomiclabs/hardhat-etherscan' import './tasks' dotenv.config() @@ -181,7 +180,7 @@ task( const artifact = JSON.parse( fs .readFileSync( - `./node_modules/@clrfund/maci-contracts/artifacts/contracts/crypto/Hasher.sol/${contractName}.json` + `./node_modules/maci-contracts/artifacts/contracts/crypto/${contractName}.sol/${contractName}.json` ) .toString() ) diff --git a/contracts/package.json b/contracts/package.json index 9504ec3eb..78db9be0a 100644 --- a/contracts/package.json +++ b/contracts/package.json @@ -16,38 +16,38 @@ "clean": "rm -rf cache && rm -rf build" }, "dependencies": { - "@clrfund/maci-contracts": "^1.1.9", "@openzeppelin/contracts": "4.9.0", "commander": "^11.1.0", "dotenv": "^8.2.0", + "maci-contracts": "0.0.0-ci.f63fd28", "solidity-rlp": "2.0.8" }, "devDependencies": { "@clrfund/common": "^0.0.1", - "@clrfund/maci-circuits": "^1.1.10", - "@clrfund/maci-cli": "^1.1.10", - "@ethereum-waffle/mock-contract": "^3.4.4", + "@clrfund/waffle-mock-contract": "^0.0.4", "@kleros/gtcr-encoder": "^1.4.0", - "@nomiclabs/hardhat-ethers": "^2.2.3", - "@nomiclabs/hardhat-etherscan": "^3.1.4", + "@nomicfoundation/hardhat-chai-matchers": "^2.0.3", + "@nomicfoundation/hardhat-ethers": "^3.0.5", + "@nomicfoundation/hardhat-network-helpers": "^1.0.10", + "@nomicfoundation/hardhat-toolbox": "^4.0.0", + "@nomicfoundation/hardhat-verify": "^2.0.0", "@nomiclabs/hardhat-ganache": "^2.0.1", - "@nomiclabs/hardhat-waffle": "^2.0.3", - "@types/chai": "^4.2.11", - "@types/mocha": "^7.0.2", - "@types/node": "^13.9.2", - "@typescript-eslint/eslint-plugin": "^5.44.0", - "@typescript-eslint/parser": "^5.44.0", - "chai": "^4.2.0", - "eslint": "^8.28.0", - "eslint-config-prettier": "^8.5.0", - "ethereum-waffle": "^3.4.4", - "ethers": "^5.7.2", - "hardhat": "^2.19.1", - "hardhat-contract-sizer": "^2.6.1", + "@typechain/ethers-v6": "^0.5.1", + "@typechain/hardhat": "^9.1.0", + "@types/mocha": "^10.0.6", + "big-integer": "^1.6.52", + "ethers": "^6.10.0", + "hardhat": "^2.19.4", + "hardhat-contract-sizer": "^2.10.0", + "hardhat-gas-reporter": "^1.0.8", "ipfs-only-hash": "^2.0.1", - "solhint": "^3.3.2", - "ts-generator": "^0.0.8", - "ts-node": "^10.9.1", + "maci-circuits": "0.0.0-ci.f63fd28", + "maci-cli": "0.0.0-ci.f63fd28", + "maci-domainobjs": "0.0.0-ci.f63fd28", + "mocha": "^10.2.0", + "solidity-coverage": "^0.8.1", + "ts-node": "^10.9.2", + "typechain": "^8.3.2", "typescript": "^4.9.3" } } diff --git a/contracts/tasks/auditTally.ts b/contracts/tasks/auditTally.ts index 03c7c294b..a99e19bdf 100644 --- a/contracts/tasks/auditTally.ts +++ b/contracts/tasks/auditTally.ts @@ -6,8 +6,7 @@ */ import { task, types } from 'hardhat/config' -import { utils, providers, Contract, BigNumber } from 'ethers' -import { EventFilter, Log } from '@ethersproject/abstract-provider' +import { Contract, EventFilter, type Log, type Provider } from 'ethers' import { Ipfs } from '../utils/ipfs' import fs from 'fs' @@ -36,7 +35,7 @@ async function fetchLogs({ lastBlock, blocksPerBatch, }: { - provider: providers.Provider + provider: Provider filter: EventFilter startBlock: number lastBlock: number diff --git a/contracts/tests/deployer.ts b/contracts/tests/deployer.ts index 9ed53383a..03b220d44 100644 --- a/contracts/tests/deployer.ts +++ b/contracts/tests/deployer.ts @@ -1,8 +1,8 @@ -import { ethers, waffle, config } from 'hardhat' -import { use, expect } from 'chai' -import { solidity } from 'ethereum-waffle' -import { Signer, Contract, ContractTransaction, constants } from 'ethers' -import { genRandomSalt } from '@clrfund/maci-crypto' +import { ethers, config, artifacts } from 'hardhat' +import { time } from '@nomicfoundation/hardhat-network-helpers' +import { expect } from 'chai' +import { type Signer, Contract, TransactionResponse } from 'ethers' +import { genRandomSalt } from 'maci-crypto' import { Keypair } from '@clrfund/common' import { ZERO_ADDRESS, UNIT } from '../utils/constants' @@ -14,8 +14,8 @@ import { } from '../utils/deployment' import { MaciParameters } from '../utils/maciParameters' import { DEFAULT_CIRCUIT } from '../utils/circuits' - -use(solidity) +import { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers' +import { deployMockContract } from '@clrfund/waffle-mock-contract' const roundDuration = 10000 const circuit = DEFAULT_CIRCUIT @@ -23,36 +23,28 @@ const circuit = DEFAULT_CIRCUIT async function setRoundTally( clrfund: Contract, coordinator: Signer -): Promise { - const libraries = await deployPoseidonLibraries({ - artifactsPath: config.paths.artifacts, - ethers, - }) - const verifier = await deployContract({ - name: 'MockVerifier', - ethers, - signer: coordinator, - }) - const tally = await deployContract({ - name: 'Tally', - libraries, - contractArgs: [verifier.address], - signer: coordinator, - ethers, - }) +): Promise { + const VerifierArtifacts = await artifacts.readArtifact('Verifier') + const verifier = await deployMockContract(coordinator, VerifierArtifacts.abi) + await verifier.mock.verify.returns(true) + + const TallyArtifacts = await artifacts.readArtifact('Tally') + const tally = await deployMockContract(coordinator, TallyArtifacts.abi) + await tally.mock.tallyBatchNum.returns(0) + const roundAddress = await clrfund.getCurrentRound() const round = await ethers.getContractAt( 'FundingRound', roundAddress, coordinator ) - return round.setTally(tally.address) + return round.setTally(tally.target) } -describe('Clr fund deployer', () => { - const provider = waffle.provider - const [, deployer, coordinator, contributor] = provider.getWallets() - +describe('Clr fund deployer', async () => { + let deployer: HardhatEthersSigner + let coordinator: HardhatEthersSigner + let contributor: HardhatEthersSigner let maciFactory: Contract let userRegistry: Contract let recipientRegistry: Contract @@ -62,6 +54,17 @@ describe('Clr fund deployer', () => { let token: Contract const coordinatorPubKey = new Keypair().pubKey.asContractParam() let poseidonContracts: { [name: string]: string } + let roundInterface: Contract + + before(async () => { + ;[, deployer, coordinator, contributor] = await ethers.getSigners() + + // this is just a dummy funding round contract to be passed as the + // contract argument to the revertedByCustomError() as a way to + // pass the Abi. + const FundingRoundArtifacts = await artifacts.readArtifact('FundingRound') + roundInterface = new Contract(ZERO_ADDRESS, FundingRoundArtifacts.abi) + }) beforeEach(async () => { if (!poseidonContracts) { @@ -85,33 +88,43 @@ describe('Clr fund deployer', () => { signer: deployer, }) - expect(factoryTemplate.address).to.properAddress - expect(await getGasUsage(factoryTemplate.deployTransaction)).lessThan( - 5400000 - ) + expect(await factoryTemplate.getAddress()).to.be.properAddress + const tx = factoryTemplate.deploymentTransaction() + if (tx) { + expect(await getGasUsage(tx)).lessThan(5400000) + } else { + expect(tx).to.not.be.null + } const roundFactory = await deployContract({ name: 'FundingRoundFactory', - libraries: poseidonContracts, ethers, }) - expect(await getGasUsage(roundFactory.deployTransaction)).lessThan(4000000) + const roundFactoryTx = roundFactory.deploymentTransaction() + if (roundFactoryTx) { + expect(await getGasUsage(roundFactoryTx)).lessThan(4000000) + } else { + expect(roundFactoryTx).to.not.be.null + } clrFundDeployer = await deployContract({ name: 'ClrFundDeployer', contractArgs: [ - factoryTemplate.address, - maciFactory.address, - roundFactory.address, + factoryTemplate.target, + maciFactory.target, + roundFactory.target, ], ethers, signer: deployer, }) - expect(clrFundDeployer.address).to.properAddress - expect(await getGasUsage(clrFundDeployer.deployTransaction)).lessThan( - 5400000 - ) + expect(clrFundDeployer.target).to.be.properAddress + const deployerTx = clrFundDeployer.deploymentTransaction() + if (deployerTx) { + expect(await getGasUsage(deployerTx)).lessThan(5400000) + } else { + expect(deployerTx).to.not.be.null + } const newInstanceTx = await clrFundDeployer.deployClrFund() const instanceAddress = await getEventArg( @@ -132,56 +145,48 @@ describe('Clr fund deployer', () => { 'SimpleRecipientRegistry', deployer ) - recipientRegistry = await SimpleRecipientRegistry.deploy(clrfund.address) + recipientRegistry = await SimpleRecipientRegistry.deploy(clrfund.target) // Deploy token contract and transfer tokens to contributor - const tokenInitialSupply = UNIT.mul(1000) + const tokenInitialSupply = UNIT * 1000n const Token = await ethers.getContractFactory('AnyOldERC20Token', deployer) token = await Token.deploy(tokenInitialSupply) - expect(token.address).to.properAddress + expect(token.target).to.properAddress await token.transfer(contributor.address, tokenInitialSupply) }) it('can only be initialized once', async () => { - const dummyRoundFactory = constants.AddressZero + const dummyRoundFactory = ZERO_ADDRESS await expect( - clrfund.init(maciFactory.address, dummyRoundFactory) + clrfund.init(maciFactory.target, dummyRoundFactory) ).to.be.revertedWith('Initializable: contract is already initialized') }) it('can register with the subgraph', async () => { await expect( - clrFundDeployer.registerInstance( - clrfund.address, - '{name:dead,title:beef}' - ) + clrFundDeployer.registerInstance(clrfund.target, '{name:dead,title:beef}') ) .to.emit(clrFundDeployer, 'Register') - .withArgs(clrfund.address, '{name:dead,title:beef}') + .withArgs(clrfund.target, '{name:dead,title:beef}') }) it('cannot register with the subgraph twice', async () => { await expect( - clrFundDeployer.registerInstance( - clrfund.address, - '{name:dead,title:beef}' - ) + clrFundDeployer.registerInstance(clrfund.target, '{name:dead,title:beef}') ) .to.emit(clrFundDeployer, 'Register') - .withArgs(clrfund.address, '{name:dead,title:beef}') + .withArgs(clrfund.target, '{name:dead,title:beef}') + await expect( - clrFundDeployer.registerInstance( - clrfund.address, - '{name:dead,title:beef}' - ) - ).to.be.revertedWith('ClrFundAlreadyRegistered') + clrFundDeployer.registerInstance(clrfund.target, '{name:dead,title:beef}') + ).to.be.revertedWithCustomError(clrFundDeployer, 'ClrFundAlreadyRegistered') }) it('initializes clrfund', async () => { expect(await clrfund.coordinator()).to.equal(ZERO_ADDRESS) expect(await clrfund.nativeToken()).to.equal(ZERO_ADDRESS) - expect(await clrfund.maciFactory()).to.equal(maciFactory.address) + expect(await clrfund.maciFactory()).to.equal(maciFactory.target) expect(await clrfund.userRegistry()).to.equal(ZERO_ADDRESS) expect(await clrfund.recipientRegistry()).to.equal(ZERO_ADDRESS) }) @@ -194,36 +199,38 @@ describe('Clr fund deployer', () => { describe('changing user registry', () => { it('allows owner to set user registry', async () => { - await clrfund.setUserRegistry(userRegistry.address) - expect(await clrfund.userRegistry()).to.equal(userRegistry.address) + await clrfund.setUserRegistry(userRegistry.target) + expect(await clrfund.userRegistry()).to.equal(userRegistry.target) }) it('allows only owner to set user registry', async () => { await expect( - clrfund.connect(contributor).setUserRegistry(userRegistry.address) + (clrfund.connect(contributor) as Contract).setUserRegistry( + userRegistry.target + ) ).to.be.revertedWith('Ownable: caller is not the owner') }) it('allows owner to change recipient registry', async () => { - await clrfund.setRecipientRegistry(recipientRegistry.address) + await clrfund.setRecipientRegistry(recipientRegistry.target) const SimpleUserRegistry = await ethers.getContractFactory( 'SimpleUserRegistry', deployer ) const anotherUserRegistry = await SimpleUserRegistry.deploy() - await clrfund.setUserRegistry(anotherUserRegistry.address) - expect(await clrfund.userRegistry()).to.equal(anotherUserRegistry.address) + await clrfund.setUserRegistry(anotherUserRegistry.target) + expect(await clrfund.userRegistry()).to.equal(anotherUserRegistry.target) }) }) describe('changing recipient registry', () => { it('allows owner to set recipient registry', async () => { await clrfund.setCoordinator(coordinator.address, coordinatorPubKey) - await clrfund.setRecipientRegistry(recipientRegistry.address) + await clrfund.setRecipientRegistry(recipientRegistry.target) expect(await clrfund.recipientRegistry()).to.equal( - recipientRegistry.address + recipientRegistry.target ) - expect(await recipientRegistry.controller()).to.equal(clrfund.address) + expect(await recipientRegistry.controller()).to.equal(clrfund.target) const params = MaciParameters.mock(circuit) expect(await recipientRegistry.maxRecipients()).to.equal( 5 ** params.voteOptionTreeDepth @@ -232,24 +239,24 @@ describe('Clr fund deployer', () => { it('allows only owner to set recipient registry', async () => { await expect( - clrfund - .connect(contributor) - .setRecipientRegistry(recipientRegistry.address) + (clrfund.connect(contributor) as Contract).setRecipientRegistry( + recipientRegistry.target + ) ).to.be.revertedWith('Ownable: caller is not the owner') }) it('allows owner to change recipient registry', async () => { - await clrfund.setRecipientRegistry(recipientRegistry.address) + await clrfund.setRecipientRegistry(recipientRegistry.target) const SimpleRecipientRegistry = await ethers.getContractFactory( 'SimpleRecipientRegistry', deployer ) const anotherRecipientRegistry = await SimpleRecipientRegistry.deploy( - clrfund.address + clrfund.target ) - await clrfund.setRecipientRegistry(anotherRecipientRegistry.address) + await clrfund.setRecipientRegistry(anotherRecipientRegistry.target) expect(await clrfund.recipientRegistry()).to.equal( - anotherRecipientRegistry.address + anotherRecipientRegistry.target ) }) }) @@ -263,7 +270,9 @@ describe('Clr fund deployer', () => { it('allows only owner to add funding source', async () => { await expect( - clrfund.connect(contributor).addFundingSource(contributor.address) + (clrfund.connect(contributor) as Contract).addFundingSource( + contributor.address + ) ).to.be.revertedWith('Ownable: caller is not the owner') }) @@ -271,7 +280,7 @@ describe('Clr fund deployer', () => { await clrfund.addFundingSource(contributor.address) await expect( clrfund.addFundingSource(contributor.address) - ).to.be.revertedWith('FundingSourceAlreadyAdded') + ).to.be.revertedWithCustomError(clrfund, 'FundingSourceAlreadyAdded') }) it('allows owner to remove funding source', async () => { @@ -284,7 +293,9 @@ describe('Clr fund deployer', () => { it('allows only owner to remove funding source', async () => { await clrfund.addFundingSource(contributor.address) await expect( - clrfund.connect(contributor).removeFundingSource(contributor.address) + (clrfund.connect(contributor) as Contract).removeFundingSource( + contributor.address + ) ).to.be.revertedWith('Ownable: caller is not the owner') }) @@ -293,26 +304,29 @@ describe('Clr fund deployer', () => { await clrfund.removeFundingSource(contributor.address) await expect( clrfund.removeFundingSource(contributor.address) - ).to.be.revertedWith('FundingSourceNotFound') + ).to.be.revertedWithCustomError(clrfund, 'FundingSourceNotFound') }) }) it('allows direct contributions to the matching pool', async () => { - const contributionAmount = UNIT.mul(10) - await clrfund.setToken(token.address) + const contributionAmount = UNIT * 10n + await clrfund.setToken(token.target) await expect( - token.connect(contributor).transfer(clrfund.address, contributionAmount) + (token.connect(contributor) as Contract).transfer( + clrfund.target, + contributionAmount + ) ) .to.emit(token, 'Transfer') - .withArgs(contributor.address, clrfund.address, contributionAmount) - expect(await token.balanceOf(clrfund.address)).to.equal(contributionAmount) + .withArgs(contributor.address, clrfund.target, contributionAmount) + expect(await token.balanceOf(clrfund.target)).to.equal(contributionAmount) }) describe('deploying funding round', () => { it('deploys funding round', async () => { - await clrfund.setUserRegistry(userRegistry.address) - await clrfund.setRecipientRegistry(recipientRegistry.address) - await clrfund.setToken(token.address) + await clrfund.setUserRegistry(userRegistry.target) + await clrfund.setRecipientRegistry(recipientRegistry.target) + await clrfund.setToken(token.target) await clrfund.setCoordinator(coordinator.address, coordinatorPubKey) const deployed = clrfund.deployNewRound(roundDuration) await expect(deployed).to.emit(clrfund, 'RoundStarted') @@ -328,8 +342,8 @@ describe('Clr fund deployer', () => { 'FundingRound', fundingRoundAddress ) - expect(await fundingRound.owner()).to.equal(clrfund.address) - expect(await fundingRound.nativeToken()).to.equal(token.address) + expect(await fundingRound.owner()).to.equal(clrfund.target) + expect(await fundingRound.nativeToken()).to.equal(token.target) const maciAddress = await getEventArg( deployTx, @@ -353,60 +367,60 @@ describe('Clr fund deployer', () => { }) it('reverts if user registry is not set', async () => { - await clrfund.setRecipientRegistry(recipientRegistry.address) - await clrfund.setToken(token.address) + await clrfund.setRecipientRegistry(recipientRegistry.target) + await clrfund.setToken(token.target) await clrfund.setCoordinator(coordinator.address, coordinatorPubKey) - await expect(clrfund.deployNewRound(roundDuration)).to.be.revertedWith( - 'NoUserRegistry' - ) + await expect( + clrfund.deployNewRound(roundDuration) + ).to.be.revertedWithCustomError(clrfund, 'NoUserRegistry') }) it('reverts if recipient registry is not set', async () => { - await clrfund.setUserRegistry(userRegistry.address) - await clrfund.setToken(token.address) + await clrfund.setUserRegistry(userRegistry.target) + await clrfund.setToken(token.target) await clrfund.setCoordinator(coordinator.address, coordinatorPubKey) - await expect(clrfund.deployNewRound(roundDuration)).to.be.revertedWith( - 'NoRecipientRegistry' - ) + await expect( + clrfund.deployNewRound(roundDuration) + ).to.be.revertedWithCustomError(clrfund, 'NoRecipientRegistry') }) it('reverts if native token is not set', async () => { - await clrfund.setUserRegistry(userRegistry.address) - await clrfund.setRecipientRegistry(recipientRegistry.address) + await clrfund.setUserRegistry(userRegistry.target) + await clrfund.setRecipientRegistry(recipientRegistry.target) await clrfund.setCoordinator(coordinator.address, coordinatorPubKey) - await expect(clrfund.deployNewRound(roundDuration)).to.be.revertedWith( - 'NoToken' - ) + await expect( + clrfund.deployNewRound(roundDuration) + ).to.be.revertedWithCustomError(clrfund, 'NoToken') }) it('reverts if coordinator is not set', async () => { - await clrfund.setUserRegistry(userRegistry.address) - await clrfund.setRecipientRegistry(recipientRegistry.address) - await clrfund.setToken(token.address) - await expect(clrfund.deployNewRound(roundDuration)).to.be.revertedWith( - 'NoCoordinator' - ) + await clrfund.setUserRegistry(userRegistry.target) + await clrfund.setRecipientRegistry(recipientRegistry.target) + await clrfund.setToken(token.target) + await expect( + clrfund.deployNewRound(roundDuration) + ).to.be.revertedWithCustomError(clrfund, 'NoCoordinator') }) it('reverts if current round is not finalized', async () => { - await clrfund.setUserRegistry(userRegistry.address) - await clrfund.setRecipientRegistry(recipientRegistry.address) - await clrfund.setToken(token.address) + await clrfund.setUserRegistry(userRegistry.target) + await clrfund.setRecipientRegistry(recipientRegistry.target) + await clrfund.setToken(token.target) await clrfund.setCoordinator(coordinator.address, coordinatorPubKey) await clrfund.deployNewRound(roundDuration) - await expect(clrfund.deployNewRound(roundDuration)).to.be.revertedWith( - 'NotFinalized' - ) + await expect( + clrfund.deployNewRound(roundDuration) + ).to.be.revertedWithCustomError(clrfund, 'NotFinalized') }) it('deploys new funding round after previous round has been finalized', async () => { - await clrfund.setUserRegistry(userRegistry.address) - await clrfund.setRecipientRegistry(recipientRegistry.address) - await clrfund.setToken(token.address) + await clrfund.setUserRegistry(userRegistry.target) + await clrfund.setRecipientRegistry(recipientRegistry.target) + await clrfund.setToken(token.target) await clrfund.setCoordinator(coordinator.address, coordinatorPubKey) await clrfund.deployNewRound(roundDuration) @@ -418,12 +432,12 @@ describe('Clr fund deployer', () => { }) it('only owner can deploy funding round', async () => { - await clrfund.setUserRegistry(userRegistry.address) - await clrfund.setRecipientRegistry(recipientRegistry.address) - await clrfund.setToken(token.address) + await clrfund.setUserRegistry(userRegistry.target) + await clrfund.setRecipientRegistry(recipientRegistry.target) + await clrfund.setToken(token.target) await clrfund.setCoordinator(coordinator.address, coordinatorPubKey) - const clrfundAsContributor = clrfund.connect(contributor) + const clrfundAsContributor = clrfund.connect(contributor) as Contract await expect( clrfundAsContributor.deployNewRound(roundDuration) ).to.be.revertedWith('Ownable: caller is not the owner') @@ -431,16 +445,16 @@ describe('Clr fund deployer', () => { }) describe('transferring matching funds', () => { - const contributionAmount = UNIT.mul(10) - const totalSpent = UNIT.mul(100) + const contributionAmount = UNIT * 10n + const totalSpent = UNIT * 100n const totalSpentSalt = genRandomSalt().toString() const resultsCommitment = genRandomSalt().toString() const perVOVoiceCreditCommitment = genRandomSalt().toString() beforeEach(async () => { - await clrfund.setUserRegistry(userRegistry.address) - await clrfund.setRecipientRegistry(recipientRegistry.address) - await clrfund.setToken(token.address) + await clrfund.setUserRegistry(userRegistry.target) + await clrfund.setRecipientRegistry(recipientRegistry.target) + await clrfund.setToken(token.target) await clrfund.setCoordinator(coordinator.address, coordinatorPubKey) }) @@ -448,28 +462,29 @@ describe('Clr fund deployer', () => { await clrfund.addFundingSource(deployer.address) await clrfund.addFundingSource(contributor.address) // Allowance is more than available balance - await token.connect(deployer).approve(clrfund.address, contributionAmount) + await (token.connect(deployer) as Contract).approve( + clrfund.target, + contributionAmount + ) // Allowance is less than available balance - await token - .connect(contributor) - .approve(clrfund.address, contributionAmount) + const tokenAsContributor = token.connect(contributor) as Contract + await tokenAsContributor.approve(clrfund.target, contributionAmount) // Direct contribution - await token - .connect(contributor) - .transfer(clrfund.address, contributionAmount) + await tokenAsContributor.transfer(clrfund.target, contributionAmount) await clrfund.deployNewRound(roundDuration) - expect(await clrfund.getMatchingFunds(token.address)).to.equal( - contributionAmount.mul(2) + expect(await clrfund.getMatchingFunds(token.target)).to.equal( + contributionAmount * 2n ) }) it('allows owner to finalize round', async () => { - await token - .connect(contributor) - .transfer(clrfund.address, contributionAmount) + await (token.connect(contributor) as Contract).transfer( + clrfund.target, + contributionAmount + ) await clrfund.deployNewRound(roundDuration) - await provider.send('evm_increaseTime', [roundDuration]) + await time.increase(roundDuration) await setRoundTally(clrfund, coordinator) await expect( clrfund.transferMatchingFunds( @@ -478,12 +493,12 @@ describe('Clr fund deployer', () => { resultsCommitment, perVOVoiceCreditCommitment ) - ).to.be.revertedWith('VotesNotTallied') + ).to.be.revertedWithCustomError(roundInterface, 'VotesNotTallied') }) it('allows owner to finalize round even without matching funds', async () => { await clrfund.deployNewRound(roundDuration) - await provider.send('evm_increaseTime', [roundDuration]) + await time.increase(roundDuration) await setRoundTally(clrfund, coordinator) await expect( clrfund.transferMatchingFunds( @@ -492,15 +507,18 @@ describe('Clr fund deployer', () => { resultsCommitment, perVOVoiceCreditCommitment ) - ).to.be.revertedWith('VotesNotTallied') + ).to.be.revertedWithCustomError(roundInterface, 'VotesNotTallied') }) it('pulls funds from funding source', async () => { await clrfund.addFundingSource(contributor.address) - token.connect(contributor).approve(clrfund.address, contributionAmount) + await (token.connect(contributor) as Contract).approve( + clrfund.target, + contributionAmount + ) await clrfund.addFundingSource(deployer.address) // Doesn't have tokens await clrfund.deployNewRound(roundDuration) - await provider.send('evm_increaseTime', [roundDuration]) + await time.increase(roundDuration) await setRoundTally(clrfund, coordinator) await expect( clrfund.transferMatchingFunds( @@ -509,16 +527,17 @@ describe('Clr fund deployer', () => { resultsCommitment, perVOVoiceCreditCommitment ) - ).to.be.revertedWith('VotesNotTallied') + ).to.be.revertedWithCustomError(roundInterface, 'VotesNotTallied') }) it('pulls funds from funding source if allowance is greater than balance', async () => { await clrfund.addFundingSource(contributor.address) - token - .connect(contributor) - .approve(clrfund.address, contributionAmount.mul(2)) + await (token.connect(contributor) as Contract).approve( + clrfund.target, + contributionAmount * 2n + ) await clrfund.deployNewRound(roundDuration) - await provider.send('evm_increaseTime', [roundDuration]) + await time.increase(roundDuration) await setRoundTally(clrfund, coordinator) await expect( clrfund.transferMatchingFunds( @@ -527,22 +546,20 @@ describe('Clr fund deployer', () => { resultsCommitment, perVOVoiceCreditCommitment ) - ).to.be.revertedWith('VotesNotTallied') + ).to.be.revertedWithCustomError(roundInterface, 'VotesNotTallied') }) it('allows only owner to finalize round', async () => { await clrfund.deployNewRound(roundDuration) - await provider.send('evm_increaseTime', [roundDuration]) + await time.increase(roundDuration) await setRoundTally(clrfund, coordinator) await expect( - clrfund - .connect(contributor) - .transferMatchingFunds( - totalSpent, - totalSpentSalt, - resultsCommitment, - perVOVoiceCreditCommitment - ) + (clrfund.connect(contributor) as Contract).transferMatchingFunds( + totalSpent, + totalSpentSalt, + resultsCommitment, + perVOVoiceCreditCommitment + ) ).to.be.revertedWith('Ownable: caller is not the owner') }) @@ -554,15 +571,15 @@ describe('Clr fund deployer', () => { resultsCommitment, perVOVoiceCreditCommitment ) - ).to.be.revertedWith('NoCurrentRound') + ).to.be.revertedWithCustomError(clrfund, 'NoCurrentRound') }) }) describe('cancelling round', () => { beforeEach(async () => { - await clrfund.setUserRegistry(userRegistry.address) - await clrfund.setRecipientRegistry(recipientRegistry.address) - await clrfund.setToken(token.address) + await clrfund.setUserRegistry(userRegistry.target) + await clrfund.setRecipientRegistry(recipientRegistry.target) + await clrfund.setToken(token.target) await clrfund.setCoordinator(coordinator.address, coordinatorPubKey) }) @@ -582,12 +599,13 @@ describe('Clr fund deployer', () => { it('allows only owner to cancel round', async () => { await clrfund.deployNewRound(roundDuration) await expect( - clrfund.connect(contributor).cancelCurrentRound() + (clrfund.connect(contributor) as Contract).cancelCurrentRound() ).to.be.revertedWith('Ownable: caller is not the owner') }) it('reverts if round has not been deployed', async () => { - await expect(clrfund.cancelCurrentRound()).to.be.revertedWith( + await expect(clrfund.cancelCurrentRound()).to.be.revertedWithCustomError( + clrfund, 'NoCurrentRound' ) }) @@ -595,23 +613,24 @@ describe('Clr fund deployer', () => { it('reverts if round is finalized', async () => { await clrfund.deployNewRound(roundDuration) await clrfund.cancelCurrentRound() - await expect(clrfund.cancelCurrentRound()).to.be.revertedWith( + await expect(clrfund.cancelCurrentRound()).to.be.revertedWithCustomError( + clrfund, 'AlreadyFinalized' ) }) }) it('allows owner to set native token', async () => { - await expect(clrfund.setToken(token.address)) + await expect(clrfund.setToken(token.target)) .to.emit(clrfund, 'TokenChanged') - .withArgs(token.address) - expect(await clrfund.nativeToken()).to.equal(token.address) + .withArgs(token.target) + expect(await clrfund.nativeToken()).to.equal(token.target) }) it('only owner can set native token', async () => { - const clrfundAsContributor = clrfund.connect(contributor) + const clrfundAsContributor = clrfund.connect(contributor) as Contract await expect( - clrfundAsContributor.setToken(token.address) + clrfundAsContributor.setToken(token.target) ).to.be.revertedWith('Ownable: caller is not the owner') }) @@ -623,7 +642,7 @@ describe('Clr fund deployer', () => { }) it('allows only the owner to set a new coordinator', async () => { - const clrfundAsContributor = clrfund.connect(contributor) + const clrfundAsContributor = clrfund.connect(contributor) as Contract await expect( clrfundAsContributor.setCoordinator( coordinator.address, @@ -634,7 +653,7 @@ describe('Clr fund deployer', () => { it('allows coordinator to call coordinatorQuit and sets coordinator to null', async () => { await clrfund.setCoordinator(coordinator.address, coordinatorPubKey) - const clrfundAsCoordinator = clrfund.connect(coordinator) + const clrfundAsCoordinator = clrfund.connect(coordinator) as Contract await expect(clrfundAsCoordinator.coordinatorQuit()) .to.emit(clrfund, 'CoordinatorChanged') .withArgs(ZERO_ADDRESS) @@ -643,13 +662,16 @@ describe('Clr fund deployer', () => { it('only coordinator can call coordinatorQuit', async () => { await clrfund.setCoordinator(coordinator.address, coordinatorPubKey) - await expect(clrfund.coordinatorQuit()).to.be.revertedWith('NotAuthorized') + await expect(clrfund.coordinatorQuit()).to.be.revertedWithCustomError( + clrfund, + 'NotAuthorized' + ) }) it('should cancel current round when coordinator quits', async () => { - await clrfund.setUserRegistry(userRegistry.address) - await clrfund.setRecipientRegistry(recipientRegistry.address) - await clrfund.setToken(token.address) + await clrfund.setUserRegistry(userRegistry.target) + await clrfund.setRecipientRegistry(recipientRegistry.target) + await clrfund.setToken(token.target) await clrfund.setCoordinator(coordinator.address, coordinatorPubKey) await clrfund.deployNewRound(roundDuration) const fundingRoundAddress = await clrfund.getCurrentRound() @@ -658,7 +680,7 @@ describe('Clr fund deployer', () => { fundingRoundAddress ) - const clrfundAsCoordinator = clrfund.connect(coordinator) + const clrfundAsCoordinator = clrfund.connect(coordinator) as Contract await expect(clrfundAsCoordinator.coordinatorQuit()) .to.emit(clrfund, 'RoundFinalized') .withArgs(fundingRoundAddress) diff --git a/contracts/tests/maciFactory.ts b/contracts/tests/maciFactory.ts index f3baa4c2d..f839e0a3e 100644 --- a/contracts/tests/maciFactory.ts +++ b/contracts/tests/maciFactory.ts @@ -1,30 +1,32 @@ -import { waffle, artifacts, ethers, config } from 'hardhat' -import { Contract } from 'ethers' -import { use, expect } from 'chai' -import { solidity } from 'ethereum-waffle' -import { deployMockContract } from '@ethereum-waffle/mock-contract' +import { artifacts, ethers, config } from 'hardhat' +import { Contract, TransactionResponse } from 'ethers' +import { expect } from 'chai' +import { deployMockContract, MockContract } from '@clrfund/waffle-mock-contract' import { Keypair } from '@clrfund/common' import { getEventArg, getGasUsage } from '../utils/contracts' import { deployMaciFactory, deployPoseidonLibraries } from '../utils/deployment' import { MaciParameters } from '../utils/maciParameters' import { DEFAULT_CIRCUIT } from '../utils/circuits' - -use(solidity) +import { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers' describe('MACI factory', () => { - const provider = waffle.provider - const [, deployer, coordinator] = provider.getWallets() + let deployer: HardhatEthersSigner + let coordinator: HardhatEthersSigner const duration = 100 let maciFactory: Contract - let signUpGatekeeper: Contract - let initialVoiceCreditProxy: Contract - let topupContract: Contract + let signUpGatekeeper: MockContract + let initialVoiceCreditProxy: MockContract + let topupContract: MockContract let maciParameters: MaciParameters let poseidonContracts: { [name: string]: string } const coordinatorPubKey = new Keypair().pubKey.asContractParam() + before(async () => { + ;[, deployer, coordinator] = await ethers.getSigners() + }) + beforeEach(async () => { if (!poseidonContracts) { poseidonContracts = await deployPoseidonLibraries({ @@ -38,7 +40,11 @@ describe('MACI factory', () => { signer: deployer, libraries: poseidonContracts, }) - expect(await getGasUsage(maciFactory.deployTransaction)).lessThan(5600000) + const transaction = await maciFactory.deploymentTransaction() + expect(transaction).to.be.not.null + expect(await getGasUsage(transaction as TransactionResponse)).lessThan( + 5600000 + ) maciParameters = MaciParameters.mock(DEFAULT_CIRCUIT) @@ -61,8 +67,8 @@ describe('MACI factory', () => { it('sets default MACI parameters', async () => { const { maxMessages, maxVoteOptions } = await maciFactory.maxValues() - expect(maxMessages).to.equal(0) - expect(maxVoteOptions).to.equal(0) + expect(maxMessages).to.equal(BigInt(0)) + expect(maxVoteOptions).to.equal(BigInt(0)) }) it('sets MACI parameters', async () => { @@ -78,7 +84,7 @@ describe('MACI factory', () => { }) it('allows only owner to set MACI parameters', async () => { - const coordinatorMaciFactory = maciFactory.connect(coordinator) + const coordinatorMaciFactory = maciFactory.connect(coordinator) as Contract await expect( coordinatorMaciFactory.setMaciParameters( ...maciParameters.asContractParam() @@ -92,9 +98,9 @@ describe('MACI factory', () => { ) await setParamTx.wait() const maciDeployed = maciFactory.deployMaci( - signUpGatekeeper.address, - initialVoiceCreditProxy.address, - topupContract.address, + signUpGatekeeper.target, + initialVoiceCreditProxy.target, + topupContract.target, duration, coordinator.address, coordinatorPubKey @@ -111,12 +117,12 @@ describe('MACI factory', () => { ...maciParameters.asContractParam() ) await setParamTx.wait() - const coordinatorMaciFactory = maciFactory.connect(coordinator) + const coordinatorMaciFactory = maciFactory.connect(coordinator) as Contract const deployTx = await coordinatorMaciFactory.deployMaci( - signUpGatekeeper.address, - initialVoiceCreditProxy.address, - topupContract.address, + signUpGatekeeper.target, + initialVoiceCreditProxy.target, + topupContract.target, duration, coordinator.address, coordinatorPubKey @@ -130,9 +136,9 @@ describe('MACI factory', () => { ) await setParamTx.wait() const deployTx = await maciFactory.deployMaci( - signUpGatekeeper.address, - initialVoiceCreditProxy.address, - topupContract.address, + signUpGatekeeper.target, + initialVoiceCreditProxy.target, + topupContract.target, duration, coordinator.address, coordinatorPubKey @@ -157,9 +163,9 @@ describe('MACI factory', () => { ) await setParamTx.wait() const deployTx = await maciFactory.deployMaci( - signUpGatekeeper.address, - initialVoiceCreditProxy.address, - topupContract.address, + signUpGatekeeper.target, + initialVoiceCreditProxy.target, + topupContract.target, duration, coordinator.address, coordinatorPubKey diff --git a/contracts/tests/recipientRegistry.ts b/contracts/tests/recipientRegistry.ts index 398d747c1..70d0c5d32 100644 --- a/contracts/tests/recipientRegistry.ts +++ b/contracts/tests/recipientRegistry.ts @@ -1,21 +1,18 @@ -import { ethers, waffle } from 'hardhat' -import { use, expect } from 'chai' -import { solidity } from 'ethereum-waffle' -import { BigNumber, Contract } from 'ethers' -import { keccak256 } from '@ethersproject/solidity' +import { ethers } from 'hardhat' +import { expect } from 'chai' +import { Contract, solidityPackedKeccak256 } from 'ethers' import { gtcrEncode } from '@kleros/gtcr-encoder' +import { time } from '@nomicfoundation/hardhat-network-helpers' import { UNIT, ZERO_ADDRESS } from '../utils/constants' import { getTxFee, getEventArg } from '../utils/contracts' import { deployContract } from '../utils/deployment' +import { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers' -use(solidity) - -const { provider } = waffle const MAX_RECIPIENTS = 15 async function getCurrentTime(): Promise { - return (await provider.getBlock('latest')).timestamp + return await time.latest() } function getRecipientId( @@ -23,16 +20,22 @@ function getRecipientId( address: string, metadata: string ): string { - return keccak256( + return solidityPackedKeccak256( ['address', 'address', 'string'], [registryAddress, address, metadata] ) } -describe('Simple Recipient Registry', () => { - const [, deployer, controller, recipient] = provider.getWallets() - +describe('Simple Recipient Registry', async () => { let registry: Contract + let registryAddress: string + let deployer: HardhatEthersSigner + let controller: HardhatEthersSigner + let recipient: HardhatEthersSigner + + before(async () => { + ;[, deployer, controller, recipient] = await ethers.getSigners() + }) beforeEach(async () => { const SimpleRecipientRegistry = await ethers.getContractFactory( @@ -40,6 +43,7 @@ describe('Simple Recipient Registry', () => { deployer ) registry = await SimpleRecipientRegistry.deploy(controller.address) + registryAddress = await registry.getAddress() }) describe('initializing and configuring', () => { @@ -49,14 +53,18 @@ describe('Simple Recipient Registry', () => { }) it('sets max number of recipients', async () => { - await registry.connect(controller).setMaxRecipients(MAX_RECIPIENTS) + await (registry.connect(controller) as Contract).setMaxRecipients( + MAX_RECIPIENTS + ) expect(await registry.maxRecipients()).to.equal(MAX_RECIPIENTS) }) it('reverts if given number is less than current limit', async () => { - await registry.connect(controller).setMaxRecipients(MAX_RECIPIENTS) + await (registry.connect(controller) as Contract).setMaxRecipients( + MAX_RECIPIENTS + ) await expect( - registry.connect(controller).setMaxRecipients(1) + (registry.connect(controller) as Contract).setMaxRecipients(1) ).to.be.revertedWith( 'RecipientRegistry: Max number of recipients can not be decreased' ) @@ -81,14 +89,17 @@ describe('Simple Recipient Registry', () => { let recipientId: string beforeEach(async () => { - await registry.connect(controller).setMaxRecipients(MAX_RECIPIENTS) + await (registry.connect(controller) as Contract).setMaxRecipients( + MAX_RECIPIENTS + ) recipientAddress = recipient.address metadata = JSON.stringify({ name: 'Recipient', description: 'Description', imageHash: 'Ipfs imageHash', }) - recipientId = getRecipientId(registry.address, recipientAddress, metadata) + const registryAddress = await registry.getAddress() + recipientId = getRecipientId(registryAddress, recipientAddress, metadata) }) it('allows owner to add recipient', async () => { @@ -117,7 +128,7 @@ describe('Simple Recipient Registry', () => { const anotherRecipientAddress = '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045' const anotherRecipientId = getRecipientId( - registry.address, + registryAddress, anotherRecipientAddress, metadata ) @@ -139,7 +150,7 @@ describe('Simple Recipient Registry', () => { }) it('rejects attempts to add recipient from anyone except owner', async () => { - const registryAsRecipient = registry.connect(recipient) + const registryAsRecipient = registry.connect(recipient) as Contract await expect( registryAsRecipient.addRecipient(recipientAddress, metadata) ).to.be.revertedWith('Ownable: caller is not the owner') @@ -203,7 +214,7 @@ describe('Simple Recipient Registry', () => { }) it('rejects attempts to remove recipient from anyone except owner', async () => { - const registryAsRecipient = registry.connect(recipient) + const registryAsRecipient = registry.connect(recipient) as Contract await expect( registryAsRecipient.removeRecipient(recipientId) ).to.be.revertedWith('Ownable: caller is not the owner') @@ -226,7 +237,7 @@ describe('Simple Recipient Registry', () => { it('should not return recipient address for recipient that has been added after the end of round', async () => { const startTime = await getCurrentTime() - await provider.send('evm_increaseTime', [1000]) + await time.increase(1000) const endTime = await getCurrentTime() await registry.addRecipient(recipientAddress, metadata) expect( @@ -238,7 +249,7 @@ describe('Simple Recipient Registry', () => { await registry.addRecipient(recipientAddress, metadata) const startTime = await getCurrentTime() await registry.removeRecipient(recipientId) - await provider.send('evm_increaseTime', [1000]) + await time.increase(1000) const endTime = await getCurrentTime() expect( await registry.getRecipientAddress(recipientIndex, startTime, endTime) @@ -265,13 +276,13 @@ describe('Simple Recipient Registry', () => { // Replace recipients const removedRecipient1 = '0x0000000000000000000000000000000000000001' const removedRecipient1Id = getRecipientId( - registry.address, + registryAddress, removedRecipient1, metadata ) const removedRecipient2 = '0x0000000000000000000000000000000000000002' const removedRecipient2Id = getRecipientId( - registry.address, + registryAddress, removedRecipient2, metadata ) @@ -295,7 +306,7 @@ describe('Simple Recipient Registry', () => { removedRecipient2 ) - await provider.send('evm_increaseTime', [1000]) + await time.increase(1000) const time3 = await getCurrentTime() // Recipients removed before the beginning of the round should be replaced expect(await registry.getRecipientAddress(1, time2, time3)).to.equal( @@ -325,7 +336,13 @@ describe('Simple Recipient Registry', () => { }) describe('Kleros GTCR adapter', () => { - const [, deployer, controller, recipient] = provider.getWallets() + let tcr: Contract + let registry: Contract + let deployer: HardhatEthersSigner + let controller: HardhatEthersSigner + let recipient: HardhatEthersSigner + let tcrAddress: string + const gtcrColumns = [ { label: 'Name', @@ -346,12 +363,13 @@ describe('Kleros GTCR adapter', () => { columns: gtcrColumns, values: { Name: `test-${address}`, Address: address }, }) - const recipientId = keccak256(['bytes'], [recipientData]) + const recipientId = solidityPackedKeccak256(['bytes'], [recipientData]) return [recipientId, recipientData] } - let tcr: Contract - let registry: Contract + before(async () => { + ;[, deployer, controller, recipient] = await ethers.getSigners() + }) beforeEach(async () => { const KlerosGTCRMock = await ethers.getContractFactory( @@ -359,32 +377,40 @@ describe('Kleros GTCR adapter', () => { deployer ) tcr = await KlerosGTCRMock.deploy('/ipfs/0', '/ipfs/1') + tcrAddress = await tcr.getAddress() const KlerosGTCRAdapter = await ethers.getContractFactory( 'KlerosGTCRAdapter', deployer ) - registry = await KlerosGTCRAdapter.deploy(tcr.address, controller.address) + registry = await KlerosGTCRAdapter.deploy(tcrAddress, controller.address) }) it('initializes correctly', async () => { - expect(await registry.tcr()).to.equal(tcr.address) + expect(await registry.tcr()).to.equal(tcrAddress) expect(await registry.controller()).to.equal(controller.address) expect(await registry.maxRecipients()).to.equal(0) }) describe('managing recipients', () => { const recipientIndex = 1 - const [recipientId, recipientData] = encodeRecipient(recipient.address) + let recipientId: string + let recipientData: string + + before(async () => { + ;[recipientId, recipientData] = encodeRecipient(recipient.address) + }) beforeEach(async () => { - await registry.connect(controller).setMaxRecipients(MAX_RECIPIENTS) + await (registry.connect(controller) as Contract).setMaxRecipients( + MAX_RECIPIENTS + ) }) it('allows anyone to add recipient', async () => { await tcr.addItem(recipientData) - const recipientAdded = await registry - .connect(recipient) - .addRecipient(recipientId) + const recipientAdded = await ( + registry.connect(recipient) as Contract + ).addRecipient(recipientId) let currentTime = await getCurrentTime() expect(recipientAdded) .to.emit(registry, 'RecipientAdded') @@ -403,9 +429,9 @@ describe('Kleros GTCR adapter', () => { anotherRecipientAddress ) await tcr.addItem(anotherRecipientData) - const anotherRecipientAdded = await registry - .connect(recipient) - .addRecipient(anotherRecipientId) + const anotherRecipientAdded = await ( + registry.connect(recipient) as Contract + ).addRecipient(anotherRecipientId) currentTime = await getCurrentTime() // Should increase recipient index for every new recipient expect(anotherRecipientAdded) @@ -439,11 +465,11 @@ describe('Kleros GTCR adapter', () => { it('allows anyone to remove recipient', async () => { await tcr.addItem(recipientData) - await registry.connect(recipient).addRecipient(recipientId) + await (registry.connect(recipient) as Contract).addRecipient(recipientId) await tcr.removeItem(recipientId) - const recipientRemoved = await registry - .connect(recipient) - .removeRecipient(recipientId) + const recipientRemoved = await ( + registry.connect(recipient) as Contract + ).removeRecipient(recipientId) const currentTime = await getCurrentTime() expect(recipientRemoved) .to.emit(registry, 'RecipientRemoved') @@ -490,7 +516,9 @@ describe('Kleros GTCR adapter', () => { } beforeEach(async () => { - await registry.connect(controller).setMaxRecipients(MAX_RECIPIENTS) + await (registry.connect(controller) as Contract).setMaxRecipients( + MAX_RECIPIENTS + ) }) it('allows to re-use index of removed recipient', async () => { @@ -525,7 +553,7 @@ describe('Kleros GTCR adapter', () => { removedRecipient2 ) - await provider.send('evm_increaseTime', [1000]) + time.increase(1000) const time3 = await getCurrentTime() // Recipients removed before the beginning of the round should be replaced expect(await registry.getRecipientAddress(1, time2, time3)).to.equal( @@ -539,17 +567,25 @@ describe('Kleros GTCR adapter', () => { }) describe('Optimistic recipient registry', () => { - const [, deployer, controller, recipient, requester] = provider.getWallets() let registry: Contract + let registryAddress: string - const baseDeposit = UNIT.div(10) // 0.1 ETH - const challengePeriodDuration = BigNumber.from(86400) // Seconds + let deployer: HardhatEthersSigner + let controller: HardhatEthersSigner + let recipient: HardhatEthersSigner + let requester: HardhatEthersSigner + + const baseDeposit = UNIT / 10n // 0.1 ETH + const challengePeriodDuration = 86400 // Seconds enum RequestType { Registration = 0, Removal = 1, } + before(async () => { + ;[, deployer, controller, recipient, requester] = await ethers.getSigners() + }) beforeEach(async () => { registry = await deployContract({ name: 'OptimisticRecipientRegistry', @@ -557,6 +593,7 @@ describe('Optimistic recipient registry', () => { ethers, signer: deployer, }) + registryAddress = await registry.getAddress() }) it('initializes correctly', async () => { @@ -569,13 +606,13 @@ describe('Optimistic recipient registry', () => { }) it('changes base deposit', async () => { - const newBaseDeposit = baseDeposit.mul(2) + const newBaseDeposit = baseDeposit * 2n await registry.setBaseDeposit(newBaseDeposit) expect(await registry.baseDeposit()).to.equal(newBaseDeposit) }) it('changes challenge period duration', async () => { - const newChallengePeriodDuration = challengePeriodDuration.mul(2) + const newChallengePeriodDuration = challengePeriodDuration * 2 await registry.setChallengePeriodDuration(newChallengePeriodDuration) expect(await registry.challengePeriodDuration()).to.equal( newChallengePeriodDuration @@ -589,20 +626,22 @@ describe('Optimistic recipient registry', () => { let recipientId: string beforeEach(async () => { - await registry.connect(controller).setMaxRecipients(MAX_RECIPIENTS) + await (registry.connect(controller) as Contract).setMaxRecipients( + MAX_RECIPIENTS + ) recipientAddress = recipient.address metadata = JSON.stringify({ name: 'Recipient', description: 'Description', imageHash: 'Ipfs imageHash', }) - recipientId = getRecipientId(registry.address, recipientAddress, metadata) + recipientId = getRecipientId(registryAddress, recipientAddress, metadata) }) it('allows anyone to submit registration request', async () => { - const requestSubmitted = await registry - .connect(requester) - .addRecipient(recipientAddress, metadata, { value: baseDeposit }) + const requestSubmitted = await ( + registry.connect(requester) as Contract + ).addRecipient(recipientAddress, metadata, { value: baseDeposit }) const currentTime = await getCurrentTime() expect(requestSubmitted) .to.emit(registry, 'RequestSubmitted') @@ -613,7 +652,9 @@ describe('Optimistic recipient registry', () => { metadata, currentTime ) - expect(await provider.getBalance(registry.address)).to.equal(baseDeposit) + expect(await ethers.provider.getBalance(registryAddress)).to.equal( + baseDeposit + ) }) it('should not accept zero-address as recipient address', async () => { @@ -638,7 +679,7 @@ describe('Optimistic recipient registry', () => { await registry.addRecipient(recipientAddress, metadata, { value: baseDeposit, }) - await provider.send('evm_increaseTime', [86400]) + await time.increase(86400) await registry.executeRequest(recipientId) await expect( registry.addRecipient(recipientAddress, metadata, { @@ -661,16 +702,18 @@ describe('Optimistic recipient registry', () => { it('should not accept registration request with incorrect deposit size', async () => { await expect( registry.addRecipient(recipientAddress, metadata, { - value: baseDeposit.div(2), + value: baseDeposit / 2n, }) ).to.be.revertedWith('RecipientRegistry: Incorrect deposit amount') }) it('allows owner to challenge registration request', async () => { - await registry - .connect(requester) - .addRecipient(recipientAddress, metadata, { value: baseDeposit }) - const requesterBalanceBefore = await provider.getBalance( + await (registry.connect(requester) as Contract).addRecipient( + recipientAddress, + metadata, + { value: baseDeposit } + ) + const requesterBalanceBefore = await ethers.provider.getBalance( requester.address ) const requestRejected = await registry.challengeRequest( @@ -681,8 +724,10 @@ describe('Optimistic recipient registry', () => { expect(requestRejected) .to.emit(registry, 'RequestResolved') .withArgs(recipientId, RequestType.Registration, true, 0, currentTime) - const requesterBalanceAfter = await provider.getBalance(requester.address) - expect(requesterBalanceBefore.add(baseDeposit)).to.equal( + const requesterBalanceAfter = await ethers.provider.getBalance( + requester.address + ) + expect(requesterBalanceBefore + baseDeposit).to.equal( requesterBalanceAfter ) }) @@ -691,33 +736,38 @@ describe('Optimistic recipient registry', () => { await registry.addRecipient(recipientAddress, metadata, { value: baseDeposit, }) - const controllerBalanceBefore = await provider.getBalance( + const controllerBalanceBefore = await ethers.provider.getBalance( controller.address ) await registry.challengeRequest(recipientId, controller.address) - const controllerBalanceAfter = await provider.getBalance( + const controllerBalanceAfter = await ethers.provider.getBalance( controller.address ) - expect(controllerBalanceBefore.add(baseDeposit)).to.equal( + expect(controllerBalanceBefore + baseDeposit).to.equal( controllerBalanceAfter ) }) it('allows only owner to challenge requests', async () => { - await registry - .connect(requester) - .addRecipient(recipientAddress, metadata, { value: baseDeposit }) + await (registry.connect(requester) as Contract).addRecipient( + recipientAddress, + metadata, + { value: baseDeposit } + ) await expect( - registry - .connect(requester) - .challengeRequest(recipientId, requester.address) + (registry.connect(requester) as Contract).challengeRequest( + recipientId, + requester.address + ) ).to.be.revertedWith('Ownable: caller is not the owner') }) it('should not allow to challenge resolved request', async () => { - await registry - .connect(requester) - .addRecipient(recipientAddress, metadata, { value: baseDeposit }) + await (registry.connect(requester) as Contract).addRecipient( + recipientAddress, + metadata, + { value: baseDeposit } + ) await registry.challengeRequest(recipientId, requester.address) await expect( registry.challengeRequest(recipientId, requester.address) @@ -725,17 +775,19 @@ describe('Optimistic recipient registry', () => { }) it('allows anyone to execute unchallenged registration request', async () => { - await registry - .connect(requester) - .addRecipient(recipientAddress, metadata, { value: baseDeposit }) - await provider.send('evm_increaseTime', [86400]) + await (registry.connect(requester) as Contract).addRecipient( + recipientAddress, + metadata, + { value: baseDeposit } + ) + await time.increase(86400) - const requesterBalanceBefore = await provider.getBalance( + const requesterBalanceBefore = await ethers.provider.getBalance( requester.address ) - const requestExecuted = await registry - .connect(requester) - .executeRequest(recipientId) + const requestExecuted = await ( + registry.connect(requester) as Contract + ).executeRequest(recipientId) const currentTime = await getCurrentTime() expect(requestExecuted) .to.emit(registry, 'RequestResolved') @@ -747,8 +799,10 @@ describe('Optimistic recipient registry', () => { currentTime ) const txFee = await getTxFee(requestExecuted) - const requesterBalanceAfter = await provider.getBalance(requester.address) - expect(requesterBalanceBefore.sub(txFee).add(baseDeposit)).to.equal( + const requesterBalanceAfter = await ethers.provider.getBalance( + requester.address + ) + expect(requesterBalanceBefore - txFee + baseDeposit).to.equal( requesterBalanceAfter ) @@ -773,7 +827,7 @@ describe('Optimistic recipient registry', () => { }) await expect( - registry.connect(requester).executeRequest(recipientId) + (registry.connect(requester) as Contract).executeRequest(recipientId) ).to.be.revertedWith('RecipientRegistry: Challenge period is not over') }) @@ -783,30 +837,34 @@ describe('Optimistic recipient registry', () => { }) let recipientCount = await registry.getRecipientCount() - expect(recipientCount.toNumber()).to.equal(0) + expect(Number(recipientCount)).to.equal(0) await registry.executeRequest(recipientId) recipientCount = await registry.getRecipientCount() - expect(recipientCount.toNumber()).to.equal(1) + expect(Number(recipientCount)).to.equal(1) }) it('should remember initial deposit amount during registration', async () => { - await registry - .connect(requester) - .addRecipient(recipientAddress, metadata, { value: baseDeposit }) - await registry.setBaseDeposit(baseDeposit.mul(2)) - await provider.send('evm_increaseTime', [86400]) + await (registry.connect(requester) as Contract).addRecipient( + recipientAddress, + metadata, + { value: baseDeposit } + ) + await registry.setBaseDeposit(baseDeposit * 2n) + await time.increase(86400) - const requesterBalanceBefore = await provider.getBalance( + const requesterBalanceBefore = await ethers.provider.getBalance( requester.address ) - const requestExecuted = await registry - .connect(requester) - .executeRequest(recipientId) + const requestExecuted = await ( + registry.connect(requester) as Contract + ).executeRequest(recipientId) const txFee = await getTxFee(requestExecuted) - const requesterBalanceAfter = await provider.getBalance(requester.address) - expect(requesterBalanceBefore.sub(txFee).add(baseDeposit)).to.equal( + const requesterBalanceAfter = await ethers.provider.getBalance( + requester.address + ) + expect(requesterBalanceBefore - txFee + baseDeposit).to.equal( requesterBalanceAfter ) }) @@ -822,7 +880,7 @@ describe('Optimistic recipient registry', () => { }) recipientAddress = `0x000000000000000000000000000000000000${recipientName}` recipientId = getRecipientId( - registry.address, + registryAddress, recipientAddress, metadata ) @@ -830,13 +888,13 @@ describe('Optimistic recipient registry', () => { await registry.addRecipient(recipientAddress, metadata, { value: baseDeposit, }) - await provider.send('evm_increaseTime', [86400]) + await time.increase(86400) await registry.executeRequest(recipientId) } else { await registry.addRecipient(recipientAddress, metadata, { value: baseDeposit, }) - await provider.send('evm_increaseTime', [86400]) + await time.increase(86400) await expect(registry.executeRequest(recipientId)).to.be.revertedWith( 'RecipientRegistry: Recipient limit reached' ) @@ -848,7 +906,7 @@ describe('Optimistic recipient registry', () => { await registry.addRecipient(recipientAddress, metadata, { value: baseDeposit, }) - await provider.send('evm_increaseTime', [86400]) + await time.increase(86400) await registry.executeRequest(recipientId) const requestSubmitted = await registry.removeRecipient(recipientId, { @@ -872,7 +930,7 @@ describe('Optimistic recipient registry', () => { }) await registry.executeRequest(recipientId) - const registryAsRequester = registry.connect(requester) + const registryAsRequester = registry.connect(requester) as Contract await registryAsRequester.removeRecipient(recipientId, { value: baseDeposit, }) @@ -892,12 +950,14 @@ describe('Optimistic recipient registry', () => { await registry.addRecipient(recipientAddress, metadata, { value: baseDeposit, }) - await provider.send('evm_increaseTime', [86400]) + await time.increase(86400) await registry.executeRequest(recipientId) await registry.removeRecipient(recipientId, { value: baseDeposit }) - await provider.send('evm_increaseTime', [86400]) - await registry.connect(requester).executeRequest(recipientId) + await time.increase(86400) + await (registry.connect(requester) as Contract).executeRequest( + recipientId + ) await expect(registry.removeRecipient(recipientId)).to.be.revertedWith( 'RecipientRegistry: Recipient already removed' @@ -908,7 +968,7 @@ describe('Optimistic recipient registry', () => { await registry.addRecipient(recipientAddress, metadata, { value: baseDeposit, }) - await provider.send('evm_increaseTime', [86400]) + await time.increase(86400) await registry.executeRequest(recipientId) await registry.removeRecipient(recipientId, { value: baseDeposit }) @@ -921,7 +981,7 @@ describe('Optimistic recipient registry', () => { await registry.addRecipient(recipientAddress, metadata, { value: baseDeposit, }) - await provider.send('evm_increaseTime', [86400]) + await time.increase(86400) await registry.executeRequest(recipientId) await registry.removeRecipient(recipientId, { value: baseDeposit }) @@ -948,15 +1008,15 @@ describe('Optimistic recipient registry', () => { await registry.addRecipient(recipientAddress, metadata, { value: baseDeposit, }) - await provider.send('evm_increaseTime', [86400]) + await time.increase(86400) await registry.executeRequest(recipientId) await registry.removeRecipient(recipientId, { value: baseDeposit }) - await provider.send('evm_increaseTime', [86400]) + await time.increase(86400) - const requestExecuted = await registry - .connect(requester) - .executeRequest(recipientId) + const requestExecuted = await ( + registry.connect(requester) as Contract + ).executeRequest(recipientId) const currentTime = await getCurrentTime() expect(requestExecuted) .to.emit(registry, 'RequestResolved') diff --git a/contracts/tests/round.ts b/contracts/tests/round.ts index 1628aee99..7fee60fd9 100644 --- a/contracts/tests/round.ts +++ b/contracts/tests/round.ts @@ -1,10 +1,15 @@ -import { ethers, waffle, artifacts, config } from 'hardhat' -import { use, expect } from 'chai' -import { solidity } from 'ethereum-waffle' -import { deployMockContract } from '@ethereum-waffle/mock-contract' -import { Contract, BigNumber, ContractTransaction } from 'ethers' -import { defaultAbiCoder } from '@ethersproject/abi' -import { genRandomSalt } from '@clrfund/maci-crypto' +import { ethers, artifacts, config } from 'hardhat' +import { expect } from 'chai' +import { time } from '@nomicfoundation/hardhat-network-helpers' +import { deployMockContract, MockContract } from '@clrfund/waffle-mock-contract' +import { + Contract, + ContractTransaction, + parseEther, + sha256, + AbiCoder, +} from 'ethers' +import { genRandomSalt } from 'maci-crypto' import { Keypair } from '@clrfund/common' import { @@ -26,50 +31,50 @@ import { getRecipientClaimData, getRecipientTallyResultsBatch, } from '../utils/maci' -import { sha256 } from 'ethers/lib/utils' import { MaciParameters } from '../utils/maciParameters' import { DEFAULT_CIRCUIT } from '../utils/circuits' -use(solidity) - // ethStaker test vectors for Quadratic Funding with alpha import smallTallyTestData from './data/testTallySmall.json' -const totalSpent = BigNumber.from( - smallTallyTestData.totalSpentVoiceCredits.spent -) -const budget = BigNumber.from(totalSpent).mul(VOICE_CREDIT_FACTOR).mul(2) +import { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers' +const totalSpent = BigInt(smallTallyTestData.totalSpentVoiceCredits.spent) +const budget = BigInt(totalSpent) * VOICE_CREDIT_FACTOR * 2n const totalQuadraticVotes = smallTallyTestData.results.tally.reduce( (total, tally) => { - return BigNumber.from(tally).pow(2).add(total) + return BigInt(tally) ** 2n + BigInt(total) }, - BigNumber.from(0) + BigInt(0) ) -const matchingPoolSize = budget.sub(totalSpent.mul(VOICE_CREDIT_FACTOR)) - -const expectedAlpha = matchingPoolSize - .mul(ALPHA_PRECISION) - .div(totalQuadraticVotes.sub(totalSpent)) - .div(VOICE_CREDIT_FACTOR) - -function calcAllocationAmount(tally: string, voiceCredit: string): BigNumber { - const quadratic = expectedAlpha - .mul(VOICE_CREDIT_FACTOR) - .mul(BigNumber.from(tally).pow(2)) - const linear = ALPHA_PRECISION.sub(expectedAlpha).mul( - VOICE_CREDIT_FACTOR.mul(voiceCredit) - ) - const allocation = quadratic.add(linear) - return allocation.div(ALPHA_PRECISION) +const matchingPoolSize = budget - totalSpent * VOICE_CREDIT_FACTOR + +const expectedAlpha = + (matchingPoolSize * ALPHA_PRECISION) / + ((totalQuadraticVotes - totalSpent) * VOICE_CREDIT_FACTOR) + +// ABI encoder +const encoder = new AbiCoder() + +function asContract(contract: MockContract): Contract { + return contract as unknown as Contract +} + +function calcAllocationAmount(tally: string, voiceCredit: string): bigint { + const quadratic = expectedAlpha * VOICE_CREDIT_FACTOR * BigInt(tally) ** 2n + const linear = + (ALPHA_PRECISION - expectedAlpha) * + (VOICE_CREDIT_FACTOR * BigInt(voiceCredit)) + const allocation = quadratic + linear + return allocation / ALPHA_PRECISION } async function finalizeRound( fundingRound: Contract, - totalSpent: string | BigNumber, + totalSpent: string | bigint, totalSpentSalt: string ): Promise { // generate random 32 bytes for test only - const newResultCommitment = genRandomSalt().toString() - const perVOVoiceCreditsCommitment = genRandomSalt().toString() + const newResultCommitment = genRandomSalt() + const perVOVoiceCreditsCommitment = genRandomSalt() return fundingRound.finalize( totalSpent, totalSpentSalt, @@ -79,13 +84,9 @@ async function finalizeRound( } describe('Funding Round', () => { - const provider = waffle.provider - const [, deployer, coordinator, contributor, anotherContributor, recipient] = - provider.getWallets() - const coordinatorPubKey = new Keypair().pubKey const userKeypair = new Keypair() - const contributionAmount = UNIT.mul(10) + const contributionAmount = UNIT * 10n const tallyHash = 'test' const tallyTreeDepth = 2 const pollDuration = 86400 * 7 @@ -95,34 +96,53 @@ describe('Funding Round', () => { const tallyBatchNum = 2 let token: Contract - let userRegistry: Contract - let recipientRegistry: Contract + let tokenAsContributor: Contract + let userRegistry: MockContract + let recipientRegistry: MockContract + let fundingRound: Contract - let maci: Contract + let fundingRoundAsCoordinator: Contract + let fundingRoundAsContributor: Contract + let fundingRoundAsRecipient: Contract + let fundingRoundAsAnotherContributor: Contract + + let maci: MockContract let pollId: bigint - let poll: Contract - let tally: Contract + let poll: MockContract + let tally: MockContract + + let deployer: HardhatEthersSigner + let coordinator: HardhatEthersSigner + let contributor: HardhatEthersSigner + let anotherContributor: HardhatEthersSigner + let recipient: HardhatEthersSigner + + before(async () => { + ;[, deployer, coordinator, contributor, anotherContributor, recipient] = + await ethers.getSigners() + }) - async function deployMaciMock(): Promise { + async function deployMaciMock(): Promise { const MACIArtifact = await artifacts.readArtifact('MACI') const maci = await deployMockContract(deployer, MACIArtifact.abi) - await maci.mock.signUp.returns() + await maci.mock.signUp.returns(10) return maci } - async function deployMockContractByName(name: string): Promise { + async function deployMockContractByName(name: string): Promise { const artifact = await artifacts.readArtifact(name) const contract = await deployMockContract(deployer, artifact.abi) return contract } beforeEach(async () => { - const tokenInitialSupply = UNIT.mul(1000000) + const tokenInitialSupply = UNIT * 1000000n const Token = await ethers.getContractFactory('AnyOldERC20Token', deployer) - token = await Token.deploy(tokenInitialSupply.add(budget)) - await token.transfer(contributor.address, tokenInitialSupply.div(4)) - await token.transfer(anotherContributor.address, tokenInitialSupply.div(4)) - await token.transfer(coordinator.address, tokenInitialSupply.div(4)) + token = await Token.deploy(tokenInitialSupply + budget) + await token.transfer(contributor.address, tokenInitialSupply / 4n) + await token.transfer(anotherContributor.address, tokenInitialSupply / 4n) + await token.transfer(coordinator.address, tokenInitialSupply / 4n) + tokenAsContributor = token.connect(contributor) as Contract const IUserRegistryArtifact = await artifacts.readArtifact('IUserRegistry') userRegistry = await deployMockContract(deployer, IUserRegistryArtifact.abi) @@ -145,13 +165,21 @@ describe('Funding Round', () => { libraries, contractArgs: [ token.address, - userRegistry.address, - recipientRegistry.address, + userRegistry.target, + recipientRegistry.target, coordinator.address, ], ethers, signer: deployer, }) + + fundingRoundAsCoordinator = fundingRound.connect(coordinator) as Contract + fundingRoundAsContributor = fundingRound.connect(contributor) as Contract + fundingRoundAsRecipient = fundingRound.connect(recipient) as Contract + fundingRoundAsAnotherContributor = fundingRound.connect( + anotherContributor + ) as Contract + const maciFactory = await deployMaciFactory({ ethers, signer: deployer, @@ -162,8 +190,8 @@ describe('Funding Round', () => { await maciFactory.setMaciParameters(...maciParams.asContractParam()) const maciDeployed = await maciFactory.deployMaci( - fundingRound.address, - fundingRound.address, + fundingRound.target, + fundingRound.target, token.address, pollDuration, coordinator.address, @@ -179,7 +207,12 @@ describe('Funding Round', () => { maci = await ethers.getContractAt('MACI', maciAddress) - pollId = await getEventArg(maciDeployed, maci, 'DeployPoll', '_pollId') + pollId = await getEventArg( + maciDeployed, + asContract(maci), + 'DeployPoll', + '_pollId' + ) const pollAddress = await getEventArg( maciDeployed, maci, @@ -196,9 +229,9 @@ describe('Funding Round', () => { expect(await fundingRound.matchingPoolSize()).to.equal(0) expect(await fundingRound.totalSpent()).to.equal(0) expect(await fundingRound.totalVotes()).to.equal(0) - expect(await fundingRound.userRegistry()).to.equal(userRegistry.address) + expect(await fundingRound.userRegistry()).to.equal(userRegistry.target) expect(await fundingRound.recipientRegistry()).to.equal( - recipientRegistry.address + recipientRegistry.target ) expect(await fundingRound.isFinalized()).to.equal(false) expect(await fundingRound.isCancelled()).to.equal(false) @@ -207,27 +240,26 @@ describe('Funding Round', () => { }) it('allows owner to set MACI address', async () => { - await fundingRound.setMaci(maci.address) - expect(await fundingRound.maci()).to.equal(maci.address) + await fundingRound.setMaci(maci.target) + expect(await fundingRound.maci()).to.equal(maci.target) }) it('allows to set MACI address only once', async () => { - await fundingRound.setMaci(maci.address) - await expect(fundingRound.setMaci(maci.address)).to.be.revertedWith( + await fundingRound.setMaci(maci.target) + await expect(fundingRound.setMaci(maci.target)).to.be.revertedWith( 'MaciAlreadySet' ) }) it('allows only owner to set MACI address', async () => { - const fundingRoundAsCoordinator = fundingRound.connect(coordinator) await expect( - fundingRoundAsCoordinator.setMaci(maci.address) + fundingRoundAsCoordinator.setMaci(maci.target) ).to.be.revertedWith('Ownable: caller is not the owner') }) describe('accepting contributions', () => { const userPubKey = userKeypair.pubKey.asContractParam() - const encodedContributorAddress = defaultAbiCoder.encode( + const encodedContributorAddress = encoder.encode( ['address'], [contributor.address] ) @@ -235,14 +267,14 @@ describe('Funding Round', () => { let fundingRoundAsContributor: Contract beforeEach(async () => { - tokenAsContributor = token.connect(contributor) - fundingRoundAsContributor = fundingRound.connect(contributor) + tokenAsContributor = token.connect(contributor) as Contract + fundingRoundAsContributor = fundingRound.connect(contributor) as Contract }) it('accepts contributions from everyone', async () => { - await fundingRound.setMaci(maci.address) - await tokenAsContributor.approve(fundingRound.address, contributionAmount) - const expectedVoiceCredits = contributionAmount.div(VOICE_CREDIT_FACTOR) + await fundingRound.setMaci(maci.target) + await tokenAsContributor.approve(fundingRound.target, contributionAmount) + const expectedVoiceCredits = contributionAmount / VOICE_CREDIT_FACTOR await expect( fundingRoundAsContributor.contribute(userPubKey, contributionAmount) ) @@ -252,21 +284,21 @@ describe('Funding Round', () => { // We use [] to skip argument matching, otherwise it will fail // Possibly related: https://github.com/EthWorks/Waffle/issues/245 //.withArgs([], 1, expectedVoiceCredits, []) - expect(await token.balanceOf(fundingRound.address)).to.equal( + expect(await token.balanceOf(fundingRound.target)).to.equal( contributionAmount ) expect(await fundingRound.contributorCount()).to.equal(1) expect( await fundingRound.getVoiceCredits( - fundingRound.address, + fundingRound.target, encodedContributorAddress ) ).to.equal(expectedVoiceCredits) }) it('rejects contributions if MACI has not been linked to a round', async () => { - await tokenAsContributor.approve(fundingRound.address, contributionAmount) + await tokenAsContributor.approve(fundingRound.target, contributionAmount) await expect( fundingRoundAsContributor.contribute(userPubKey, contributionAmount) ).to.be.revertedWith('MaciNotSet') @@ -277,36 +309,36 @@ describe('Funding Round', () => { }) it('rejects contributions if funding round has been finalized', async () => { - await fundingRound.setMaci(maci.address) + await fundingRound.setMaci(maci.target) await fundingRound.cancel() - await tokenAsContributor.approve(fundingRound.address, contributionAmount) + await tokenAsContributor.approve(fundingRound.target, contributionAmount) await expect( fundingRoundAsContributor.contribute(userPubKey, contributionAmount) ).to.be.revertedWith('AlreadyFinalized') }) it('rejects contributions with zero amount', async () => { - await fundingRound.setMaci(maci.address) - await tokenAsContributor.approve(fundingRound.address, contributionAmount) + await fundingRound.setMaci(maci.target) + await tokenAsContributor.approve(fundingRound.target, contributionAmount) await expect( fundingRoundAsContributor.contribute(userPubKey, 0) ).to.be.revertedWith('ContributionAmountIsZero') }) it('rejects contributions that are too large', async () => { - await fundingRound.setMaci(maci.address) - const contributionAmount = UNIT.mul(10001) - await tokenAsContributor.approve(fundingRound.address, contributionAmount) + await fundingRound.setMaci(maci.target) + const contributionAmount = UNIT + 10001n + await tokenAsContributor.approve(fundingRound.target, contributionAmount) await expect( fundingRoundAsContributor.contribute(userPubKey, contributionAmount) ).to.be.revertedWith('ContributionAmountTooLarge') }) it('allows to contribute only once per round', async () => { - await fundingRound.setMaci(maci.address) + await fundingRound.setMaci(maci.target) await tokenAsContributor.approve( - fundingRound.address, - contributionAmount.mul(2) + fundingRound.target, + contributionAmount * 2n ) await fundingRoundAsContributor.contribute(userPubKey, contributionAmount) await expect( @@ -315,15 +347,15 @@ describe('Funding Round', () => { }) it('requires approval', async () => { - await fundingRound.setMaci(maci.address) + await fundingRound.setMaci(maci.target) await expect( fundingRoundAsContributor.contribute(userPubKey, contributionAmount) ).to.be.revertedWith('ERC20: insufficient allowance') }) it('rejects contributions from unverified users', async () => { - await fundingRound.setMaci(maci.address) - await tokenAsContributor.approve(fundingRound.address, contributionAmount) + await fundingRound.setMaci(maci.target) + await tokenAsContributor.approve(fundingRound.target, contributionAmount) await userRegistry.mock.isVerifiedUser.returns(false) await expect( fundingRoundAsContributor.contribute(userPubKey, contributionAmount) @@ -331,24 +363,18 @@ describe('Funding Round', () => { }) it('should not allow users who have not contributed to sign up directly in MACI', async () => { - await fundingRound.setMaci(maci.address) - const signUpData = defaultAbiCoder.encode( - ['address'], - [contributor.address] - ) + await fundingRound.setMaci(maci.target) + const signUpData = encoder.encode(['address'], [contributor.address]) await expect( maci.signUp(userPubKey, signUpData, encodedContributorAddress) ).to.be.revertedWith('UserHasNotContributed') }) it('should not allow users who have already signed up to sign up directly in MACI', async () => { - await fundingRound.setMaci(maci.address) - await tokenAsContributor.approve(fundingRound.address, contributionAmount) + await fundingRound.setMaci(maci.target) + await tokenAsContributor.approve(fundingRound.target, contributionAmount) await fundingRoundAsContributor.contribute(userPubKey, contributionAmount) - const signUpData = defaultAbiCoder.encode( - ['address'], - [contributor.address] - ) + const signUpData = encoder.encode(['address'], [contributor.address]) await expect( maci.signUp(userPubKey, signUpData, encodedContributorAddress) ).to.be.revertedWith('UserAlreadyRegistered') @@ -357,7 +383,7 @@ describe('Funding Round', () => { it('should not return the amount of voice credits for user who has not contributed', async () => { await expect( fundingRound.getVoiceCredits( - fundingRound.address, + fundingRound.target, encodedContributorAddress ) ).to.be.revertedWith('NoVoiceCredits') @@ -365,17 +391,16 @@ describe('Funding Round', () => { }) describe('voting', () => { - const singleVote = UNIT.mul(4) + const singleVote = UNIT * 4n let fundingRoundAsContributor: Contract let userStateIndex: number let recipientIndex = 1 let nonce = 1 beforeEach(async () => { - await fundingRound.setMaci(maci.address) - const tokenAsContributor = token.connect(contributor) - await tokenAsContributor.approve(fundingRound.address, contributionAmount) - fundingRoundAsContributor = fundingRound.connect(contributor) + await fundingRound.setMaci(maci.target) + await tokenAsContributor.approve(fundingRound.target, contributionAmount) + fundingRoundAsContributor = fundingRound.connect(contributor) as Contract const contributionTx = await fundingRoundAsContributor.contribute( userKeypair.pubKey.asContractParam(), contributionAmount @@ -537,17 +562,16 @@ describe('Funding Round', () => { describe('publishing tally hash', () => { it('allows coordinator to publish vote tally hash', async () => { - await expect( - fundingRound.connect(coordinator).publishTallyHash(tallyHash) - ) + await expect(fundingRoundAsCoordinator.publishTallyHash(tallyHash)) .to.emit(fundingRound, 'TallyPublished') .withArgs(tallyHash) expect(await fundingRound.tallyHash()).to.equal(tallyHash) // Should be possible to re-publish - await expect( - fundingRound.connect(coordinator).publishTallyHash('fixed') - ).to.emit(fundingRound, 'TallyPublished') + await expect(fundingRoundAsCoordinator.publishTallyHash('fixed')).to.emit( + fundingRound, + 'TallyPublished' + ) }) it('allows only coordinator to publish tally hash', async () => { @@ -559,26 +583,26 @@ describe('Funding Round', () => { it('reverts if round has been finalized', async () => { await fundingRound.cancel() await expect( - fundingRound.connect(coordinator).publishTallyHash(tallyHash) + fundingRoundAsCoordinator.publishTallyHash(tallyHash) ).to.be.revertedWith('RoundAlreadyFinalized') }) it('rejects empty string', async () => { await expect( - fundingRound.connect(coordinator).publishTallyHash('') + fundingRoundAsCoordinator.publishTallyHash('') ).to.be.revertedWith('EmptyTallyHash') }) }) describe('finalizing round', () => { - const matchingPoolSize = UNIT.mul(10000) - const totalContributions = UNIT.mul(1000) - const totalSpent = totalContributions.div(VOICE_CREDIT_FACTOR) + const matchingPoolSize = UNIT * 10000n + const totalContributions = UNIT * 1000n + const totalSpent = totalContributions / VOICE_CREDIT_FACTOR const totalSpentSalt = genRandomSalt().toString() const totalVotes = bnSqrt(totalSpent) const tallyTreeDepth = 2 - expect(totalVotes.toNumber()).to.equal(10000) + expect(totalVotes).to.equal(10000n) beforeEach(async () => { maci = await deployMaciMock() @@ -586,7 +610,7 @@ describe('Funding Round', () => { tally = await deployMockContractByName('Tally') pollId = BigInt(0) await poll.mock.treeDepths.returns(1, 1, 1, tallyTreeDepth) - await maci.mock.getPoll.returns(poll.address) + await maci.mock.getPoll.returns(poll.target) // round.isTallied() = tallyBatchSize * tallyBatchNum >= numSignups await poll.mock.numSignUpsAndMessages.returns(numSignUps, 1) @@ -596,35 +620,34 @@ describe('Funding Round', () => { await tally.mock.verifySpentVoiceCredits.returns(true) // round.isVotingOver() - const deployTime = (await provider.getBlock('latest')).timestamp + const deployTime = await time.latest() await poll.mock.getDeployTimeAndDuration.returns(deployTime, pollDuration) - await token - .connect(contributor) - .approve(fundingRound.address, totalContributions) + await tokenAsContributor.approve(fundingRound.target, totalContributions) }) it('allows owner to finalize round', async () => { - await fundingRound.setMaci(maci.address) + await fundingRound.setMaci(maci.target) await fundingRound.setPoll(pollId) - await fundingRound.connect(coordinator).setTally(tally.address) + await fundingRoundAsCoordinator.setTally(tally.target) - await fundingRound - .connect(contributor) - .contribute(userKeypair.pubKey.asContractParam(), totalContributions) - await provider.send('evm_increaseTime', [pollDuration]) - await fundingRound.connect(coordinator).publishTallyHash(tallyHash) + await fundingRoundAsContributor.contribute( + userKeypair.pubKey.asContractParam(), + totalContributions + ) + await time.increase(pollDuration) + await fundingRoundAsCoordinator.publishTallyHash(tallyHash) expect(await fundingRound.tallyHash()).to.equal(tallyHash) - await token.transfer(fundingRound.address, matchingPoolSize) + await token.transfer(fundingRound.target, matchingPoolSize) await addTallyResultsBatch( - fundingRound.connect(coordinator), + fundingRoundAsCoordinator, tallyTreeDepth, smallTallyTestData, 5 ) - await finalizeRound(fundingRound, totalSpent, totalSpentSalt) + await finalizeRound(fundingRound, totalSpent, totalSpentSalt.toString()) expect(await fundingRound.isFinalized()).to.equal(true) expect(await fundingRound.isCancelled()).to.equal(false) expect(await fundingRound.totalSpent()).to.equal(totalSpent) @@ -632,18 +655,19 @@ describe('Funding Round', () => { }) it('allows owner to finalize round when matching pool is empty', async () => { - await fundingRound.setMaci(maci.address) + await fundingRound.setMaci(maci.target) await fundingRound.setPoll(pollId) - await fundingRound.connect(coordinator).setTally(tally.address) + await fundingRoundAsCoordinator.setTally(tally.target) - await fundingRound - .connect(contributor) - .contribute(userKeypair.pubKey.asContractParam(), totalContributions) - await provider.send('evm_increaseTime', [pollDuration]) - await fundingRound.connect(coordinator).publishTallyHash(tallyHash) + await fundingRoundAsContributor.contribute( + userKeypair.pubKey.asContractParam(), + totalContributions + ) + await time.increase(pollDuration) + await fundingRoundAsCoordinator.publishTallyHash(tallyHash) await addTallyResultsBatch( - fundingRound.connect(coordinator), + fundingRoundAsCoordinator, tallyTreeDepth, smallTallyTestData, 5 @@ -656,45 +680,45 @@ describe('Funding Round', () => { }) it('counts direct token transfers to funding round as matching pool contributions', async () => { - await fundingRound.setMaci(maci.address) + await fundingRound.setMaci(maci.target) await fundingRound.setPoll(pollId) - await fundingRound.connect(coordinator).setTally(tally.address) + await fundingRoundAsCoordinator.setTally(tally.target) - await fundingRound - .connect(contributor) - .contribute(userKeypair.pubKey.asContractParam(), totalContributions) - await provider.send('evm_increaseTime', [pollDuration]) - await fundingRound.connect(coordinator).publishTallyHash(tallyHash) - await token.transfer(fundingRound.address, matchingPoolSize) - await token - .connect(contributor) - .transfer(fundingRound.address, contributionAmount) + await fundingRoundAsContributor.contribute( + userKeypair.pubKey.asContractParam(), + totalContributions + ) + await time.increase(pollDuration) + await fundingRoundAsCoordinator.publishTallyHash(tallyHash) + await token.transfer(fundingRound.target, matchingPoolSize) + await tokenAsContributor.transfer(fundingRound.target, contributionAmount) await addTallyResultsBatch( - fundingRound.connect(coordinator), + fundingRoundAsCoordinator, tallyTreeDepth, smallTallyTestData, 5 ) await finalizeRound(fundingRound, totalSpent, totalSpentSalt) expect(await fundingRound.matchingPoolSize()).to.equal( - matchingPoolSize.add(contributionAmount) + matchingPoolSize + contributionAmount ) }) it('reverts if round has been finalized already', async () => { - await fundingRound.setMaci(maci.address) + await fundingRound.setMaci(maci.target) await fundingRound.setPoll(pollId) - await fundingRound.connect(coordinator).setTally(tally.address) + await fundingRoundAsCoordinator.setTally(tally.target) - await fundingRound - .connect(contributor) - .contribute(userKeypair.pubKey.asContractParam(), totalContributions) - await provider.send('evm_increaseTime', [pollDuration]) - await fundingRound.connect(coordinator).publishTallyHash(tallyHash) - await token.transfer(fundingRound.address, matchingPoolSize) + await fundingRoundAsContributor.contribute( + userKeypair.pubKey.asContractParam(), + totalContributions + ) + await time.increase(pollDuration) + await fundingRoundAsCoordinator.publishTallyHash(tallyHash) + await token.transfer(fundingRound.target, matchingPoolSize) await addTallyResultsBatch( - fundingRound.connect(coordinator), + fundingRoundAsCoordinator, tallyTreeDepth, smallTallyTestData, 5 @@ -707,21 +731,22 @@ describe('Funding Round', () => { }) it('reverts MACI has not been deployed', async () => { - await provider.send('evm_increaseTime', [pollDuration]) + await time.increase(pollDuration) await expect( finalizeRound(fundingRound, totalSpent, totalSpentSalt) ).to.be.revertedWith('MaciNotSet') }) it('reverts if voting is still in progress', async () => { - await fundingRound.setMaci(maci.address) + await fundingRound.setMaci(maci.target) await fundingRound.setPoll(pollId) - await fundingRound.connect(coordinator).setTally(tally.address) + await fundingRoundAsCoordinator.setTally(tally.target) - await fundingRound - .connect(contributor) - .contribute(userKeypair.pubKey.asContractParam(), totalContributions) - await provider.send('evm_increaseTime', [halfPollDuration]) + await fundingRoundAsContributor.contribute( + userKeypair.pubKey.asContractParam(), + totalContributions + ) + await time.increase(halfPollDuration) await expect( finalizeRound(fundingRound, totalSpent, totalSpentSalt) @@ -729,14 +754,15 @@ describe('Funding Round', () => { }) it('reverts if votes has not been tallied', async () => { - await fundingRound.setMaci(maci.address) + await fundingRound.setMaci(maci.target) await fundingRound.setPoll(pollId) - await fundingRound.connect(coordinator).setTally(tally.address) + await fundingRoundAsCoordinator.setTally(tally.target) - await fundingRound - .connect(contributor) - .contribute(userKeypair.pubKey.asContractParam(), totalContributions) - await provider.send('evm_increaseTime', [pollDuration]) + await fundingRoundAsContributor.contribute( + userKeypair.pubKey.asContractParam(), + totalContributions + ) + await time.increase(pollDuration) await poll.mock.numSignUpsAndMessages.returns(numSignUps * 2, 1) await expect( @@ -745,14 +771,15 @@ describe('Funding Round', () => { }) it('reverts if tally hash has not been published', async () => { - await fundingRound.setMaci(maci.address) + await fundingRound.setMaci(maci.target) await fundingRound.setPoll(pollId) - await fundingRound.connect(coordinator).setTally(tally.address) + await fundingRoundAsCoordinator.setTally(tally.target) - await fundingRound - .connect(contributor) - .contribute(userKeypair.pubKey.asContractParam(), totalContributions) - await provider.send('evm_increaseTime', [pollDuration]) + await fundingRoundAsContributor.contribute( + userKeypair.pubKey.asContractParam(), + totalContributions + ) + await time.increase(pollDuration) await expect( finalizeRound(fundingRound, totalSpent, totalSpentSalt) @@ -761,20 +788,21 @@ describe('Funding Round', () => { // TODO: get total votes in maci v1 it.skip('reverts if total votes is zero', async () => { - await fundingRound.setMaci(maci.address) + await fundingRound.setMaci(maci.target) await fundingRound.setPoll(pollId) - await fundingRound.connect(coordinator).setTally(tally.address) + await fundingRoundAsCoordinator.setTally(tally.target) - await fundingRound - .connect(contributor) - .contribute(userKeypair.pubKey.asContractParam(), totalContributions) - await provider.send('evm_increaseTime', [pollDuration]) - await fundingRound.connect(coordinator).publishTallyHash(tallyHash) - await token.transfer(fundingRound.address, matchingPoolSize) - await maci.mock.totalVotes.returns(0) + await fundingRoundAsContributor.contribute( + userKeypair.pubKey.asContractParam(), + totalContributions + ) + await time.increase(pollDuration) + await fundingRoundAsCoordinator.publishTallyHash(tallyHash) + await token.transfer(fundingRound.target, matchingPoolSize) + //await maci.mock.totalVotes.returns(0) await addTallyResultsBatch( - fundingRound.connect(coordinator), + fundingRoundAsCoordinator, tallyTreeDepth, smallTallyTestData, 5 @@ -785,20 +813,21 @@ describe('Funding Round', () => { }) it.skip('reverts if total amount of spent voice credits is incorrect', async () => { - await fundingRound.setMaci(maci.address) + await fundingRound.setMaci(maci.target) await fundingRound.setPoll(pollId) - await fundingRound.connect(coordinator).setTally(tally.address) + await fundingRoundAsCoordinator.setTally(tally.target) - await fundingRound - .connect(contributor) - .contribute(userKeypair.pubKey.asContractParam(), totalContributions) - await provider.send('evm_increaseTime', [pollDuration]) - await fundingRound.connect(coordinator).publishTallyHash(tallyHash) - await token.transfer(fundingRound.address, matchingPoolSize) + await fundingRoundAsContributor.contribute( + userKeypair.pubKey.asContractParam(), + totalContributions + ) + await time.increase(pollDuration) + await fundingRoundAsCoordinator.publishTallyHash(tallyHash) + await token.transfer(fundingRound.target, matchingPoolSize) await poll.mock.verifySpentVoiceCredits.returns(false) await addTallyResultsBatch( - fundingRound.connect(coordinator), + fundingRoundAsCoordinator, tallyTreeDepth, smallTallyTestData, 5 @@ -810,18 +839,18 @@ describe('Funding Round', () => { }) it('allows only owner to finalize round', async () => { - await fundingRound.setMaci(maci.address) + await fundingRound.setMaci(maci.target) await fundingRound.setPoll(pollId) - await fundingRound.connect(coordinator).setTally(tally.address) + await fundingRoundAsCoordinator.setTally(tally.target) - await fundingRound - .connect(contributor) - .contribute(userKeypair.pubKey.asContractParam(), totalContributions) - await provider.send('evm_increaseTime', [pollDuration]) - await fundingRound.connect(coordinator).publishTallyHash(tallyHash) - await token.transfer(fundingRound.address, matchingPoolSize) + await fundingRoundAsContributor.contribute( + userKeypair.pubKey.asContractParam(), + totalContributions + ) + await time.increase(pollDuration) + await fundingRoundAsCoordinator.publishTallyHash(tallyHash) + await token.transfer(fundingRound.target, matchingPoolSize) - const fundingRoundAsCoordinator = fundingRound.connect(coordinator) await expect( finalizeRound(fundingRoundAsCoordinator, totalSpent, totalSpentSalt) ).to.be.revertedWith('Ownable: caller is not the owner') @@ -836,9 +865,9 @@ describe('Funding Round', () => { }) it('reverts if round has been finalized already', async () => { - const matchingPoolSize = UNIT.mul(10000) - const totalContributions = UNIT.mul(1000) - const totalSpent = totalContributions.div(VOICE_CREDIT_FACTOR) + const matchingPoolSize = UNIT * 10000n + const totalContributions = UNIT * 1000n + const totalSpent = totalContributions / VOICE_CREDIT_FACTOR const totalSpentSalt = genRandomSalt().toString() maci = await deployMaciMock() @@ -848,7 +877,7 @@ describe('Funding Round', () => { await tally.mock.verifyTallyResult.returns(true) await tally.mock.verifySpentVoiceCredits.returns(true) await poll.mock.treeDepths.returns(1, 2, 3, tallyTreeDepth) - await maci.mock.getPoll.returns(poll.address) + await maci.mock.getPoll.returns(poll.target) // round.isTallied() = tallyBatchSize * tallyBatchNum >= numSignups await poll.mock.numSignUpsAndMessages.returns(numSignUps, 1) @@ -856,23 +885,22 @@ describe('Funding Round', () => { await tally.mock.tallyBatchNum.returns(tallyBatchNum) // round.isVotingOver() - const deployTime = (await provider.getBlock('latest')).timestamp + const deployTime = await time.latest() await poll.mock.getDeployTimeAndDuration.returns(deployTime, pollDuration) - await fundingRound.setMaci(maci.address) + await fundingRound.setMaci(maci.target) await fundingRound.setPoll(pollId) - await fundingRound.connect(coordinator).setTally(tally.address) - await token - .connect(contributor) - .approve(fundingRound.address, totalContributions) - await fundingRound - .connect(contributor) - .contribute(userKeypair.pubKey.asContractParam(), totalContributions) - await provider.send('evm_increaseTime', [pollDuration]) - await fundingRound.connect(coordinator).publishTallyHash(tallyHash) - await token.transfer(fundingRound.address, matchingPoolSize) + await fundingRoundAsCoordinator.setTally(tally.target) + await tokenAsContributor.approve(fundingRound.target, totalContributions) + await fundingRoundAsContributor.contribute( + userKeypair.pubKey.asContractParam(), + totalContributions + ) + await time.increase(pollDuration) + await fundingRoundAsCoordinator.publishTallyHash(tallyHash) + await token.transfer(fundingRound.target, matchingPoolSize) await addTallyResultsBatch( - fundingRound.connect(coordinator), + fundingRoundAsCoordinator, tallyTreeDepth, smallTallyTestData, 3 @@ -892,7 +920,6 @@ describe('Funding Round', () => { }) it('allows only owner to cancel round', async () => { - const fundingRoundAsCoordinator = fundingRound.connect(coordinator) await expect(fundingRoundAsCoordinator.cancel()).to.be.revertedWith( 'Ownable: caller is not the owner' ) @@ -902,32 +929,32 @@ describe('Funding Round', () => { describe('withdrawing funds', () => { const userPubKey = userKeypair.pubKey.asContractParam() const anotherUserPubKey = userKeypair.pubKey.asContractParam() - const contributionAmount = UNIT.mul(10) + const contributionAmount = UNIT * 10n let fundingRoundAsContributor: Contract beforeEach(async () => { - fundingRoundAsContributor = fundingRound.connect(contributor) - await fundingRound.setMaci(maci.address) + await fundingRound.setMaci(maci.target) await token .connect(contributor) - .approve(fundingRound.address, contributionAmount) + .approve(fundingRound.target, contributionAmount) await token .connect(anotherContributor) - .approve(fundingRound.address, contributionAmount) + .approve(fundingRound.target, contributionAmount) }) it('allows contributors to withdraw funds', async () => { await fundingRoundAsContributor.contribute(userPubKey, contributionAmount) - await fundingRound - .connect(anotherContributor) - .contribute(anotherUserPubKey, contributionAmount) + await fundingRoundAsAnotherContributor.contribute( + anotherUserPubKey, + contributionAmount + ) await fundingRound.cancel() await expect(fundingRoundAsContributor.withdrawContribution()) .to.emit(fundingRound, 'ContributionWithdrawn') .withArgs(contributor.address) - await fundingRound.connect(anotherContributor).withdrawContribution() - expect(await token.balanceOf(fundingRound.address)).to.equal(0) + await fundingRoundAsAnotherContributor.withdrawContribution() + expect(await token.balanceOf(fundingRound.target)).to.equal(0) }) it('disallows withdrawal if round is not cancelled', async () => { @@ -945,58 +972,49 @@ describe('Funding Round', () => { }) it('reverts if funds are already withdrawn', async () => { - await fundingRound - .connect(contributor) - .contribute(userPubKey, contributionAmount) - await fundingRound - .connect(anotherContributor) - .contribute(anotherUserPubKey, contributionAmount) + await fundingRoundAsContributor.contribute(userPubKey, contributionAmount) + await fundingRoundAsAnotherContributor.contribute( + anotherUserPubKey, + contributionAmount + ) await fundingRound.cancel() - await fundingRound.connect(contributor).withdrawContribution() + await fundingRoundAsContributor.withdrawContribution() await expect( - fundingRound.connect(contributor).withdrawContribution() + fundingRoundAsContributor.withdrawContribution() ).to.be.revertedWith('NothingToWithdraw') }) it('allows anyone to withdraw multiple contributions', async () => { - await fundingRound - .connect(contributor) - .contribute(userPubKey, contributionAmount) - await fundingRound - .connect(anotherContributor) - .contribute(anotherUserPubKey, contributionAmount) + await fundingRoundAsContributor.contribute(userPubKey, contributionAmount) + await fundingRoundAsAnotherContributor.contribute( + anotherUserPubKey, + contributionAmount + ) await fundingRound.cancel() - const tx = await fundingRound - .connect(coordinator) - .withdrawContributions([ - contributor.address, - anotherContributor.address, - ]) + const tx = await fundingRoundAsCoordinator.withdrawContributions([ + contributor.address, + anotherContributor.address, + ]) await tx.wait() - expect(await token.balanceOf(fundingRound.address)).to.equal(0) + expect(await token.balanceOf(fundingRound.target)).to.equal(0) }) it('allows transaction to complete even if some contributions fail to withdraw', async () => { - await fundingRound - .connect(contributor) - .contribute(userPubKey, contributionAmount) + await fundingRoundAsContributor.contribute(userPubKey, contributionAmount) await fundingRound.cancel() - const tx = await fundingRound - .connect(coordinator) - .withdrawContributions([ - contributor.address, - anotherContributor.address, - ]) + const tx = await fundingRoundAsCoordinator.withdrawContributions([ + contributor.address, + anotherContributor.address, + ]) await tx.wait() - expect(await token.balanceOf(fundingRound.address)).to.equal(0) + expect(await token.balanceOf(fundingRound.target)).to.equal(0) }) }) describe('claiming funds', () => { - const totalVotes = totalQuadraticVotes const recipientIndex = 3 const { spent: totalSpent, salt: totalSpentSalt } = @@ -1008,8 +1026,6 @@ describe('Funding Round', () => { smallTallyTestData.results.tally[recipientIndex], smallTallyTestData.perVOSpentVoiceCredits.tally[recipientIndex] ).toString() - let fundingRoundAsRecipient: Contract - let fundingRoundAsContributor: Contract beforeEach(async () => { maci = await deployMaciMock() @@ -1017,7 +1033,7 @@ describe('Funding Round', () => { tally = await deployMockContractByName('Tally') pollId = BigInt(0) await poll.mock.treeDepths.returns(1, 1, 1, tallyTreeDepth) - await maci.mock.getPoll.returns(poll.address) + await maci.mock.getPoll.returns(poll.target) // round.isTallied() = tallyBatchSize * tallyBatchNum >= numSignups await poll.mock.numSignUpsAndMessages.returns(numSignUps, 1) @@ -1028,28 +1044,25 @@ describe('Funding Round', () => { await tally.mock.tallyBatchNum.returns(tallyBatchNum) // round.isVotingOver() - const deployTime = (await provider.getBlock('latest')).timestamp + const deployTime = await time.latest() await poll.mock.getDeployTimeAndDuration.returns(deployTime, pollDuration) await recipientRegistry.mock.getRecipientAddress.returns( recipient.address ) - await fundingRound.setMaci(maci.address) + await fundingRound.setMaci(maci.target) await fundingRound.setPoll(pollId) - await fundingRound.connect(coordinator).setTally(tally.address) - const tokenAsContributor = token.connect(contributor) - await tokenAsContributor.approve(fundingRound.address, contributions) - fundingRoundAsContributor = fundingRound.connect(contributor) + await fundingRoundAsCoordinator.setTally(tally.target) + await tokenAsContributor.approve(fundingRound.target, contributions) - await provider.send('evm_increaseTime', [pollDuration]) - await fundingRound.connect(coordinator).publishTallyHash(tallyHash) - fundingRoundAsRecipient = fundingRound.connect(recipient) + await time.increase(pollDuration) + await fundingRoundAsCoordinator.publishTallyHash(tallyHash) }) it('allows recipient to claim allocated funds', async () => { - await token.transfer(fundingRound.address, budget) + await token.transfer(fundingRound.target, budget) await addTallyResultsBatch( - fundingRound.connect(coordinator), + fundingRoundAsCoordinator, tallyTreeDepth, smallTallyTestData, 3 @@ -1081,9 +1094,9 @@ describe('Funding Round', () => { }) it('allows address different than recipient to claim allocated funds', async () => { - await token.transfer(fundingRound.address, budget) + await token.transfer(fundingRound.target, budget) await addTallyResultsBatch( - fundingRound.connect(coordinator), + fundingRoundAsCoordinator, tallyTreeDepth, smallTallyTestData, 3 @@ -1105,9 +1118,9 @@ describe('Funding Round', () => { }) it('allows recipient to claim zero amount', async () => { - await token.transfer(fundingRound.address, budget) + await token.transfer(fundingRound.target, budget) await addTallyResultsBatch( - fundingRound.connect(coordinator), + fundingRoundAsCoordinator, tallyTreeDepth, smallTallyTestData, 3 @@ -1127,20 +1140,18 @@ describe('Funding Round', () => { }) it('allows recipient to claim if the matching pool is empty', async () => { - const totalContributions = - ethers.BigNumber.from(totalSpent).mul(VOICE_CREDIT_FACTOR) - await token.transfer(fundingRound.address, totalContributions) + const totalContributions = BigInt(totalSpent) * VOICE_CREDIT_FACTOR + await token.transfer(fundingRound.target, totalContributions) await addTallyResultsBatch( - fundingRound.connect(coordinator), + fundingRoundAsCoordinator, tallyTreeDepth, smallTallyTestData, 3 ) await finalizeRound(fundingRound, totalSpent, totalSpentSalt) - const expectedWithoutMatching = ethers.BigNumber.from(contributions) - .mul(VOICE_CREDIT_FACTOR) - .toString() + const expectedWithoutMatching = + BigInt(contributions) * VOICE_CREDIT_FACTOR const claimData = getRecipientClaimData( recipientIndex, @@ -1153,7 +1164,7 @@ describe('Funding Round', () => { }) it('should not allow recipient to claim funds if round has not been finalized', async () => { - await token.transfer(fundingRound.address, budget) + await token.transfer(fundingRound.target, budget) const claimData = getRecipientClaimData( recipientIndex, @@ -1166,7 +1177,7 @@ describe('Funding Round', () => { }) it('should not allow recipient to claim funds if round has been cancelled', async () => { - await token.transfer(fundingRound.address, budget) + await token.transfer(fundingRound.target, budget) await fundingRound.cancel() const claimData = getRecipientClaimData( @@ -1180,9 +1191,9 @@ describe('Funding Round', () => { }) it('sends funds allocated to unverified recipients back to matching pool', async () => { - await token.transfer(fundingRound.address, budget) + await token.transfer(fundingRound.target, budget) await addTallyResultsBatch( - fundingRound.connect(coordinator), + fundingRoundAsCoordinator, tallyTreeDepth, smallTallyTestData, 3 @@ -1205,9 +1216,9 @@ describe('Funding Round', () => { }) it('allows recipient to claim allocated funds only once', async () => { - await token.transfer(fundingRound.address, budget) + await token.transfer(fundingRound.target, budget) await addTallyResultsBatch( - fundingRound.connect(coordinator), + fundingRoundAsCoordinator, tallyTreeDepth, smallTallyTestData, 3 @@ -1226,12 +1237,12 @@ describe('Funding Round', () => { }) it('should verify that tally result is correct', async () => { - await token.transfer(fundingRound.address, budget) + await token.transfer(fundingRound.target, budget) await tally.mock.verifyTallyResult.returns(false) await expect( addTallyResultsBatch( - fundingRound.connect(coordinator), + fundingRoundAsCoordinator, tallyTreeDepth, smallTallyTestData, 3 @@ -1240,11 +1251,11 @@ describe('Funding Round', () => { }) it.skip('should verify that amount of spent voice credits is correct', async () => { - await token.transfer(fundingRound.address, budget) + await token.transfer(fundingRound.target, budget) await tally.mock.verifyPerVOSpentVoiceCredits.returns(false) await addTallyResultsBatch( - fundingRound.connect(coordinator), + fundingRoundAsCoordinator, tallyTreeDepth, smallTallyTestData, 3 @@ -1275,7 +1286,7 @@ describe('Funding Round', () => { await tally.mock.verifyTallyResult.returns(true) await tally.mock.verifySpentVoiceCredits.returns(true) await poll.mock.treeDepths.returns(1, 1, 1, treeDepth) - await maci.mock.getPoll.returns(poll.address) + await maci.mock.getPoll.returns(poll.target) // round.isTallied() = tallyBatchSize * tallyBatchNum >= numSignups await poll.mock.numSignUpsAndMessages.returns(numSignUps, 1) @@ -1284,31 +1295,29 @@ describe('Funding Round', () => { await tally.mock.tallyBatchNum.returns(tallyBatchNum) // round.isVotingOver() - const deployTime = (await provider.getBlock('latest')).timestamp + const deployTime = await time.latest() await poll.mock.getDeployTimeAndDuration.returns(deployTime, pollDuration) await recipientRegistry.mock.getRecipientAddress.returns( recipient.address ) - await fundingRound.setMaci(maci.address) + await fundingRound.setMaci(maci.target) await fundingRound.setPoll(pollId) - await fundingRound.connect(coordinator).setTally(tally.address) + await fundingRoundAsCoordinator.setTally(tally.target) await recipientRegistry.mock.getRecipientAddress.returns( recipient.address ) - await token.transfer(fundingRound.address, budget) - - const fundingRoundAsCoordinator = fundingRound.connect(coordinator) + await token.transfer(fundingRound.target, budget) await fundingRoundAsCoordinator.publishTallyHash(tallyHash) - await provider.send('evm_increaseTime', [pollDuration]) + await time.increase(pollDuration) }) it('adds and verifies tally results', async function () { this.timeout(2 * 60 * 1000) await addTallyResultsBatch( - fundingRound.connect(coordinator), + fundingRoundAsCoordinator, treeDepth, smallTallyTestData, 5 @@ -1327,7 +1336,7 @@ describe('Funding Round', () => { it('calculates alpha correctly', async function () { this.timeout(2 * 60 * 1000) await addTallyResultsBatch( - fundingRound.connect(coordinator), + fundingRoundAsCoordinator, treeDepth, smallTallyTestData, 5 @@ -1345,7 +1354,7 @@ describe('Funding Round', () => { it('finalizes successfully', async function () { await addTallyResultsBatch( - fundingRound.connect(coordinator), + fundingRoundAsCoordinator, treeDepth, smallTallyTestData, 3 @@ -1387,7 +1396,7 @@ describe('Funding Round', () => { } const batchSize = 3 await addTallyResultsBatch( - fundingRound.connect(coordinator), + fundingRoundAsCoordinator, tallyTreeDepth, tallyWith1Contributor, batchSize @@ -1400,7 +1409,7 @@ describe('Funding Round', () => { it('calculates claim funds correctly', async function () { await addTallyResultsBatch( - fundingRound.connect(coordinator), + fundingRoundAsCoordinator, treeDepth, smallTallyTestData, 20 @@ -1440,7 +1449,7 @@ describe('Funding Round', () => { // increase the number of signup to simulate incomplete tallying await poll.mock.numSignUpsAndMessages.returns(numSignUps * 2, 1) await addTallyResultsBatch( - fundingRound.connect(coordinator), + fundingRoundAsCoordinator, tallyTreeDepth, smallTallyTestData, tallyBatchSize @@ -1452,7 +1461,6 @@ describe('Funding Round', () => { }) it('allows only coordinator to add tally results', async function () { - const fundingRoundAsContributor = fundingRound.connect(contributor) await expect( addTallyResultsBatch( fundingRoundAsContributor, @@ -1464,7 +1472,6 @@ describe('Funding Round', () => { }) it('allows only coordinator to add tally results in batches', async function () { - const fundingRoundAsContributor = fundingRound.connect(contributor) await expect( addTallyResultsBatch( fundingRoundAsContributor, @@ -1481,7 +1488,7 @@ describe('Funding Round', () => { await expect( addTallyResultsBatch( - fundingRound.connect(coordinator), + fundingRoundAsCoordinator, tallyTreeDepth, smallTallyTestData, 5 @@ -1495,7 +1502,7 @@ describe('Funding Round', () => { await expect( addTallyResultsBatch( - fundingRound.connect(coordinator), + fundingRoundAsCoordinator, tallyTreeDepth, smallTallyTestData, 5 @@ -1507,7 +1514,7 @@ describe('Funding Round', () => { //await maci.mock.treeDepths.returns(10, 10, tallyTreeDepth) await addTallyResultsBatch( - fundingRound.connect(coordinator), + fundingRoundAsCoordinator, tallyTreeDepth, smallTallyTestData, 5 @@ -1516,7 +1523,7 @@ describe('Funding Round', () => { await finalizeRound(fundingRound, totalSpent, totalSpentSalt) await expect( addTallyResultsBatch( - fundingRound.connect(coordinator), + fundingRoundAsCoordinator, tallyTreeDepth, smallTallyTestData, 5 @@ -1526,14 +1533,14 @@ describe('Funding Round', () => { it('prevents adding tally results that were already verified', async function () { await addTallyResultsBatch( - fundingRound.connect(coordinator), + fundingRoundAsCoordinator, tallyTreeDepth, smallTallyTestData, 5 ) await expect( addTallyResultsBatch( - fundingRound.connect(coordinator), + fundingRoundAsCoordinator, tallyTreeDepth, smallTallyTestData, 5 @@ -1548,7 +1555,7 @@ describe('Funding Round', () => { const total = smallTallyTestData.results.tally.length const lastBatch = Math.ceil(total / batchSize) await addTallyResultsBatch( - fundingRound.connect(coordinator), + fundingRoundAsCoordinator, tallyTreeDepth, smallTallyTestData, batchSize, @@ -1618,7 +1625,7 @@ describe('Funding Round', () => { }) it('fails alpha calculation if no project has more than 1 vote', async function () { - const totalBudget = ethers.utils.parseEther('200') + const totalBudget = parseEther('200') const totalVotesSquares = 88 const totalSpent = 100 await expect( diff --git a/contracts/tests/userRegistry.ts b/contracts/tests/userRegistry.ts index 7721bb744..63d05e76f 100644 --- a/contracts/tests/userRegistry.ts +++ b/contracts/tests/userRegistry.ts @@ -1,19 +1,18 @@ -import { ethers, waffle } from 'hardhat' -import { use, expect } from 'chai' -import { solidity } from 'ethereum-waffle' +import { ethers } from 'hardhat' +import { expect } from 'chai' import { Contract } from 'ethers' import { ZERO_ADDRESS } from '../utils/constants' - -use(solidity) +import { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers' describe('Simple User Registry', () => { - const provider = waffle.provider - const [, deployer, user] = provider.getWallets() - let registry: Contract + let user: HardhatEthersSigner beforeEach(async () => { + let deployer: HardhatEthersSigner + ;[, deployer, user] = await ethers.getSigners() + const SimpleUserRegistry = await ethers.getContractFactory( 'SimpleUserRegistry', deployer @@ -44,7 +43,7 @@ describe('Simple User Registry', () => { }) it('allows only owner to add users', async () => { - const registryAsUser = registry.connect(user) + const registryAsUser = registry.connect(user) as Contract await expect(registryAsUser.addUser(user.address)).to.be.revertedWith( 'Ownable: caller is not the owner' ) @@ -66,7 +65,7 @@ describe('Simple User Registry', () => { it('allows only owner to remove users', async () => { await registry.addUser(user.address) - const registryAsUser = registry.connect(user) + const registryAsUser = registry.connect(user) as Contract await expect(registryAsUser.removeUser(user.address)).to.be.revertedWith( 'Ownable: caller is not the owner' ) diff --git a/contracts/tests/userRegistryBrightId.ts b/contracts/tests/userRegistryBrightId.ts index d92ed49fb..687d0a47f 100644 --- a/contracts/tests/userRegistryBrightId.ts +++ b/contracts/tests/userRegistryBrightId.ts @@ -1,15 +1,18 @@ -import { ethers, waffle } from 'hardhat' -import { use, expect } from 'chai' -import { solidity } from 'ethereum-waffle' -import { Contract, providers, utils } from 'ethers' +import { ethers } from 'hardhat' +import { expect } from 'chai' +import { + Wallet, + Contract, + SigningKey, + encodeBytes32String, + solidityPackedKeccak256, +} from 'ethers' import { ZERO_ADDRESS } from '../utils/constants' +import { time } from '@nomicfoundation/hardhat-network-helpers' +import { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers' -use(solidity) - -const verifier = ethers.Wallet.createRandom() -const signingKey = new utils.SigningKey(verifier.privateKey) - -const context = utils.formatBytes32String('clrfund-goerli') +const verifier = Wallet.createRandom() +const context = encodeBytes32String('clrfund-goerli') const verificationHash = '0xc99d46ae8baaa7ed2766cbf34e566de43decc2ff7d8e3da5cb80e72f3b5e20de' @@ -24,26 +27,18 @@ type Verification = { verificationHash: string } -async function getBlockTimestamp( - provider: providers.Provider -): Promise { - const blockNumber = await provider.getBlockNumber() - const block = await provider.getBlock(blockNumber) - return block.timestamp -} - -function generateVerification( +async function generateVerification( appUserId: string, timestamp: number, - anotherSigner?: utils.SigningKey -): Verification { - const message = utils.solidityKeccak256( + anotherSigner?: SigningKey +): Promise { + const message = solidityPackedKeccak256( ['bytes32', 'address', 'bytes32', 'uint256'], [context, appUserId, verificationHash, timestamp] ) - const sig = anotherSigner - ? anotherSigner.signDigest(message) - : signingKey.signDigest(message) + + const signer = anotherSigner ?? verifier.signingKey + const sig = await signer.sign(message) return { appUserId, @@ -65,19 +60,24 @@ function register(registry: Contract, verification: Verification) { ) } -describe('BrightId User Registry', () => { - const provider = waffle.provider - const [, deployer, user] = provider.getWallets() - +describe('BrightId User Registry', async () => { let registry: Contract let sponsor: Contract + let user: HardhatEthersSigner + let sponsorAddress: string + + before(async () => { + ;[, , user] = await ethers.getSigners() + }) beforeEach(async () => { + const [, deployer] = await ethers.getSigners() const BrightIdSponsor = await ethers.getContractFactory( 'BrightIdSponsor', deployer ) sponsor = await BrightIdSponsor.deploy() + sponsorAddress = await sponsor.getAddress() const BrightIdUserRegistry = await ethers.getContractFactory( 'BrightIdUserRegistry', @@ -86,7 +86,7 @@ describe('BrightId User Registry', () => { registry = await BrightIdUserRegistry.deploy( context, verifier.address, - sponsor.address + sponsorAddress ) }) @@ -108,19 +108,22 @@ describe('BrightId User Registry', () => { }) it('allows valid sponsor', async () => { - await expect(registry.setSponsor(sponsor.address)) + await expect(registry.setSponsor(sponsorAddress)) .to.emit(registry, 'SponsorChanged') - .withArgs(sponsor.address) + .withArgs(sponsorAddress) }) describe('registration', () => { let blockTimestamp: number beforeEach(async () => { - blockTimestamp = await getBlockTimestamp(provider) + blockTimestamp = await time.latest() }) it('allows valid verified user to register', async () => { - const verification = generateVerification(user.address, blockTimestamp) + const verification = await generateVerification( + user.address, + blockTimestamp + ) expect(await registry.isVerifiedUser(user.address)).to.equal(false) await expect(register(registry, verification)) .to.emit(registry, 'Registered') @@ -130,7 +133,7 @@ describe('BrightId User Registry', () => { }) it('rejects verifications with 0 timestamp', async () => { - const verification = generateVerification(user.address, 0) + const verification = await generateVerification(user.address, 0) await expect(register(registry, verification)).to.be.revertedWith( 'NEWER VERIFICATION REGISTERED BEFORE' ) @@ -140,8 +143,8 @@ describe('BrightId User Registry', () => { expect(await registry.isVerifiedUser(user.address)).to.equal(false) const oldTime = blockTimestamp const newTime = blockTimestamp + 1 - const oldVerification = generateVerification(user.address, oldTime) - const newVerification = generateVerification(user.address, newTime) + const oldVerification = await generateVerification(user.address, oldTime) + const newVerification = await generateVerification(user.address, newTime) await expect(register(registry, newVerification)) .to.emit(registry, 'Registered') .withArgs(user.address, newVerification.timestamp) @@ -155,17 +158,25 @@ describe('BrightId User Registry', () => { it('rejects invalid verifications', async () => { const timestamp = blockTimestamp - const signer = new utils.SigningKey(user.privateKey) - const verification = generateVerification(user.address, timestamp, signer) + const anotherSigner = Wallet.createRandom() + + const verification = await generateVerification( + user.address, + timestamp, + anotherSigner.signingKey + ) await expect(register(registry, verification)).to.be.revertedWith( 'NOT AUTHORIZED' ) }) it('rejects invalid context', async () => { - const verification = generateVerification(user.address, blockTimestamp) + const verification = await generateVerification( + user.address, + blockTimestamp + ) const tx = await registry.setSettings( - utils.formatBytes32String('invalid'), + encodeBytes32String('invalid'), verifier.address ) await tx.wait() diff --git a/contracts/tests/userRegistryMerkle.ts b/contracts/tests/userRegistryMerkle.ts index 5ee1467eb..87c021a55 100644 --- a/contracts/tests/userRegistryMerkle.ts +++ b/contracts/tests/userRegistryMerkle.ts @@ -1,50 +1,53 @@ -import { ethers, waffle } from 'hardhat' -import { use, expect } from 'chai' -import { solidity } from 'ethereum-waffle' -import { Contract, utils, Wallet } from 'ethers' +import { ethers } from 'hardhat' +import { expect } from 'chai' +import { Contract, Wallet, zeroPadBytes, randomBytes } from 'ethers' import { loadUserMerkleTree, getUserMerkleProof } from '@clrfund/common' - -use(solidity) +import { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers' describe('Merkle User Registry', () => { - const provider = waffle.provider - const [, deployer, user1, user2] = provider.getWallets() - - const signers = { [user1.address]: user1, [user2.address]: user2 } - const authorizedUsers = [user1.address, user2.address] let registry: Contract let tree: any + let user1: HardhatEthersSigner + let user2: HardhatEthersSigner + const signers: Record = {} + + before(async () => { + ;[, , user1, user2] = await ethers.getSigners() + signers[user1.address] = user1 + signers[user2.address] = user2 + }) beforeEach(async () => { + const [, deployer] = await ethers.getSigners() const MerkleUserRegistry = await ethers.getContractFactory( 'MerkleUserRegistry', deployer ) registry = await MerkleUserRegistry.deploy() - tree = loadUserMerkleTree(authorizedUsers) + tree = loadUserMerkleTree(Object.keys(signers)) const tx = await registry.setMerkleRoot(tree.root, 'test') await tx.wait() }) it('rejects zero merkle root', async () => { await expect( - registry.setMerkleRoot(utils.hexZeroPad('0x0', 32), 'testzero') + registry.setMerkleRoot(zeroPadBytes('0x00', 32), 'testzero') ).to.be.revertedWith('MerkleUserRegistry: Merkle root is zero') }) it('should not allow non-owner to set the merkle root', async () => { - const registryAsUser = registry.connect(signers[user1.address]) + const registryAsUser = registry.connect(signers[user1.address]) as Contract await expect( - registryAsUser.setMerkleRoot(utils.hexZeroPad('0x1', 32), 'non owner') + registryAsUser.setMerkleRoot(randomBytes(32), 'non owner') ).to.be.revertedWith('Ownable: caller is not the owner') }) describe('registration', () => { it('allows valid verified user to register', async () => { - for (const user of authorizedUsers) { + for (const user of Object.keys(signers)) { const proof = getUserMerkleProof(user, tree) - const registryAsUser = registry.connect(signers[user]) + const registryAsUser = registry.connect(signers[user]) as Contract await expect(registryAsUser.addUser(user, proof)) .to.emit(registryAsUser, 'UserAdded') .withArgs(user, tree.root) @@ -55,7 +58,9 @@ describe('Merkle User Registry', () => { it('rejects unauthorized user', async () => { const user = ethers.Wallet.createRandom() const proof = tree.getProof(0) - const registryAsUser = registry.connect(signers[user1.address]) + const registryAsUser = registry.connect( + signers[user1.address] + ) as Contract await expect( registryAsUser.addUser(user.address, proof) ).to.be.revertedWith('MerkleUserRegistry: User is not authorized') @@ -65,16 +70,16 @@ describe('Merkle User Registry', () => { it('should be able load 10k users', async function () { this.timeout(200000) - const allAuthorizedUsers = Array.from(authorizedUsers) + const allAuthorizedUsers = Object.keys(signers) for (let i = 0; i < 10000; i++) { - const randomWallet = new Wallet(utils.randomBytes(32)) + const randomWallet = Wallet.createRandom() allAuthorizedUsers.push(randomWallet.address) } tree = loadUserMerkleTree(allAuthorizedUsers) const tx = await registry.setMerkleRoot(tree.root, 'test') await tx.wait() - const registryAsUser = registry.connect(user1) + const registryAsUser = registry.connect(user1) as Contract const proof = getUserMerkleProof(user1.address, tree) await expect(registryAsUser.addUser(user1.address, proof)) .to.emit(registryAsUser, 'UserAdded') diff --git a/contracts/tests/userRegistrySnapshot.ts b/contracts/tests/userRegistrySnapshot.ts index 97a4422e2..2426cd048 100644 --- a/contracts/tests/userRegistrySnapshot.ts +++ b/contracts/tests/userRegistrySnapshot.ts @@ -1,12 +1,11 @@ import { ethers } from 'hardhat' -import { use, expect } from 'chai' -import { solidity } from 'ethereum-waffle' +import { expect } from 'chai' import { Contract, ContractTransaction, - providers, - constants, - utils, + InfuraProvider, + ZeroAddress, + ZeroHash, } from 'ethers' import { Block, @@ -16,11 +15,9 @@ import { rlpEncodeProof, } from '@clrfund/common' -use(solidity) - // Accounts from arbitrum-goerli to call eth_getProof as hardhat network // does not support eth_getProof -const provider = new providers.InfuraProvider('arbitrum-goerli') +const provider = new InfuraProvider('arbitrum-goerli') const tokens = [ { @@ -107,7 +104,7 @@ describe('SnapshotUserRegistry', function () { it('Should throw if token address is 0', async function () { await expect( userRegistry.setStorageRoot( - constants.AddressZero, + ZeroAddress, block.hash, block.stateRoot, token.storageSlot, @@ -120,7 +117,7 @@ describe('SnapshotUserRegistry', function () { await expect( userRegistry.setStorageRoot( token.address, - utils.hexZeroPad('0x00', 32), + ZeroHash, block.stateRoot, token.storageSlot, accountProofRlpBytes @@ -133,7 +130,7 @@ describe('SnapshotUserRegistry', function () { userRegistry.setStorageRoot( token.address, block.hash, - utils.hexZeroPad('0x00', 32), + ZeroHash, token.storageSlot, accountProofRlpBytes ) diff --git a/contracts/tsconfig.json b/contracts/tsconfig.json index 224cc64b7..785bef695 100644 --- a/contracts/tsconfig.json +++ b/contracts/tsconfig.json @@ -4,13 +4,10 @@ "module": "commonjs", "strict": true, "esModuleInterop": true, - "outDir": "dist", + "forceConsistentCasingInFileNames": true, + "skipLibCheck": true, "resolveJsonModule": true }, - "include": ["./scripts", "./tests", "./cli"], - "files": [ - "./hardhat.config.ts", - "./node_modules/@nomiclabs/hardhat-ethers/src/type-extensions.d.ts", - "./node_modules/@nomiclabs/hardhat-waffle/src/type-extensions.d.ts" - ] + "include": ["./scripts", "./tests", "./cli", "./e2e"], + "files": ["./hardhat.config.ts"] } diff --git a/contracts/utils/JSONFile.ts b/contracts/utils/JSONFile.ts index cf1a1eb95..fafc6021b 100644 --- a/contracts/utils/JSONFile.ts +++ b/contracts/utils/JSONFile.ts @@ -3,7 +3,6 @@ import fs from 'fs' export class JSONFile { /** * Read the content of the JSON file - * * @param path The path of the JSON file * @returns */ diff --git a/contracts/utils/RecipientRegistryLogProcessor.ts b/contracts/utils/RecipientRegistryLogProcessor.ts index be07d3a14..26a17a742 100644 --- a/contracts/utils/RecipientRegistryLogProcessor.ts +++ b/contracts/utils/RecipientRegistryLogProcessor.ts @@ -1,4 +1,12 @@ -import { Contract, EventFilter, providers, constants, utils } from 'ethers' +import { + Contract, + EventFilter, + Interface, + Fragment, + EventFragment, + Addressable, + ZeroAddress, +} from 'ethers' import { ProviderFactory } from './providers/ProviderFactory' import { Project } from './types' import { RecipientState } from './constants' @@ -7,10 +15,12 @@ import { Log } from './providers/BaseProvider' import { toDate } from './date' import { EVENT_ABIS } from './abi' -function getFilter(address: string, abi: string): EventFilter { - const eventInterface = new utils.Interface([abi]) - const events = Object.values(eventInterface.events) - const topic0 = eventInterface.getEventTopic(events[0].name) +function getFilter(address: string | Addressable, abi: string): EventFilter { + const eventInterface = new Interface([abi]) + const events = eventInterface.fragments + .filter(Fragment.isEvent) + .map((evt) => evt as EventFragment) + const topic0 = events[0].topicHash return { address, topics: [topic0] } } @@ -50,7 +60,7 @@ export class RecipientRegistryLogProcessor { // fetch event logs containing project information const lastBlock = endBlock ? endBlock - : await this.registry.provider.getBlockNumber() + : await this.registry.runner?.provider?.getBlockNumber() console.log( `Fetching event logs from the recipient registry`, @@ -66,7 +76,7 @@ export class RecipientRegistryLogProcessor { for (let i = 0; i < EVENT_ABIS.length; i++) { const { add, remove } = EVENT_ABIS[i] - const filter = getFilter(this.registry.address, add.abi) + const filter = getFilter(this.registry.target, add.abi) const addLogs = await logProvider.fetchLogs({ filter, startBlock, @@ -75,7 +85,7 @@ export class RecipientRegistryLogProcessor { }) if (addLogs.length > 0) { - const filter = getFilter(this.registry.address, remove.abi) + const filter = getFilter(this.registry.target, remove.abi) const removeLogs = await logProvider.fetchLogs({ filter, startBlock, @@ -99,7 +109,7 @@ export class RecipientRegistryLogProcessor { return logs } - async parseLogs(logs: providers.Log[]): Promise> { + async parseLogs(logs: Log[]): Promise> { const recipients: Record = {} for (let i = 0; i < logs.length; i++) { @@ -112,16 +122,18 @@ export class RecipientRegistryLogProcessor { } catch (err) { console.log('failed to parse', (err as Error).message) } - const address = parsed.recipientAddress || constants.AddressZero + const address = parsed.recipientAddress || ZeroAddress const id = parsed.id || '0' const [block, transaction] = await Promise.all([ - this.registry.provider.getBlock(log.blockNumber), - this.registry.provider.getTransactionReceipt(log.transactionHash), + this.registry.runner?.provider?.getBlock(log.blockNumber), + this.registry.runner?.provider?.getTransactionReceipt( + log.transactionHash + ), ]) - const blockTimestamp = toDate(block.timestamp) + const blockTimestamp = toDate(block?.timestamp || 0) const createdAt = parsed.createdAt || blockTimestamp - const requester = transaction.from + const requester = transaction?.from if (!recipients[id]) { recipients[id] = { diff --git a/contracts/utils/abi.ts b/contracts/utils/abi.ts index 7e2f0368c..98101978a 100644 --- a/contracts/utils/abi.ts +++ b/contracts/utils/abi.ts @@ -1,4 +1,4 @@ -import { utils } from 'ethers' +import { Interface } from 'ethers' import { AbiInfo } from './types' type EventAbiEntry = { @@ -16,52 +16,64 @@ export const EVENT_ABIS: EventAbiEntry[] = [ { add: { type: 'RequestSubmitted', + name: 'RequestSubmitted', abi: `event RequestSubmitted(bytes32 indexed _recipientId, uint8 indexed _type, address _recipient, string _metadata, uint256 _timestamp)`, }, remove: { type: 'RequestResolved', + name: 'RequestResolved', abi: `event RequestResolved(bytes32 indexed _recipientId, uint8 indexed _type, bool indexed _rejected, uint256 _recipientIndex, uint256 _timestamp)`, }, }, { add: { type: 'RecipientAdded', + name: 'RecipientAdded', abi: 'event RecipientAdded(bytes32 indexed _recipientId, address _recipient, string _metadata, uint256 _index, uint256 _timestamp)', }, remove: { type: 'RecipientRemoved', + name: 'RecipientRemoved', abi: 'event RecipientRemoved(bytes32 indexed _recipientId, uint256 _timestamp)', }, }, { add: { type: 'RecipientAddedV1', + name: 'RecipientAdded', abi: 'event RecipientAdded(address indexed _recipient, string _metadata, uint256 _index)', }, remove: { type: 'RecipientRemovedV1', + name: 'RecipientRemoved', abi: 'event RecipientRemoved(address indexed _recipient)', }, }, { add: { type: 'KlerosRecipientAdded', + name: 'RecipientAdded', abi: `event RecipientAdded(bytes32 indexed _recipientId, bytes _metadata, uint256 _index)`, }, remove: { type: 'KlerosRecipientRemoved', + name: 'RecipientRemoved', abi: `event RecipientRemoved(bytes32 indexed _recipientId)`, }, }, ] +/** + * Event topic abi + */ export const TOPIC_ABIS: Record = EVENT_ABIS.reduce( (records: Record, addAndRemoveGroup) => { - Object.values(addAndRemoveGroup).forEach(({ type, abi }) => { - const addInterface = new utils.Interface([abi]) - const events = Object.values(addInterface.events) - const topic0 = addInterface.getEventTopic(events[0].name) - records[topic0] = { type, abi } + Object.values(addAndRemoveGroup).forEach(({ type, name, abi }) => { + const addInterface = new Interface([abi]) + const event = addInterface.getEvent(name) + if (event) { + records[event.topicHash] = { type, name, abi } + } }) return records diff --git a/contracts/utils/constants.ts b/contracts/utils/constants.ts index af3274138..3cdc56d48 100644 --- a/contracts/utils/constants.ts +++ b/contracts/utils/constants.ts @@ -1,10 +1,8 @@ -import { BigNumber } from 'ethers' - export const DEFAULT_IPFS_GATEWAY = 'https://ipfs.io' export const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000' -export const UNIT = BigNumber.from(10).pow(BigNumber.from(18)) -export const VOICE_CREDIT_FACTOR = BigNumber.from(10).pow(4 + 18 - 9) -export const ALPHA_PRECISION = BigNumber.from(10).pow(18) +export const UNIT = 10n ** 18n +export const VOICE_CREDIT_FACTOR = 10n ** BigInt(4 + 18 - 9) +export const ALPHA_PRECISION = 10n ** 18n export const DEFAULT_SR_QUEUE_OPS = '4' export enum RecipientState { diff --git a/contracts/utils/contracts.ts b/contracts/utils/contracts.ts index f6ef16ef6..47690c074 100644 --- a/contracts/utils/contracts.ts +++ b/contracts/utils/contracts.ts @@ -1,19 +1,18 @@ -import { BigNumber, Contract } from 'ethers' -import { TransactionResponse } from '@ethersproject/abstract-provider' +import { Contract, TransactionResponse } from 'ethers' export async function getGasUsage( transaction: TransactionResponse ): Promise { const receipt = await transaction.wait() - return receipt.gasUsed.toNumber() + return receipt ? Number(receipt.gasUsed) : 0 } export async function getTxFee( transaction: TransactionResponse -): Promise { +): Promise { const receipt = await transaction.wait() // effectiveGasPrice was introduced by EIP1559 - return receipt.gasUsed.mul(receipt.effectiveGasPrice) + return receipt ? BigInt(receipt.gasUsed) * BigInt(receipt.gasPrice) : 0n } export async function getEventArg( @@ -22,13 +21,18 @@ export async function getEventArg( eventName: string, argumentName: string ): Promise { + const contractAddress = await contract.getAddress() // eslint-disable-line @typescript-eslint/no-explicit-any const receipt = await transaction.wait() - for (const log of receipt.logs || []) { - if (log.address != contract.address) { + for (const log of receipt?.logs || []) { + if (log.address != contractAddress) { continue } - const event = contract.interface.parseLog(log) + + const event = contract.interface.parseLog({ + data: log.data, + topics: [...log.topics], + }) if (event && event.name === eventName) { return event.args[argumentName] } diff --git a/contracts/utils/date.ts b/contracts/utils/date.ts index 201fd9297..3e506ff13 100644 --- a/contracts/utils/date.ts +++ b/contracts/utils/date.ts @@ -1,5 +1,8 @@ -import { BigNumber, BigNumberish } from 'ethers' - -export function toDate(val: BigNumberish) { - return new Date(BigNumber.from(val).mul(1000).toNumber()) +/** + * Convert the unix timestamp in seconds to javascript date object + * @param unixTime unix timestamp in seconds + * @returns javascript date object + */ +export function toDate(unixTime: any) { + return new Date(Number(unixTime) * 1000) } diff --git a/contracts/utils/deployment.ts b/contracts/utils/deployment.ts index 3912e493f..ed3b0035e 100644 --- a/contracts/utils/deployment.ts +++ b/contracts/utils/deployment.ts @@ -1,13 +1,18 @@ -import { Signer, Contract, utils, BigNumber, ContractTransaction } from 'ethers' -import { link } from 'ethereum-waffle' +import { + Signer, + Contract, + ContractTransaction, + encodeBytes32String, +} from 'ethers' import path from 'path' import { readFileSync } from 'fs' -import { HardhatEthersHelpers } from '@nomiclabs/hardhat-ethers/types' +import { HardhatEthersHelpers } from '@nomicfoundation/hardhat-ethers/types' import { DEFAULT_CIRCUIT } from './circuits' import { isPathExist } from './misc' import { MaciParameters } from './maciParameters' import { PrivKey, Keypair } from '@clrfund/common' +import { ZERO_ADDRESS } from './constants' // Number.MAX_SAFE_INTEGER - 1 export const challengePeriodSeconds = '9007199254740990' @@ -35,15 +40,6 @@ export interface BrightIdParams { sponsor: string } -export function linkBytecode(bytecode: string, libraries: Libraries): string { - // Workarounds for https://github.com/nomiclabs/buidler/issues/611 - const linkable = { evm: { bytecode: { object: bytecode } } } - for (const [libraryName, libraryAddress] of Object.entries(libraries)) { - link(linkable, libraryName, libraryAddress.toLowerCase()) - } - return linkable.evm.bytecode.object -} - type PoseidonName = 'PoseidonT3' | 'PoseidonT4' | 'PoseidonT5' | 'PoseidonT6' /** @@ -103,13 +99,12 @@ export async function deployContract({ ethers, signer, }: deployContractOptions): Promise { - const contractFactory = await ethers.getContractFactory(name, { + const contract = await ethers.deployContract(name, contractArgs, { signer, libraries, }) - const contract = await contractFactory.deploy(...contractArgs) - return await contract.deployed() + return await contract.waitForDeployment() } /** @@ -156,7 +151,7 @@ export async function deployUserRegistry({ ) userRegistry = await BrightIdUserRegistry.deploy( - utils.formatBytes32String(brightidContext), + encodeBytes32String(brightidContext), brightidVerifier, brightidSponsor ) @@ -166,14 +161,10 @@ export async function deployUserRegistry({ throw new Error('unsupported user registry type: ' + registryType) } - const UserRegistry = await ethers.getContractFactory( - userRegistryName, - signer - ) - userRegistry = await UserRegistry.deploy() + userRegistry = await ethers.deployContract(userRegistryName, signer) } - await userRegistry.deployTransaction.wait() + await userRegistry.waitForDeployment() return userRegistry } @@ -197,7 +188,7 @@ export async function deployRecipientRegistry({ }: { type: string controller: string - deposit?: BigNumber + deposit?: bigint challengePeriod?: string ethers: HardhatEthersHelpers signer?: Signer @@ -274,10 +265,10 @@ export async function deployPoseidonLibraries({ }) const libraries = { - PoseidonT3: PoseidonT3Contract.address, - PoseidonT4: PoseidonT4Contract.address, - PoseidonT5: PoseidonT5Contract.address, - PoseidonT6: PoseidonT6Contract.address, + PoseidonT3: await PoseidonT3Contract.getAddress(), + PoseidonT4: await PoseidonT4Contract.getAddress(), + PoseidonT5: await PoseidonT5Contract.getAddress(), + PoseidonT6: await PoseidonT6Contract.getAddress(), } return libraries } @@ -327,8 +318,7 @@ export async function deployPollFactory({ * using the byte codes in the artifactsPath * * libraries - poseidon libraries - * artifactsPath - path that contacts the poseidon abi and bytecode - * + * artifactsPath - path of artifact containing the poseidon abi and bytecode * @returns the MessageProcessor and Tally contracts */ export async function deployMessageProcesorAndTally({ @@ -361,9 +351,10 @@ export async function deployMessageProcesorAndTally({ signer, ethers, }) + const tallyContract = await deployContract({ name: 'Tally', - contractArgs: [verifierContract.address], + contractArgs: [verifierContract.target], libraries, ethers, signer, @@ -372,7 +363,7 @@ export async function deployMessageProcesorAndTally({ // deploy the message processing contract const mpContract = await deployContract({ name: 'MessageProcessor', - contractArgs: [verifierContract.address], + contractArgs: [verifierContract.target], signer, libraries, ethers, @@ -386,11 +377,9 @@ export async function deployMessageProcesorAndTally({ /** * Deploy an instance of MACI factory - * * libraries - poseidon contracts * ethers - hardhat ethers handle * signer - if signer is not provided, use default signer in ethers - * * @returns MACI factory contract */ export async function deployMaciFactory({ @@ -415,15 +404,44 @@ export async function deployMaciFactory({ signer, }) + const verifier = await deployContract({ + name: 'Verifier', + ethers, + signer, + }) + + const tallyFactory = await deployContract({ + name: 'TallyFactory', + libraries, + ethers, + signer, + }) + + const messageProcessorFactory = await deployContract({ + name: 'MessageProcessorFactory', + libraries, + ethers, + signer, + }) + + // all the factories to deploy MACI contracts + const factories = { + pollFactory: pollFactory.target, + tallyFactory: tallyFactory.target, + // subsidy is not currently used + subsidyFactory: ZERO_ADDRESS, + messageProcessorFactory: messageProcessorFactory.target, + } + const maciFactory = await deployContract({ name: 'MACIFactory', libraries, - contractArgs: [vkRegistry.address, pollFactory.address], + contractArgs: [vkRegistry.target, factories, verifier.target], ethers, signer, }) - const transferTx = await vkRegistry.transferOwnership(maciFactory.address) + const transferTx = await vkRegistry.transferOwnership(maciFactory.target) await transferTx.wait() return maciFactory @@ -454,7 +472,6 @@ export async function setMaciParameters( /** * Set the coordinator address and maci public key in the funding round factory - * * @param fundingRoundFactory funding round factory contract * @param coordinatorAddress * @param MaciPrivateKey @@ -470,7 +487,7 @@ export async function setCoordinator({ }): Promise { // Generate or use the passed in coordinator key const privKey = coordinatorMacisk - ? PrivKey.unserialize(coordinatorMacisk) + ? PrivKey.deserialize(coordinatorMacisk) : undefined const keypair = new Keypair(privKey) diff --git a/contracts/utils/file.ts b/contracts/utils/file.ts index df83d0f7d..93c618039 100644 --- a/contracts/utils/file.ts +++ b/contracts/utils/file.ts @@ -1,5 +1,10 @@ import fs from 'fs' +/** + * Write json data to the file + * @param filePath the path of the file to write to + * @param data json data + */ export function writeToFile(filePath: string, data: any) { const outputString = JSON.stringify(data, null, 2) fs.writeFileSync(filePath, outputString + '\n') diff --git a/contracts/utils/ipfs.ts b/contracts/utils/ipfs.ts index e2157a093..8fc5de275 100644 --- a/contracts/utils/ipfs.ts +++ b/contracts/utils/ipfs.ts @@ -1,17 +1,29 @@ // eslint-disable-next-line @typescript-eslint/no-var-requires const Hash = require('ipfs-only-hash') -import { utils } from 'ethers' +import { FetchRequest } from 'ethers' import { DEFAULT_IPFS_GATEWAY } from './constants' +/** + * Get the ipfs hash for the input object + * @param object a json object to get the ipfs hash for + * @returns the ipfs hash + */ export async function getIpfsHash(object: any): Promise { const data = Buffer.from(JSON.stringify(object, null, 4)) return await Hash.of(data) } export class Ipfs { + /** + * Get the content of the ipfs hash + * @param hash ipfs hash + * @param gatewayUrl ipfs gateway url + * @returns the content + */ static async fetchJson(hash: string, gatewayUrl?: string): Promise { const url = `${gatewayUrl || DEFAULT_IPFS_GATEWAY}/ipfs/${hash}` - const result = utils.fetchJson(url) - return result + const req = new FetchRequest(url) + const resp = await req.send() + return resp.bodyJson } } diff --git a/contracts/utils/maci.ts b/contracts/utils/maci.ts index 4e178d05b..d354af874 100644 --- a/contracts/utils/maci.ts +++ b/contracts/utils/maci.ts @@ -1,4 +1,4 @@ -import { Contract, BigNumber, ContractReceipt } from 'ethers' +import { Contract, ContractTransactionReceipt } from 'ethers' import { bnSqrt, createMessage, @@ -12,12 +12,7 @@ import { Keypair, } from '@clrfund/common' import * as os from 'os' -import { - mergeMessages, - mergeSignups, - genProofs, - proveOnChain, -} from '@clrfund/maci-cli' +import { mergeMessages, mergeSignups, genProofs, proveOnChain } from 'maci-cli' import { getTalyFilePath, isPathExist } from './misc' import { CIRCUITS } from './circuits' @@ -105,9 +100,9 @@ export async function addTallyResultsBatch( tallyData: any, batchSize: number, startIndex = 0, - callback?: (processed: number, receipt: ContractReceipt) => void -): Promise { - let totalGasUsed = BigNumber.from(0) + callback?: (processed: number, receipt: ContractTransactionReceipt) => void +): Promise { + let totalGasUsed = 0 const { tally } = tallyData.results const spentVoiceCreditsHash = hashLeftRight( @@ -150,7 +145,6 @@ export async function addTallyResultsBatch( ) const tx = await fundingRound.addTallyResultsBatch( - recipientTreeDepth, ...data, BigInt(tallyData.results.salt).toString(), spentVoiceCreditsHash.toString(), @@ -163,7 +157,7 @@ export async function addTallyResultsBatch( const totalProcessed = i + data[1].length callback(totalProcessed, receipt) } - totalGasUsed = totalGasUsed.add(receipt.gasUsed) + totalGasUsed = totalGasUsed + Number(receipt.gasUsed) } return totalGasUsed } diff --git a/contracts/utils/maciParameters.ts b/contracts/utils/maciParameters.ts index 1798ac3d2..0f493bde3 100644 --- a/contracts/utils/maciParameters.ts +++ b/contracts/utils/maciParameters.ts @@ -1,7 +1,7 @@ import { Contract } from 'ethers' -import { VerifyingKey } from '@clrfund/maci-domainobjs' -import { extractVk } from '@clrfund/maci-circuits' +import { VerifyingKey } from 'maci-domainobjs' +import { extractVk } from 'maci-circuits' import { CIRCUITS } from './circuits' import path from 'path' @@ -119,6 +119,9 @@ export class MaciParameters { static mock(circuit: string): MaciParameters { const processVk = VerifyingKey.fromObj({ + protocol: 1, + curve: 1, + nPublic: 1, vk_alpha_1: [1, 2], vk_beta_2: [ [1, 2], @@ -132,6 +135,7 @@ export class MaciParameters { [1, 2], [1, 2], ], + vk_alphabeta_12: [[[1, 2, 3]]], IC: [[1, 2]], }) const params = CIRCUITS[circuit] diff --git a/contracts/utils/misc.ts b/contracts/utils/misc.ts index 8583d6190..ee38c2a84 100644 --- a/contracts/utils/misc.ts +++ b/contracts/utils/misc.ts @@ -3,7 +3,6 @@ import fs from 'fs' /** * Get the tally file path - * * @param outputDir The output directory * @returns The tally file path */ @@ -13,7 +12,6 @@ export function getTalyFilePath(outputDir: string) { /** * Check if the path exist - * * @param path The path to check for existence * @returns true if the path exists */ diff --git a/contracts/utils/parsers/BaseParser.ts b/contracts/utils/parsers/BaseParser.ts index 3ca0547a3..50507ae5e 100644 --- a/contracts/utils/parsers/BaseParser.ts +++ b/contracts/utils/parsers/BaseParser.ts @@ -1,11 +1,27 @@ -import { Log } from '@ethersproject/abstract-provider' +import { Log, Interface } from 'ethers' import { Project } from '../types' +import { TOPIC_ABIS } from '../abi' export abstract class BaseParser { topic0: string + private parser: Interface constructor(topic0: string) { this.topic0 = topic0 + + const abiInfo = TOPIC_ABIS[this.topic0] + if (!abiInfo) { + throw new Error(`topic ${this.topic0} not found`) + } + this.parser = new Interface([abiInfo.abi]) + } + + protected getEventArgs(log: Log): any { + const parsedLog = this.parser.parseLog({ + data: log.data, + topics: [...log.topics], + }) + return parsedLog?.args || {} } abstract parse(log: Log): Partial diff --git a/contracts/utils/parsers/KlerosRecipientAddedParser.ts b/contracts/utils/parsers/KlerosRecipientAddedParser.ts index a44aee9da..a9a446814 100644 --- a/contracts/utils/parsers/KlerosRecipientAddedParser.ts +++ b/contracts/utils/parsers/KlerosRecipientAddedParser.ts @@ -1,13 +1,13 @@ import { Log } from '../providers/BaseProvider' import { Project } from '../types' -import { utils, BigNumber, constants } from 'ethers' +import { toUtf8String as tryToUtf8String, decodeRlp, Interface } from 'ethers' import { TOPIC_ABIS } from '../abi' -import { RecipientState } from '../constants' +import { RecipientState, ZERO_ADDRESS } from '../constants' import { BaseParser } from './BaseParser' function toUtf8String(hex: string): string | undefined { try { - return utils.toUtf8String(hex) + return tryToUtf8String(hex) } catch { return undefined } @@ -25,7 +25,7 @@ function sanitizeImageHash(url: string | undefined): string | undefined { function decodeMetadata(rawMetadata: string): any { // best effort to parse the rlp encoded metadata try { - const decoded = utils.RLP.decode(rawMetadata) + const decoded = decodeRlp(rawMetadata) const utf8s = decoded.map(toUtf8String) const name = utf8s[0] @@ -55,19 +55,13 @@ export class KlerosRecipientAddedParser extends BaseParser { } parse(log: Log): Partial { - const abiInfo = TOPIC_ABIS[this.topic0] - if (!abiInfo) { - throw new Error(`topic ${this.topic0} not found`) - } - - const parser = new utils.Interface([abiInfo.abi]) - const { args } = parser.parseLog(log) + const args = this.getEventArgs(log) const id = args._recipientId - const recipientIndex = BigNumber.from(args._index).toNumber() + const recipientIndex = Number(args._index) const state = RecipientState.Accepted const rawMetadata = args._metadata const metadata = decodeMetadata(args._metadata) - const recipientAddress = metadata?.recipientAddress || constants.AddressZero + const recipientAddress = metadata?.recipientAddress || ZERO_ADDRESS const name = metadata?.name || '?' return { diff --git a/contracts/utils/parsers/KlerosRecipientRemovedParser.ts b/contracts/utils/parsers/KlerosRecipientRemovedParser.ts index 468237a49..fa23898da 100644 --- a/contracts/utils/parsers/KlerosRecipientRemovedParser.ts +++ b/contracts/utils/parsers/KlerosRecipientRemovedParser.ts @@ -1,7 +1,5 @@ import { Log } from '../providers/BaseProvider' import { Project } from '../types' -import { utils } from 'ethers' -import { TOPIC_ABIS } from '../abi' import { RecipientState } from '../constants' import { BaseParser } from './BaseParser' @@ -11,13 +9,7 @@ export class KlerosRecipientRemovedParser extends BaseParser { } parse(log: Log): Partial { - const abiInfo = TOPIC_ABIS[this.topic0] - if (!abiInfo) { - throw new Error(`topic ${this.topic0} not found`) - } - - const parser = new utils.Interface([abiInfo.abi]) - const { args } = parser.parseLog(log) + const args = this.getEventArgs(log) const id = args._recipientId const state = RecipientState.Removed diff --git a/contracts/utils/parsers/RecipientAddedParser.ts b/contracts/utils/parsers/RecipientAddedParser.ts index bcbe47fd1..b3525c182 100644 --- a/contracts/utils/parsers/RecipientAddedParser.ts +++ b/contracts/utils/parsers/RecipientAddedParser.ts @@ -1,7 +1,5 @@ import { Log } from '../providers/BaseProvider' import { Project } from '../types' -import { BigNumber, utils } from 'ethers' -import { TOPIC_ABIS } from '../abi' import { RecipientState } from '../constants' import { BaseParser } from './BaseParser' import { toDate } from '../date' @@ -12,14 +10,9 @@ export class RecipientAddedParser extends BaseParser { } parse(log: Log): Project { - const abiInfo = TOPIC_ABIS[this.topic0] - if (!abiInfo) { - throw new Error(`topic ${this.topic0} not found`) - } - const parser = new utils.Interface([abiInfo.abi]) - const { args } = parser.parseLog(log) + const args = this.getEventArgs(log) const id = args._recipientId - const recipientIndex = BigNumber.from(args._index).toNumber() + const recipientIndex = Number(args._index) const recipientAddress = args._recipient const addedAt = args._timestamp let metadata: any diff --git a/contracts/utils/parsers/RecipientAddedV1Parser.ts b/contracts/utils/parsers/RecipientAddedV1Parser.ts index 5334f2038..30331891c 100644 --- a/contracts/utils/parsers/RecipientAddedV1Parser.ts +++ b/contracts/utils/parsers/RecipientAddedV1Parser.ts @@ -1,7 +1,5 @@ import { Log } from '../providers/BaseProvider' import { Project } from '../types' -import { BigNumber, utils } from 'ethers' -import { TOPIC_ABIS } from '../abi' import { RecipientState } from '../constants' import { BaseParser } from './BaseParser' @@ -11,14 +9,9 @@ export class RecipientAddedV1Parser extends BaseParser { } parse(log: Log): Project { - const abiInfo = TOPIC_ABIS[this.topic0] - if (!abiInfo) { - throw new Error(`topic ${this.topic0} not found`) - } - const parser = new utils.Interface([abiInfo.abi]) - const { args } = parser.parseLog(log) + const args = this.getEventArgs(log) const id = args._recipient - const recipientIndex = BigNumber.from(args._index).toNumber() + const recipientIndex = Number(args._index) const recipientAddress = args._recipient let metadata: any let name: string diff --git a/contracts/utils/parsers/RecipientRemovedParser.ts b/contracts/utils/parsers/RecipientRemovedParser.ts index b7f557de4..f179d11e3 100644 --- a/contracts/utils/parsers/RecipientRemovedParser.ts +++ b/contracts/utils/parsers/RecipientRemovedParser.ts @@ -1,7 +1,5 @@ import { Log } from '../providers/BaseProvider' import { Project } from '../types' -import { utils } from 'ethers' -import { TOPIC_ABIS } from '../abi' import { RecipientState } from '../constants' import { BaseParser } from './BaseParser' import { toDate } from '../date' @@ -12,13 +10,7 @@ export class RecipientRemovedParser extends BaseParser { } parse(log: Log): Partial { - const abiInfo = TOPIC_ABIS[this.topic0] - if (!abiInfo) { - throw new Error(`topic ${this.topic0} not found`) - } - - const parser = new utils.Interface([abiInfo.abi]) - const { args } = parser.parseLog(log) + const args = this.getEventArgs(log) const id = args._recipientId const state = RecipientState.Removed const removedAt = toDate(args._timestamp) diff --git a/contracts/utils/parsers/RecipientRemovedV1Parser.ts b/contracts/utils/parsers/RecipientRemovedV1Parser.ts index bbc80215a..377d78a06 100644 --- a/contracts/utils/parsers/RecipientRemovedV1Parser.ts +++ b/contracts/utils/parsers/RecipientRemovedV1Parser.ts @@ -1,6 +1,6 @@ import { Log } from '../providers/BaseProvider' import { Project } from '../types' -import { utils } from 'ethers' +import { Interface } from 'ethers' import { TOPIC_ABIS } from '../abi' import { RecipientState } from '../constants' import { BaseParser } from './BaseParser' @@ -11,13 +11,7 @@ export class RecipientRemovedV1Parser extends BaseParser { } parse(log: Log): Partial { - const abiInfo = TOPIC_ABIS[this.topic0] - if (!abiInfo) { - throw new Error(`topic ${this.topic0} not found`) - } - - const parser = new utils.Interface([abiInfo.abi]) - const { args } = parser.parseLog(log) + const args = this.getEventArgs(log) const id = args._recipient const state = RecipientState.Removed diff --git a/contracts/utils/parsers/RequestResolvedParser.ts b/contracts/utils/parsers/RequestResolvedParser.ts index fbf739d67..271cb563e 100644 --- a/contracts/utils/parsers/RequestResolvedParser.ts +++ b/contracts/utils/parsers/RequestResolvedParser.ts @@ -1,7 +1,5 @@ import { Log } from '../providers/BaseProvider' import { Project } from '../types' -import { utils, BigNumber } from 'ethers' -import { TOPIC_ABIS } from '../abi' import { RecipientState } from '../constants' import { BaseParser } from './BaseParser' import { toDate } from '../date' @@ -12,13 +10,7 @@ export class RequestResolvedParser extends BaseParser { } parse(log: Log): Partial { - const abiInfo = TOPIC_ABIS[this.topic0] - if (!abiInfo) { - throw new Error(`topic ${this.topic0} not found`) - } - - const parser = new utils.Interface([abiInfo.abi]) - const { args } = parser.parseLog(log) + const args = this.getEventArgs(log) const id = args._recipientId const timestamp = toDate(args._timestamp) @@ -31,7 +23,7 @@ export class RequestResolvedParser extends BaseParser { const recipientIndex = state === RecipientState.Accepted - ? BigNumber.from(args._recipientIndex).toNumber() + ? Number(args._recipientIndex) : undefined const createdAt = state === RecipientState.Accepted ? timestamp : undefined const removedAt = state === RecipientState.Accepted ? undefined : timestamp diff --git a/contracts/utils/parsers/RequestSubmittedParser.ts b/contracts/utils/parsers/RequestSubmittedParser.ts index 9bd363c77..f431a0d73 100644 --- a/contracts/utils/parsers/RequestSubmittedParser.ts +++ b/contracts/utils/parsers/RequestSubmittedParser.ts @@ -1,7 +1,5 @@ import { Log } from '../providers/BaseProvider' import { Project } from '../types' -import { utils } from 'ethers' -import { TOPIC_ABIS } from '../abi' import { RecipientState } from '../constants' import { BaseParser } from './BaseParser' import { toDate } from '../date' @@ -12,12 +10,7 @@ export class RequestSubmittedParser extends BaseParser { } parse(log: Log): Partial { - const abiInfo = TOPIC_ABIS[this.topic0] - if (!abiInfo) { - throw new Error(`topic ${this.topic0} not found`) - } - const parser = new utils.Interface([abiInfo.abi]) - const { args } = parser.parseLog(log) + const args = this.getEventArgs(log) const id = args._recipientId const recipientIndex = args._index diff --git a/contracts/utils/providers/BaseProvider.ts b/contracts/utils/providers/BaseProvider.ts index 707fdc56b..3eb57d4cb 100644 --- a/contracts/utils/providers/BaseProvider.ts +++ b/contracts/utils/providers/BaseProvider.ts @@ -1,9 +1,9 @@ -import { EventFilter, Log } from '@ethersproject/abstract-provider' +import { EventFilter, Log } from 'ethers' export interface FetchLogArgs { filter: EventFilter startBlock: number - lastBlock: number + lastBlock?: number blocksPerBatch: number } diff --git a/contracts/utils/providers/EtherscanProvider.ts b/contracts/utils/providers/EtherscanProvider.ts index 9d8383532..384bf11ce 100644 --- a/contracts/utils/providers/EtherscanProvider.ts +++ b/contracts/utils/providers/EtherscanProvider.ts @@ -1,5 +1,5 @@ import { BaseProvider, FetchLogArgs, Log } from './BaseProvider' -import { utils, BigNumber } from 'ethers' +import { FetchRequest } from 'ethers' const EtherscanApiUrl: Record = { xdai: 'https://api.gnosisscan.io', @@ -30,11 +30,14 @@ export class EtherscanProvider extends BaseProvider { } const topic0 = filter.topics?.[0] || '' + const toBlockQuery = lastBlock ? `&toBlock=${lastBlock}` : '' const url = `${baseUrl}/api?module=logs&action=getLogs&address=${filter.address}` + - `&topic0=${topic0}&fromBlock=${startBlock}&&toBlock=${lastBlock}&apikey=${this.apiKey}` + `&topic0=${topic0}&fromBlock=${startBlock}${toBlockQuery}&apikey=${this.apiKey}` - const result = await utils.fetchJson(url) + const req = new FetchRequest(url) + const resp = await req.send() + const result = resp.bodyJson if (result.status === '0' && result.message === 'No records found') { return [] @@ -45,7 +48,7 @@ export class EtherscanProvider extends BaseProvider { } return result.result.map((res: any) => ({ - blockNumber: BigNumber.from(res.blockNumber).toNumber(), + blockNumber: Number(res.blockNumber), blockHash: res.blockHash, transactionIndex: res.transactionIndex, removed: false, diff --git a/contracts/utils/types.ts b/contracts/utils/types.ts index 221063da9..61f6c48a5 100644 --- a/contracts/utils/types.ts +++ b/contracts/utils/types.ts @@ -66,6 +66,7 @@ export type EventType = export type AbiInfo = { type: EventType + name: string abi: string } diff --git a/vue-app/package.json b/vue-app/package.json index c263e342b..b580674e6 100644 --- a/vue-app/package.json +++ b/vue-app/package.json @@ -32,7 +32,7 @@ "@walletconnect/modal": "^2.6.0", "crypto-js": "^4.1.1", "ethereum-blockies-base64": "^1.0.2", - "ethers": "^5.7.2", + "ethers": "^6.9.2", "floating-vue": "^2.0.0-beta.20", "google-spreadsheet": "^3.3.0", "graphql": "^16.6.0", diff --git a/vue-app/src/api/abi.ts b/vue-app/src/api/abi.ts index 9add92259..41a05e8c3 100644 --- a/vue-app/src/api/abi.ts +++ b/vue-app/src/api/abi.ts @@ -2,8 +2,8 @@ import { abi as ERC20 } from '../../../contracts/build/contracts/@openzeppelin/c import { abi as ClrFund } from '../../../contracts/build/contracts/contracts/ClrFund.sol/ClrFund.json' import { abi as FundingRound } from '../../../contracts/build/contracts/contracts/FundingRound.sol/FundingRound.json' import { abi as MACIFactory } from '../../../contracts/build/contracts/contracts/MACIFactory.sol/MACIFactory.json' -import { abi as MACI } from '../../../contracts/build/contracts/@clrfund/maci-contracts/contracts/MACI.sol/MACI.json' -import { abi as Poll } from '../../../contracts/build/contracts/@clrfund/maci-contracts/contracts/Poll.sol/Poll.json' +import { abi as MACI } from '../../../contracts/build/contracts/maci-contracts/contracts/MACI.sol/MACI.json' +import { abi as Poll } from '../../../contracts/build/contracts/maci-contracts/contracts/Poll.sol/Poll.json' import { abi as UserRegistry } from '../../../contracts/build/contracts/contracts/userRegistry/IUserRegistry.sol/IUserRegistry.json' import { abi as BrightIdUserRegistry } from '../../../contracts/build/contracts/contracts/userRegistry/BrightIdUserRegistry.sol/BrightIdUserRegistry.json' import { abi as SnapshotUserRegistry } from '../../../contracts/build/contracts/contracts/userRegistry/SnapshotUserRegistry.sol/SnapshotUserRegistry.json' diff --git a/vue-app/src/api/bright-id.ts b/vue-app/src/api/bright-id.ts index 6e051150e..0aba9a8ad 100644 --- a/vue-app/src/api/bright-id.ts +++ b/vue-app/src/api/bright-id.ts @@ -1,6 +1,5 @@ -import { Contract, Signer, utils } from 'ethers' -import type { TransactionResponse } from '@ethersproject/abstract-provider' -import { formatBytes32String } from '@ethersproject/strings' +import { Contract, encodeBytes32String, toUtf8Bytes, decodeBase64, encodeBase64 } from 'ethers' +import type { TransactionResponse, Signer } from 'ethers' import { BrightIdUserRegistry } from './abi' import { brightIdSponsorKey, brightIdNodeUrl } from './core' @@ -138,7 +137,7 @@ export async function registerUser( ): Promise { const registry = new Contract(registryAddress, BrightIdUserRegistry, signer) const transaction = await registry.register( - formatBytes32String(CONTEXT), + encodeBytes32String(CONTEXT), verification.appUserId, '0x' + verification.verificationHash, verification.timestamp, @@ -221,10 +220,10 @@ export async function brightIdSponsor(userAddress: string): Promise } const message = JSON.stringify(op) - const arrayedMessage = utils.toUtf8Bytes(message) - const arrayedKey = utils.base64.decode(brightIdSponsorKey) + const arrayedMessage = toUtf8Bytes(message) + const arrayedKey = decodeBase64(brightIdSponsorKey) const signature = nacl.sign.detached(arrayedMessage, arrayedKey) - op.sig = utils.base64.encode(signature) + op.sig = encodeBase64(signature) const res = await fetch(endpoint, { method: 'POST', diff --git a/vue-app/src/api/cart.ts b/vue-app/src/api/cart.ts index f5935763b..c95993530 100644 --- a/vue-app/src/api/cart.ts +++ b/vue-app/src/api/cart.ts @@ -1,7 +1,6 @@ import { type CartItem, getContributorMessages } from './contributions' import type { RoundInfo } from './round' import { Keypair, Command } from '@clrfund/common' -import { BigNumber } from 'ethers' import { getProjectByIndex } from './projects' import { formatAmount } from '@/utils/amounts' import { maxDecimals } from './core' @@ -37,7 +36,7 @@ export async function getCommittedCart( const { voteOptionIndex, newVoteWeight } = command const voteWeightString = newVoteWeight.toString() - const amount = BigNumber.from(voteWeightString).mul(voteWeightString).mul(voiceCreditFactor) + const amount = BigInt(voteWeightString) * BigInt(voteWeightString) * voiceCreditFactor const project = await getProjectByIndex(recipientRegistryAddress, Number(voteOptionIndex)) @@ -49,7 +48,7 @@ export async function getCommittedCart( // cannot be reduced, isCleared is used to mark deleted items return { amount: formatAmount(amount, nativeTokenDecimals, null, maxDecimals), - isCleared: amount.isZero(), + isCleared: amount === 0n, ...project, } }) diff --git a/vue-app/src/api/claims.ts b/vue-app/src/api/claims.ts index 82da4d757..bf76eff3a 100644 --- a/vue-app/src/api/claims.ts +++ b/vue-app/src/api/claims.ts @@ -1,4 +1,4 @@ -import { Contract, BigNumber } from 'ethers' +import { Contract } from 'ethers' import sdk from '@/graphql/sdk' import { FundingRound } from './abi' @@ -9,7 +9,7 @@ export async function getAllocatedAmount( tokenDecimals: number, result: string, spent: string, -): Promise { +): Promise { const fundingRound = new Contract(fundingRoundAddress, FundingRound, provider) const allocatedAmount = await fundingRound.getAllocatedAmount(result, spent) return allocatedAmount diff --git a/vue-app/src/api/clrFund.ts b/vue-app/src/api/clrFund.ts index f9e28b3aa..80de3acdc 100644 --- a/vue-app/src/api/clrFund.ts +++ b/vue-app/src/api/clrFund.ts @@ -1,5 +1,4 @@ -import { BigNumber } from 'ethers' -import { clrFundContract } from './core' +import { clrfundContractAddress, clrFundContract } from './core' import sdk from '@/graphql/sdk' export interface ClrFund { @@ -8,20 +7,20 @@ export interface ClrFund { nativeTokenDecimals: number userRegistryAddress: string recipientRegistryAddress: string - matchingPool: BigNumber + matchingPool: bigint } export async function getClrFundInfo() { let nativeTokenAddress = '' let nativeTokenSymbol = '' let nativeTokenDecimals = 0 - let matchingPool = BigNumber.from(0) + let matchingPool = BigInt(0) let userRegistryAddress = '' let recipientRegistryAddress = '' try { const data = await sdk.GetClrFundInfo({ - clrFundAddress: clrFundContract.address.toLowerCase(), + clrFundAddress: clrfundContractAddress.toLowerCase(), }) const nativeTokenInfo = data.clrFund?.nativeTokenInfo @@ -55,7 +54,7 @@ export async function getClrFundInfo() { } } -export async function getMatchingFunds(nativeTokenAddress: string): Promise { +export async function getMatchingFunds(nativeTokenAddress: string): Promise { const matchingFunds = await clrFundContract.getMatchingFunds(nativeTokenAddress) return matchingFunds } diff --git a/vue-app/src/api/contributions.ts b/vue-app/src/api/contributions.ts index 74bbafba9..ebf9ba05e 100644 --- a/vue-app/src/api/contributions.ts +++ b/vue-app/src/api/contributions.ts @@ -1,7 +1,5 @@ -import { BigNumber, Contract, Signer, FixedNumber } from 'ethers' -import { parseFixed } from '@ethersproject/bignumber' - -import type { TransactionResponse } from '@ethersproject/abstract-provider' +import { Contract, FixedNumber, parseUnits } from 'ethers' +import type { TransactionResponse, Signer } from 'ethers' import { Keypair, PubKey, PrivKey, Message, Command, getPubKeyId } from '@clrfund/common' import type { RoundInfo } from './round' @@ -61,19 +59,16 @@ export function serializeContributorData(contributor: Contributor): string { export function deserializeContributorData(data: string | null): Contributor | null { if (data) { const parsed = JSON.parse(data) - const keypair = new Keypair(PrivKey.unserialize(parsed.privateKey)) + const keypair = new Keypair(PrivKey.deserialize(parsed.privateKey)) return { keypair, stateIndex: parsed.stateIndex } } else { return null } } -export async function getContributionAmount( - fundingRoundAddress: string, - contributorAddress: string, -): Promise { +export async function getContributionAmount(fundingRoundAddress: string, contributorAddress: string): Promise { if (!fundingRoundAddress) { - return BigNumber.from(0) + return 0n } const data = await sdk.GetContributionsAmount({ fundingRoundAddress: fundingRoundAddress.toLowerCase(), @@ -81,13 +76,13 @@ export async function getContributionAmount( }) if (!data.contributions.length) { - return BigNumber.from(0) + return 0n } - return BigNumber.from(data.contributions[0].amount) + return BigInt(data.contributions[0].amount) } -export async function getTotalContributed(fundingRoundAddress: string): Promise<{ count: number; amount: BigNumber }> { +export async function getTotalContributed(fundingRoundAddress: string): Promise<{ count: number; amount: bigint }> { const nativeTokenAddress = await clrFundContract.nativeToken() const nativeToken = new Contract(nativeTokenAddress, ERC20, provider) const balance = await nativeToken.balanceOf(fundingRoundAddress) @@ -97,7 +92,7 @@ export async function getTotalContributed(fundingRoundAddress: string): Promise< }) if (!data.fundingRound?.contributorCount) { - return { count: 0, amount: BigNumber.from(0) } + return { count: 0, amount: 0n } } const count = parseInt(data.fundingRound.contributorCount) @@ -128,19 +123,16 @@ export function isContributionAmountValid(value: string, currentRound: RoundInfo // return true // } const { nativeTokenDecimals, voiceCreditFactor } = currentRound - let amount + let amount: bigint try { - amount = parseFixed(value, nativeTokenDecimals) + amount = parseUnits(value, nativeTokenDecimals) } catch { return false } - if (amount.lte(BigNumber.from(0))) { + if (amount <= 0n) { return false } - const normalizedValue = FixedNumber.fromValue( - amount.div(voiceCreditFactor).mul(voiceCreditFactor), - nativeTokenDecimals, - ) + const normalizedValue = FixedNumber.fromValue((amount / voiceCreditFactor) * voiceCreditFactor, nativeTokenDecimals) .toUnsafeFloat() .toString() return normalizedValue === value @@ -207,10 +199,10 @@ export async function getContributorMessages({ let latestTransaction: Transaction | null = null const latestMessages = result.messages .filter(message => { - const { iv, data, blockNumber, transactionIndex } = message + const { msgType, data, blockNumber, transactionIndex } = message try { - const maciMessage = new Message(iv, data || []) + const maciMessage = new Message(BigInt(msgType), data || []) const { command, signature } = Command.decrypt(maciMessage, sharedKey) if (!command.verifySignature(signature, contributorKey.pubKey)) { // Not signed by this user, filter it out @@ -240,8 +232,8 @@ export async function getContributorMessages({ return latestTransaction && tx.compare(latestTransaction) === 0 }) .map(message => { - const { iv, data } = message - return new Message(iv, data || []) + const { msgType, data } = message + return new Message(BigInt(msgType), data || []) }) return latestMessages diff --git a/vue-app/src/api/core.ts b/vue-app/src/api/core.ts index 9f5049ca2..4aa23cf68 100644 --- a/vue-app/src/api/core.ts +++ b/vue-app/src/api/core.ts @@ -1,4 +1,4 @@ -import { ethers } from 'ethers' +import { JsonRpcProvider, Contract } from 'ethers' import { ClrFund } from './abi' import { CHAIN_INFO } from '@/utils/chains' @@ -16,8 +16,8 @@ if (!walletConnectProjectId) { throw new Error('Please provide wallet connect project id') } -export const mainnetProvider = new ethers.providers.StaticJsonRpcProvider(import.meta.env.VITE_ETHEREUM_MAINNET_API_URL) -export const provider = new ethers.providers.StaticJsonRpcProvider(rpcUrl) +export const mainnetProvider = new JsonRpcProvider(import.meta.env.VITE_ETHEREUM_MAINNET_API_URL) +export const provider = new JsonRpcProvider(rpcUrl) export const chainId = Number(import.meta.env.VITE_ETHEREUM_API_CHAINID) export const chain = CHAIN_INFO[chainId] if (!chain) throw new Error('invalid chain id') @@ -37,7 +37,8 @@ if (!ipfsPinningJwt && !(ipfsApiKey && ipfsSecretApiKey)) { //TODO: need to be able to pass the clrfund contract address dynamically, note all places this is used make clrfund address a parameter that defaults to the env. variable set //NOTE: these calls will be replaced by subgraph queries eventually. -export const clrFundContract = new ethers.Contract(import.meta.env.VITE_CLRFUND_ADDRESS as string, ClrFund, provider) +export const clrFundContract = new Contract(import.meta.env.VITE_CLRFUND_ADDRESS as string, ClrFund, provider) +export const clrfundContractAddress = import.meta.env.VITE_CLRFUND_ADDRESS as string export const userRegistryType = import.meta.env.VITE_USER_REGISTRY_TYPE export enum UserRegistryType { BRIGHT_ID = 'brightid', diff --git a/vue-app/src/api/projects.ts b/vue-app/src/api/projects.ts index 1733dcce6..7dbbc35f9 100644 --- a/vue-app/src/api/projects.ts +++ b/vue-app/src/api/projects.ts @@ -1,5 +1,5 @@ -import { BigNumber, Contract, Signer } from 'ethers' -import type { TransactionResponse } from '@ethersproject/abstract-provider' +import { Contract } from 'ethers' +import type { TransactionResponse, Signer } from 'ethers' import { FundingRound, OptimisticRecipientRegistry } from './abi' import { clrFundContract, provider, recipientRegistryType, ipfsGatewayUrl } from './core' @@ -18,9 +18,9 @@ export interface LeaderboardProject { bannerImageUrl?: string thumbnailImageUrl?: string imageUrl?: string - allocatedAmount: BigNumber - votes: BigNumber - donation: BigNumber + allocatedAmount: bigint + votes: bigint + donation: bigint } export interface Project { @@ -158,6 +158,9 @@ export async function getProjectByIndex( export async function getRecipientIdByHash(transactionHash: string): Promise { try { const receipt = await provider.getTransactionReceipt(transactionHash) + if (!receipt) { + return null + } // should only have 1 event, just in case, return the first matching event for (const log of receipt.logs) { @@ -182,9 +185,9 @@ export function toLeaderboardProject(project: any): LeaderboardProject { name: project.name, index: project.recipientIndex, imageUrl, - allocatedAmount: BigNumber.from(project.allocatedAmount || '0'), - votes: BigNumber.from(project.tallyResult || '0'), - donation: BigNumber.from(project.spentVoiceCredits || '0'), + allocatedAmount: BigInt(project.allocatedAmount || '0'), + votes: BigInt(project.tallyResult || '0'), + donation: BigInt(project.spentVoiceCredits || '0'), } } diff --git a/vue-app/src/api/recipient-registry-kleros.ts b/vue-app/src/api/recipient-registry-kleros.ts index 2a260ebf8..7ab229938 100644 --- a/vue-app/src/api/recipient-registry-kleros.ts +++ b/vue-app/src/api/recipient-registry-kleros.ts @@ -1,5 +1,5 @@ -import { Contract, type Event, Signer, BigNumber } from 'ethers' -import type { TransactionResponse } from '@ethersproject/abstract-provider' +import { Contract, toNumber } from 'ethers' +import type { TransactionResponse, Signer, EventLog } from 'ethers' import { gtcrDecode } from '@kleros/gtcr-encoder' import { KlerosGTCR, KlerosGTCRAdapter } from './abi' @@ -26,7 +26,7 @@ async function getTcrColumns(tcr: Contract): Promise { const metaEvidenceEvents = await tcr.queryFilter(metaEvidenceFilter, 0) // Take last event with even index const regMetaEvidenceEvent = metaEvidenceEvents[metaEvidenceEvents.length - 2] - const ipfsPath = (regMetaEvidenceEvent.args as any)._evidence + const ipfsPath = (regMetaEvidenceEvent as EventLog).args._evidence const tcrDataResponse = await fetch(`${ipfsGatewayUrl}${ipfsPath}`) const tcrData = await tcrDataResponse.json() return tcrData.metadata.columns @@ -56,7 +56,7 @@ function decodeTcrItemData( } } -function decodeRecipientAdded(event: Event, columns: TcrColumn[]): Project { +function decodeRecipientAdded(event: EventLog, columns: TcrColumn[]): Project { const args = event.args as any return { id: args._tcrItemId, @@ -78,17 +78,17 @@ export async function getProjects(registryAddress: string, startTime?: number, e const recipientRemovedEvents = await registry.queryFilter(recipientRemovedFilter, 0) const projects: Project[] = [] for (const event of recipientAddedEvents) { - const project = decodeRecipientAdded(event, tcrColumns) - const addedAt = (event.args as any)._timestamp.toNumber() + const project = decodeRecipientAdded(event as EventLog, tcrColumns) + const addedAt = toNumber((event as EventLog).args._timestamp) if (endTime && addedAt >= endTime) { // Hide recipient if it is added after the end of round. project.isHidden = true } const removed = recipientRemovedEvents.find(event => { - return (event.args as any)._tcrItemId === project.id + return (event as EventLog).args._tcrItemId === project.id }) if (removed) { - const removedAt = (removed.args as any)._timestamp.toNumber() + const removedAt = toNumber((removed as EventLog).args._timestamp) if (!startTime || removedAt <= startTime) { // Start time not specified // or recipient had been removed before start time @@ -106,7 +106,7 @@ export async function getProjects(registryAddress: string, startTime?: number, e const tcrItemSubmittedFilter = tcr.filters.ItemSubmitted() const tcrItemSubmittedEvents = await tcr.queryFilter(tcrItemSubmittedFilter, 0) for (const event of tcrItemSubmittedEvents) { - const tcrItemId = (event.args as any)._itemID + const tcrItemId = (event as EventLog).args._itemID const registered = projects.find(item => item.id === tcrItemId) if (registered) { // Already registered (or registered and removed) @@ -151,7 +151,7 @@ export async function getProject(registryAddress: string, recipientId: string): isHidden: false, isLocked: false, extra: { - tcrItemStatus: tcrItemStatus.toNumber(), + tcrItemStatus: toNumber(tcrItemStatus), tcrItemUrl: `${KLEROS_CURATE_URL}/${recipientId}`, }, } @@ -159,7 +159,7 @@ export async function getProject(registryAddress: string, recipientId: string): const recipientAddedEvents = await registry.queryFilter(recipientAddedFilter, 0) if (recipientAddedEvents.length !== 0) { const recipientAddedEvent = recipientAddedEvents[0] - project.index = (recipientAddedEvent.args as any)._index.toNumber() + project.index = toNumber((recipientAddedEvent as EventLog).args._index) } const recipientRemovedFilter = registry.filters.RecipientRemoved(recipientId) const recipientRemovedEvents = await registry.queryFilter(recipientRemovedFilter, 0) @@ -190,7 +190,7 @@ async function getRegistryInfo(registryAddress: string): Promise { // older BaseRecipientRegistry contract did not have recipientCount // set it to zero as this information is only // used during current round for space calculation - recipientCount = BigNumber.from(0) + recipientCount = BigInt(0) } // Kleros registry does not have owner @@ -198,7 +198,7 @@ async function getRegistryInfo(registryAddress: string): Promise { // deposit, depositToken and challengePeriodDuration are only relevant to the optimistic registry return { - deposit: BigNumber.from(0), + deposit: BigInt(0), depositToken: '', challengePeriodDuration: 0, recipientCount: recipientCount.toNumber(), diff --git a/vue-app/src/api/recipient-registry-optimistic.ts b/vue-app/src/api/recipient-registry-optimistic.ts index 1ecae4bb9..2bb23a827 100644 --- a/vue-app/src/api/recipient-registry-optimistic.ts +++ b/vue-app/src/api/recipient-registry-optimistic.ts @@ -1,6 +1,5 @@ -import { BigNumber, Contract, Signer } from 'ethers' -import type { TransactionResponse, TransactionReceipt } from '@ethersproject/abstract-provider' -import { isHexString } from '@ethersproject/bytes' +import { Contract, toNumber, isHexString } from 'ethers' +import type { TransactionResponse, TransactionReceipt, Signer } from 'ethers' import { DateTime } from 'luxon' import { getEventArg } from '@/utils/contracts' import { chain } from '@/api/core' @@ -25,14 +24,14 @@ async function getRegistryInfo(registryAddress: string): Promise { // older BaseRecipientRegistry contract did not have recipientCount // set it to zero as this information is only // used during current round for space calculation - recipientCount = BigNumber.from(0) + recipientCount = BigInt(0) } const owner = await registry.owner() return { deposit, depositToken: chain.currency, - challengePeriodDuration: challengePeriodDuration.toNumber(), - recipientCount: recipientCount.toNumber(), + challengePeriodDuration: toNumber(challengePeriodDuration), + recipientCount: toNumber(recipientCount), owner, } } @@ -186,7 +185,7 @@ export async function getRequests(registryInfo: RegistryInfo, registryAddress: s async function addRecipient( registryAddress: string, recipientApplicationData: RecipientApplicationData, - deposit: BigNumber, + deposit: bigint, signer: Signer, ): Promise { const registry = new Contract(registryAddress, OptimisticRecipientRegistry, signer) diff --git a/vue-app/src/api/recipient-registry-simple.ts b/vue-app/src/api/recipient-registry-simple.ts index 8fda10a91..852e85f4c 100644 --- a/vue-app/src/api/recipient-registry-simple.ts +++ b/vue-app/src/api/recipient-registry-simple.ts @@ -1,7 +1,5 @@ -import { Contract, BigNumber, Signer } from 'ethers' -import type { Event } from 'ethers' -import { isHexString } from '@ethersproject/bytes' -import type { TransactionResponse } from '@ethersproject/abstract-provider' +import { Contract, toNumber, isHexString } from 'ethers' +import type { EventLog, ContractTransactionResponse, Signer } from 'ethers' import { SimpleRecipientRegistry } from './abi' import { provider, ipfsGatewayUrl } from './core' @@ -9,7 +7,7 @@ import type { Project } from './projects' import type { RegistryInfo, RecipientApplicationData } from './types' import { formToRecipientData } from './recipient' -function decodeRecipientAdded(event: Event): Project { +function decodeRecipientAdded(event: EventLog): Project { const args = event.args as any const metadata = JSON.parse(args._metadata) return { @@ -46,21 +44,21 @@ export async function getProjects(registryAddress: string, startTime?: number, e for (const event of recipientAddedEvents) { let project: Project try { - project = decodeRecipientAdded(event) + project = decodeRecipientAdded(event as EventLog) } catch { // Invalid metadata continue } - const addedAt = (event.args as any)._timestamp.toNumber() + const addedAt = toNumber((event as EventLog).args._timestamp) if (endTime && addedAt >= endTime) { // Hide recipient if it is added after the end of round project.isHidden = true } const removed = recipientRemovedEvents.find(event => { - return (event.args as any)._recipientId === project.id - }) + return (event as EventLog).args._recipientId === project.id + }) as EventLog if (removed) { - const removedAt = (removed.args as any)._timestamp.toNumber() + const removedAt = toNumber(removed.args._timestamp) if (!startTime || removedAt <= startTime) { // Start time not specified // or recipient had been removed before start time @@ -89,7 +87,7 @@ export async function getProject(registryAddress: string, recipientId: string): } let project try { - project = decodeRecipientAdded(recipientAddedEvents[0]) + project = decodeRecipientAdded(recipientAddedEvents[0] as EventLog) } catch { // Invalid metadata return null @@ -108,23 +106,23 @@ export async function getProject(registryAddress: string, recipientId: string): async function getRegistryInfo(registryAddress: string): Promise { const registry = new Contract(registryAddress, SimpleRecipientRegistry, provider) - let recipientCount + let recipientCount: bigint try { recipientCount = await registry.getRecipientCount() } catch { // older BaseRecipientRegistry contract did not have recipientCount // set it to zero as this information is only // used during current round for space calculation - recipientCount = BigNumber.from(0) + recipientCount = 0n } const owner = await registry.owner() // deposit, depositToken and challengePeriodDuration are only relevant to the optimistic registry return { - deposit: BigNumber.from(0), + deposit: 0n, depositToken: '', challengePeriodDuration: 0, - recipientCount: recipientCount.toNumber(), + recipientCount: toNumber(recipientCount), owner, } } @@ -133,7 +131,7 @@ async function addRecipient( registryAddress: string, recipientApplicationData: RecipientApplicationData, signer: Signer, -): Promise { +): Promise { const registry = new Contract(registryAddress, SimpleRecipientRegistry, signer) const recipientData = formToRecipientData(recipientApplicationData) const { address, ...metadata } = recipientData diff --git a/vue-app/src/api/recipient-registry.ts b/vue-app/src/api/recipient-registry.ts index dd26dea8e..0c0690cef 100644 --- a/vue-app/src/api/recipient-registry.ts +++ b/vue-app/src/api/recipient-registry.ts @@ -3,8 +3,7 @@ import { recipientRegistryType } from './core' import SimpleRegistry from './recipient-registry-simple' import OptimisticRegistry from './recipient-registry-optimistic' import KlerosRegistry from './recipient-registry-kleros' -import type { BigNumber, Signer } from 'ethers' -import type { TransactionResponse } from '@ethersproject/abstract-provider' +import type { ContractTransactionResponse, Signer } from 'ethers' export async function getRegistryInfo(registryAddress: string): Promise { if (recipientRegistryType === 'simple') { @@ -21,9 +20,9 @@ export async function getRegistryInfo(registryAddress: string): Promise { +): Promise { if (recipientRegistryType === 'simple') { return await SimpleRegistry.addRecipient(registryAddress, recipientApplicationData, signer) } else if (recipientRegistryType === 'optimistic') { diff --git a/vue-app/src/api/round.ts b/vue-app/src/api/round.ts index 755837fea..5a9ec29da 100644 --- a/vue-app/src/api/round.ts +++ b/vue-app/src/api/round.ts @@ -1,4 +1,4 @@ -import { BigNumber, Contract, utils } from 'ethers' +import { Contract, toNumber, getAddress, hexlify, randomBytes } from 'ethers' import { DateTime } from 'luxon' import { PubKey } from '@clrfund/common' @@ -26,14 +26,14 @@ export interface RoundInfo { nativeTokenAddress: string nativeTokenSymbol: string nativeTokenDecimals: number - voiceCreditFactor: BigNumber + voiceCreditFactor: bigint status: string startTime: DateTime signUpDeadline: DateTime votingDeadline: DateTime - totalFunds: BigNumber - matchingPool: BigNumber - contributions: BigNumber + totalFunds: bigint + matchingPool: bigint + contributions: bigint contributors: number messages: number blogUrl?: string @@ -67,32 +67,32 @@ export async function getCurrentRound(): Promise { export function toRoundInfo(data: any, network: string): RoundInfo { const nativeTokenDecimals = Number(data.nativeTokenDecimals) // leaderboard does not need coordinator key, generate a dummy number - const keypair = Keypair.createFromSeed(utils.hexlify(utils.randomBytes(32))) + const keypair = Keypair.createFromSeed(hexlify(randomBytes(32))) const coordinatorPubKey = keypair.pubKey - const voiceCreditFactor = BigNumber.from(data.voiceCreditFactor) - const contributions = BigNumber.from(data.totalSpent).mul(voiceCreditFactor) - const matchingPool = BigNumber.from(data.matchingPoolSize) + const voiceCreditFactor = BigInt(data.voiceCreditFactor) + const contributions = BigInt(data.totalSpent) * voiceCreditFactor + const matchingPool = BigInt(data.matchingPoolSize) let status = RoundStatus.Cancelled if (data.isCancelled) { status = RoundStatus.Cancelled } else if (data.isFinalized) { status = RoundStatus.Finalized } - const totalFunds = contributions.add(matchingPool) + const totalFunds = contributions + matchingPool return { fundingRoundAddress: data.address, - recipientRegistryAddress: utils.getAddress(data.recipientRegistryAddress), - userRegistryAddress: utils.getAddress(data.userRegistryAddress), - maciAddress: utils.getAddress(data.maciAddress), + recipientRegistryAddress: getAddress(data.recipientRegistryAddress), + userRegistryAddress: getAddress(data.userRegistryAddress), + maciAddress: getAddress(data.maciAddress), pollId: BigInt(data.pollId || 0), recipientTreeDepth: 0, maxContributors: 0, maxRecipients: data.maxRecipients, maxMessages: data.maxMessages, coordinatorPubKey, - nativeTokenAddress: utils.getAddress(data.nativeTokenAddress), + nativeTokenAddress: getAddress(data.nativeTokenAddress), nativeTokenSymbol: data.nativeTokenSymbol, nativeTokenDecimals, voiceCreditFactor, @@ -167,7 +167,7 @@ export async function getRoundInfo( coordinatorPubKeyY, } = data.fundingRound - const voiceCreditFactor = BigNumber.from(data.fundingRound.voiceCreditFactor) + const voiceCreditFactor = BigInt(data.fundingRound.voiceCreditFactor) const poll = new Contract(pollAddress, Poll, provider) const [, messages] = await poll.numSignUpsAndMessages() @@ -186,12 +186,12 @@ export async function getRoundInfo( const contributionsInfo = await getTotalContributed(fundingRoundAddress) const contributors = contributionsInfo.count let status: string - let contributions: BigNumber - let matchingPool: BigNumber + let contributions: bigint + let matchingPool: bigint if (isCancelled) { status = RoundStatus.Cancelled - contributions = BigNumber.from(0) - matchingPool = BigNumber.from(0) + contributions = 0n + matchingPool = 0n } else if (isFinalized) { status = RoundStatus.Finalized contributions = (await fundingRound.totalSpent()).mul(voiceCreditFactor) @@ -213,20 +213,20 @@ export async function getRoundInfo( matchingPool = await clrFundContract.getMatchingFunds(nativeTokenAddress) } - const totalFunds = matchingPool.add(contributions) + const totalFunds = matchingPool + contributions return { fundingRoundAddress, - recipientRegistryAddress: utils.getAddress(recipientRegistryAddress), - userRegistryAddress: utils.getAddress(userRegistryAddress), - maciAddress: utils.getAddress(maciAddress), + recipientRegistryAddress: getAddress(recipientRegistryAddress), + userRegistryAddress: getAddress(userRegistryAddress), + maciAddress: getAddress(maciAddress), pollId: BigInt(pollId || 0), recipientTreeDepth: voteOptionTreeDepth || 1, maxContributors, maxRecipients: voteOptionTreeDepth ? 5 ** voteOptionTreeDepth - 1 : 0, maxMessages, coordinatorPubKey, - nativeTokenAddress: utils.getAddress(nativeTokenAddress), + nativeTokenAddress: getAddress(nativeTokenAddress), nativeTokenSymbol, nativeTokenDecimals, voiceCreditFactor, @@ -238,6 +238,6 @@ export async function getRoundInfo( matchingPool, contributions, contributors, - messages: messages.toNumber(), + messages: toNumber(messages), } } diff --git a/vue-app/src/api/subgraph.ts b/vue-app/src/api/subgraph.ts index db01532a2..9f1a58819 100644 --- a/vue-app/src/api/subgraph.ts +++ b/vue-app/src/api/subgraph.ts @@ -1,4 +1,4 @@ -import type { TransactionReceipt } from '@ethersproject/abstract-provider' +import type { TransactionReceipt } from 'ethers' import sdk from '@/graphql/sdk' /** diff --git a/vue-app/src/api/types.ts b/vue-app/src/api/types.ts index 96d3897b5..0252f4fb0 100644 --- a/vue-app/src/api/types.ts +++ b/vue-app/src/api/types.ts @@ -1,8 +1,6 @@ -import type { BigNumber } from 'ethers' - // Recipient registry info export interface RegistryInfo { - deposit: BigNumber + deposit: bigint depositToken: string challengePeriodDuration: number recipientCount: number diff --git a/vue-app/src/api/user.ts b/vue-app/src/api/user.ts index 9cee1f442..0b2ec51ba 100644 --- a/vue-app/src/api/user.ts +++ b/vue-app/src/api/user.ts @@ -1,9 +1,8 @@ import makeBlockie from 'ethereum-blockies-base64' -import { BigNumber, Contract, Signer, type ContractTransaction } from 'ethers' -import type { Web3Provider } from '@ethersproject/providers' +import { Contract, type ContractTransaction, type Signer, BrowserProvider } from 'ethers' import { FundingRound, UserRegistry, ERC20 } from './abi' -import { clrFundContract, ipfsGatewayUrl, provider, operator } from './core' +import { clrfundContractAddress, ipfsGatewayUrl, provider, operator } from './core' import type { BrightId } from './bright-id' import { SnapshotUserRegistry, MerkleUserRegistry } from './abi' import { @@ -21,17 +20,17 @@ To get logged in, sign this message to prove you have access to this wallet. Thi You will be asked to sign each time you load the app. -Contract address: ${clrFundContract.address.toLowerCase()}.` +Contract address: ${clrfundContractAddress.toLowerCase()}.` export interface User { walletAddress: string - walletProvider: Web3Provider + walletProvider: BrowserProvider encryptionKey?: string brightId?: BrightId isRegistered?: boolean // If is in user registry - balance?: BigNumber | null - etherBalance?: BigNumber | null - contribution?: BigNumber | null + balance?: bigint | null + etherBalance?: bigint | null + contribution?: bigint | null ensName?: string | null } @@ -59,12 +58,12 @@ export async function isRegisteredUser(fundingRoundAddress: string, walletAddres return contributor.isRegistered } -export async function getTokenBalance(tokenAddress: string, walletAddress: string): Promise { +export async function getTokenBalance(tokenAddress: string, walletAddress: string): Promise { const token = new Contract(tokenAddress, ERC20, provider) return await token.balanceOf(walletAddress) } -export async function getEtherBalance(walletAddress: string): Promise { +export async function getEtherBalance(walletAddress: string): Promise { return await provider.getBalance(walletAddress) } diff --git a/vue-app/src/components/Cart.vue b/vue-app/src/components/Cart.vue index a8a602e27..d5e9e1cf0 100644 --- a/vue-app/src/components/Cart.vue +++ b/vue-app/src/components/Cart.vue @@ -226,8 +226,7 @@ diff --git a/vue-app/src/lambda/sponsor.js b/vue-app/src/lambda/sponsor.js index f935e5007..1180294e3 100644 --- a/vue-app/src/lambda/sponsor.js +++ b/vue-app/src/lambda/sponsor.js @@ -1,4 +1,4 @@ -import { utils } from 'ethers' +import { decodeBase64, encodeBase64 } from 'ethers' import nacl from 'tweetnacl' const NODE_URL = process.env.VITE_BRIGHTID_NODE_URL || 'https://app.brightid.org/node/v6' @@ -73,10 +73,10 @@ async function handleSponsorRequest(userAddress) { } const message = JSON.stringify(op) - const arrayedMessage = utils.toUtf8Bytes(message) - const arrayedKey = utils.base64.decode(brightIdSponsorKey) + const arrayedMessage = toUtf8Bytes(message) + const arrayedKey = decodeBase64(brightIdSponsorKey) const signature = nacl.sign.detached(arrayedMessage, arrayedKey) - op.sig = utils.base64.encode(signature) + op.sig = encodeBase64(signature) const res = await fetch(endpoint, { method: 'POST', diff --git a/vue-app/src/stores/app.ts b/vue-app/src/stores/app.ts index 4ed0c7752..5ba630144 100644 --- a/vue-app/src/stores/app.ts +++ b/vue-app/src/stores/app.ts @@ -1,5 +1,4 @@ import { defineStore } from 'pinia' -import { BigNumber } from 'ethers' import { type CartItem, type Contributor, @@ -163,10 +162,10 @@ export const useAppStore = defineStore('app', { return clrFund.userRegistryAddress } }, - matchingPool: (state): BigNumber => { + matchingPool: (state): bigint => { const { currentRound, clrFund } = state - let matchingPool = BigNumber.from(0) + let matchingPool = BigInt(0) if (clrFund) { matchingPool = clrFund.matchingPool @@ -438,7 +437,7 @@ export const useAppStore = defineStore('app', { setContributor(contributor: Contributor | null) { this.contributor = contributor }, - setContribution(contribution: BigNumber | null) { + setContribution(contribution: bigint | null) { this.contribution = contribution }, async loadContributorData() { diff --git a/vue-app/src/stores/user.ts b/vue-app/src/stores/user.ts index 0a6d121b8..ceb315816 100644 --- a/vue-app/src/stores/user.ts +++ b/vue-app/src/stores/user.ts @@ -3,7 +3,7 @@ import { defineStore } from 'pinia' import { useAppStore } from '@/stores' import type { WalletUser } from '@/stores' import { getContributionAmount, hasContributorVoted } from '@/api/contributions' -import type { BigNumber, Signer } from 'ethers' +import type { Signer } from 'ethers' import { ensLookup, isValidSignature } from '@/utils/accounts' import { UserRegistryType, userRegistryType } from '@/api/core' import { getBrightId, type BrightId } from '@/api/bright-id' @@ -19,13 +19,12 @@ export const useUserStore = defineStore('user', { state: (): UserState => ({ currentUser: null, }), - getters: { - signer(): Signer { + getters: {}, + actions: { + async getSigner() { assert(this.currentUser, ASSERT_NOT_CONNECTED_WALLET) return this.currentUser.walletProvider.getSigner() }, - }, - actions: { loginUser(user: WalletUser) { this.currentUser = { walletAddress: user.walletAddress, @@ -43,7 +42,8 @@ export const useUserStore = defineStore('user', { async requestSignature() { assert(this.currentUser, ASSERT_NOT_CONNECTED_WALLET) if (!this.currentUser.encryptionKey) { - const signature = await this.signer.signMessage(LOGIN_MESSAGE) + const signer = await this.currentUser.walletProvider.getSigner() + const signature = await signer.signMessage(LOGIN_MESSAGE) if (!isValidSignature(signature)) { // gnosis safe does not return signature in hex string @@ -62,7 +62,7 @@ export const useUserStore = defineStore('user', { let nativeTokenAddress = '' let userRegistryAddress = '' - let balance: BigNumber | null = null + let balance: bigint | null = null let isRegistered: boolean | undefined = undefined const walletAddress = this.currentUser.walletAddress diff --git a/vue-app/src/stores/wallet/index.ts b/vue-app/src/stores/wallet/index.ts index d0e5d24b9..e64c54f8d 100644 --- a/vue-app/src/stores/wallet/index.ts +++ b/vue-app/src/stores/wallet/index.ts @@ -6,7 +6,7 @@ import { CHAIN_INFO } from '@/utils/chains' import type { Provider } from './types' import { EthereumProvider } from '@walletconnect/ethereum-provider' import { chainId } from '@/api/core' -import { providers } from 'ethers' +import { BrowserProvider } from 'ethers' const CONNECTED_PROVIDER = 'connected-provider' const DISCONNECT_EVENT = 'disconnect' @@ -22,7 +22,7 @@ const connectors: Record = { export type WalletUser = { chainId: number - web3Provider: providers.Web3Provider + web3Provider: BrowserProvider walletAddress: string } @@ -95,7 +95,7 @@ export const useWalletStore = defineStore('wallet', { this.user = { chainId: conn.chainId, walletAddress: account, - web3Provider: markRaw(new providers.Web3Provider(conn.provider)), + web3Provider: markRaw(new BrowserProvider(conn.provider)), } // Emit EIP-1193 events and update plugin values diff --git a/vue-app/src/stores/wallet/types.ts b/vue-app/src/stores/wallet/types.ts index be811a232..fc86be99f 100644 --- a/vue-app/src/stores/wallet/types.ts +++ b/vue-app/src/stores/wallet/types.ts @@ -1,7 +1,7 @@ -import type { ExternalProvider } from '@ethersproject/providers' +import type { Eip1193Provider } from 'ethers' import type WalletConnectProvider from '@walletconnect/web3-provider' -export interface Provider extends ExternalProvider { +export interface Provider extends Eip1193Provider { disconnect?: () => void close?: () => void removeListener?: (event: string, handler: () => void) => void diff --git a/vue-app/src/utils/accounts.ts b/vue-app/src/utils/accounts.ts index 99bb50b09..5f10dd075 100644 --- a/vue-app/src/utils/accounts.ts +++ b/vue-app/src/utils/accounts.ts @@ -1,12 +1,11 @@ -import { utils } from 'ethers' +import { getAddress, isHexString, type Addressable, isAddress } from 'ethers' import { mainnetProvider } from '@/api/core' -import { isAddress } from '@ethersproject/address' const SIGNATURE_LENGTH = 65 export function isSameAddress(address1: string, address2: string): boolean { // check for empty address to avoid getAddress() from throwing - return !!address1 && !!address2 && utils.getAddress(address1) === utils.getAddress(address2) + return !!address1 && !!address2 && getAddress(address1) === getAddress(address2) } // Looks up possible ENS for given 0x address @@ -40,5 +39,5 @@ export function renderAddressOrHash(address: string, digitsToShow?: number): str } export function isValidSignature(signature: string): boolean { - return utils.isHexString(signature, SIGNATURE_LENGTH) + return isHexString(signature, SIGNATURE_LENGTH) } diff --git a/vue-app/src/utils/amounts.ts b/vue-app/src/utils/amounts.ts index 10f37ba5e..5df48c010 100644 --- a/vue-app/src/utils/amounts.ts +++ b/vue-app/src/utils/amounts.ts @@ -1,16 +1,14 @@ -import type { BigNumber, BigNumberish } from 'ethers' -import { commify, formatUnits } from '@ethersproject/units' +import { type BigNumberish, formatUnits } from 'ethers' export function formatAmount( - _value: BigNumber | string, + _value: bigint | string, units: BigNumberish = 18, maximumSignificantDigits?: number | null, maxDecimals?: number | null, ): string { // If _value is already in string form, assign to formattedValue // Otherwise, convert BigNumber (really large integers) to whole AOE balance (human readable floats) - const formattedValue: string = - typeof _value === 'string' ? _value : formatUnits(_value as BigNumber, units).toString() + const formattedValue: string = typeof _value === 'string' ? _value : formatUnits(_value as bigint, units).toString() let result: number = parseFloat(formattedValue) // If `maxDecimals` passed, fix/truncate to string and parse back to number if (maxDecimals != null) { @@ -26,7 +24,7 @@ export function formatAmount( try { // Else, return commified result - return commify(result) + return result.toLocaleString() } catch { // return result without comma if failed to add comma return result.toString(10) diff --git a/vue-app/src/utils/contracts.ts b/vue-app/src/utils/contracts.ts index 92a71c594..ca8642c8d 100644 --- a/vue-app/src/utils/contracts.ts +++ b/vue-app/src/utils/contracts.ts @@ -1,5 +1,5 @@ import type { Contract } from 'ethers' -import type { TransactionResponse, TransactionReceipt } from '@ethersproject/abstract-provider' +import type { TransactionResponse, TransactionReceipt } from 'ethers' import { provider, MAX_WAIT_DEPTH } from '@/api/core' import { isSameAddress } from '@/utils/accounts' @@ -54,7 +54,7 @@ export async function waitForTransactionAndCheck( resolve(receipt) } else { if (depth > MAX_WAIT_DEPTH) { - throw new Error('Time out waiting for transaction ' + receipt.transactionHash) + throw new Error('Time out waiting for transaction ' + receipt.hash) } const timeoutMs = 2 ** depth * 10 diff --git a/vue-app/src/views/JoinLanding.vue b/vue-app/src/views/JoinLanding.vue index 1ef67a06c..e93d648c5 100644 --- a/vue-app/src/views/JoinLanding.vue +++ b/vue-app/src/views/JoinLanding.vue @@ -150,7 +150,6 @@ diff --git a/vue-app/src/views/VerifyLanding.vue b/vue-app/src/views/VerifyLanding.vue index 9c00f9652..58b97f274 100644 --- a/vue-app/src/views/VerifyLanding.vue +++ b/vue-app/src/views/VerifyLanding.vue @@ -133,7 +133,7 @@ function translateDate(date: DateTime): string { }) } -async function promptSignagure() { +async function promptSignature() { const { open, close } = useModal({ component: SignatureModal, attrs: { @@ -152,7 +152,7 @@ function handleButtonClicked() { if (currentUser.value.encryptionKey) { gotoVerify() } else { - promptSignagure() + promptSignature() } } From 06faf7d7fc9edbbb01d970826d09d135667c42b3 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Thu, 8 Feb 2024 18:05:53 -0500 Subject: [PATCH 240/338] use simple recipient registry for localhost testing --- README.md | 4 ++-- vue-app/.env.example | 2 +- vue-app/src/api/recipient-registry-optimistic.ts | 16 ++++++++++++++-- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index f2a3cb231..33b291a72 100644 --- a/README.md +++ b/README.md @@ -65,8 +65,8 @@ In a future version, we plan to address this by routing ETH and token contributi ### Install Node v18 with nvm ```sh -nvm install 18 -nvm use 18 +nvm install 20 +nvm use 20 ``` ### Install the dependencies and build diff --git a/vue-app/.env.example b/vue-app/.env.example index 7686aea11..b7a9357e4 100644 --- a/vue-app/.env.example +++ b/vue-app/.env.example @@ -51,7 +51,7 @@ VITE_BRIGHTID_CONTEXT=clrfund-goerli VITE_MATCHING_POOL_ADDRESS= # Supported values: simple, optimistic, kleros -VITE_RECIPIENT_REGISTRY_TYPE=optimistic +VITE_RECIPIENT_REGISTRY_TYPE=simple VITE_RECIPIENT_REGISTRY_POLICY=QmeygKjvrpidJeFHv6ywjUrj718nwtFQgCCPPR4r5nL87R diff --git a/vue-app/src/api/recipient-registry-optimistic.ts b/vue-app/src/api/recipient-registry-optimistic.ts index be78894c1..1baf6610f 100644 --- a/vue-app/src/api/recipient-registry-optimistic.ts +++ b/vue-app/src/api/recipient-registry-optimistic.ts @@ -14,8 +14,20 @@ import { formToRecipientData } from './recipient' async function getRegistryInfo(registryAddress: string): Promise { const registry = new Contract(registryAddress, OptimisticRecipientRegistry, provider) - const deposit = await registry.baseDeposit() - const challengePeriodDuration = await registry.challengePeriodDuration() + let deposit = BigInt(0) + try { + deposit = await registry.baseDeposit() + } catch (err) { + console.error('Failed to get base deposit from', registryAddress, err) + } + + let challengePeriodDuration = BigInt(0) + try { + challengePeriodDuration = await registry.challengePeriodDuration() + } catch (err) { + console.error('Failed to get challenge period from', registryAddress, err) + } + let recipientCount try { recipientCount = await registry.getRecipientCount() From 2cf06a4138aee1424c0e74e54841094208fc63e4 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Fri, 9 Feb 2024 12:39:48 -0500 Subject: [PATCH 241/338] derive network name from subgraph node --- .github/workflows/finalize-round.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/finalize-round.yml b/.github/workflows/finalize-round.yml index 3c5975cb4..e84353988 100644 --- a/.github/workflows/finalize-round.yml +++ b/.github/workflows/finalize-round.yml @@ -10,7 +10,6 @@ on: env: NODE_VERSION: 20.x - NETWORK: "arbitrum-sepolia" COORDINATOR_MACISK: ${{ secrets.ARBITRUM_GOERLI_COORDINATOR_MACI_PRIVATE_KEY }} WALLET_PRIVATE_KEY: ${{ secrets.ARBITRUM_GOERLI_COORDINATOR_WALLET_PRIVATE_KEY }} CIRCUIT_TYPE: micro @@ -61,6 +60,10 @@ jobs: run: | export SUBGRPAH_URL="https://api.thegraph.com/subgraphs/name/${{ github.event.inputs.subgraph_name }}" echo $SUBGRAPH_URL + export SUBGRAPH_NAME=${{ github.event.inputs.subgraph_name }} + export CHAIN_QUERY=$(node -e 'console.log(`{"query":"{indexingStatusForCurrentVersion(subgraphName: \\\"${process.env.SUBGRAPH_NAME}\\\") { chains { network }}}"}`)') + export CHAIN=$(curl -s -X POST -d '{"query":"{indexingStatusForCurrentVersion(subgraphName:) { chains { network }}}"}' https://api.thegraph.com/index-node/graphql) + export NETWORK=$(node -e 'console.log(JSON.parse(process.env.CHAIN).data.indexingStatusForCurrentVersion.chains[0].network)') export ROUND=$(curl -X POST -d '{"query":"{clrFunds {id currentRound {id maci maciTxHash}}}"}' $SUBGRPAH_URL) export CLRFUND_ADDRESS=$(node -e 'console.log(JSON.parse(process.env.ROUND).data.clrFunds[0].id)') export ROUND_ADDRESS=$(node -e 'console.log(JSON.parse(process.env.ROUND).data.clrFunds[0].currentRound.id)') From 093eef30803092da0ce755e0d79e89aa7e45f489 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Fri, 9 Feb 2024 16:11:32 -0500 Subject: [PATCH 242/338] fix chain query --- .github/workflows/finalize-round.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/finalize-round.yml b/.github/workflows/finalize-round.yml index e84353988..d31d4dc2f 100644 --- a/.github/workflows/finalize-round.yml +++ b/.github/workflows/finalize-round.yml @@ -62,8 +62,9 @@ jobs: echo $SUBGRAPH_URL export SUBGRAPH_NAME=${{ github.event.inputs.subgraph_name }} export CHAIN_QUERY=$(node -e 'console.log(`{"query":"{indexingStatusForCurrentVersion(subgraphName: \\\"${process.env.SUBGRAPH_NAME}\\\") { chains { network }}}"}`)') - export CHAIN=$(curl -s -X POST -d '{"query":"{indexingStatusForCurrentVersion(subgraphName:) { chains { network }}}"}' https://api.thegraph.com/index-node/graphql) + export CHAIN=$(curl -s -X POST -d "$CHAIN_QUERY" https://api.thegraph.com/index-node/graphql) export NETWORK=$(node -e 'console.log(JSON.parse(process.env.CHAIN).data.indexingStatusForCurrentVersion.chains[0].network)') + echo $NETWORK export ROUND=$(curl -X POST -d '{"query":"{clrFunds {id currentRound {id maci maciTxHash}}}"}' $SUBGRPAH_URL) export CLRFUND_ADDRESS=$(node -e 'console.log(JSON.parse(process.env.ROUND).data.clrFunds[0].id)') export ROUND_ADDRESS=$(node -e 'console.log(JSON.parse(process.env.ROUND).data.clrFunds[0].currentRound.id)') From 4268c4fd3800041077f1af259d0112b164e33e12 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Tue, 20 Feb 2024 11:34:05 -0500 Subject: [PATCH 243/338] update MACI to 0.0.0-ci.09b7fe7 and use temporary zk params for testing --- .github/scripts/download-6-8-2-3.sh | 10 +- common/package.json | 6 +- common/src/utils.ts | 1 - contracts/e2e/index.ts | 63 +++-- contracts/package.json | 10 +- contracts/tasks/clrTally.ts | 4 + contracts/utils/circuits.ts | 8 +- contracts/utils/maci.ts | 9 +- contracts/utils/types.ts | 9 - vue-app/package.json | 2 +- yarn.lock | 408 ++++++++++++++++++++++------ 11 files changed, 392 insertions(+), 138 deletions(-) diff --git a/.github/scripts/download-6-8-2-3.sh b/.github/scripts/download-6-8-2-3.sh index 61bda170a..d867841d7 100755 --- a/.github/scripts/download-6-8-2-3.sh +++ b/.github/scripts/download-6-8-2-3.sh @@ -1,13 +1,10 @@ #!/bin/bash set -e -BASE_URL="https://maci-zkeys.s3.amazonaws.com/v1.1.0/6-8-2-3" +# TODO: replace this with params from public ceremony +BASE_URL="https://maci-zkeys.s3.amazonaws.com/v1.1.2/6-8-2-3" PKGS="maci-zkeys-6-8-2-3.tar.gz" -mkdir -p params -cd params - - for p in $PKGS do url="$BASE_URL/$p" @@ -19,6 +16,3 @@ do tar -zxvf $p fi done - -mv zkeys/* . -rm -rf zkeys diff --git a/common/package.json b/common/package.json index 30539b2bc..5b43899cf 100644 --- a/common/package.json +++ b/common/package.json @@ -22,9 +22,9 @@ }, "dependencies": { "@openzeppelin/merkle-tree": "^1.0.5", - "ethers": "^6.9.2", - "maci-crypto": "0.0.0-ci.da1e442", - "maci-domainobjs": "0.0.0-ci.da1e442" + "ethers": "^6.11.1", + "maci-crypto": "0.0.0-ci.09b7fe7", + "maci-domainobjs": "0.0.0-ci.09b7fe7" }, "repository": { "type": "git", diff --git a/common/src/utils.ts b/common/src/utils.ts index ff0695192..d0bd5cdcb 100644 --- a/common/src/utils.ts +++ b/common/src/utils.ts @@ -1,4 +1,3 @@ -import { id } from 'ethers' import { genTreeCommitment as genTallyResultCommitment, genRandomSalt, diff --git a/contracts/e2e/index.ts b/contracts/e2e/index.ts index 3df8eeb02..7d886d6d2 100644 --- a/contracts/e2e/index.ts +++ b/contracts/e2e/index.ts @@ -1,8 +1,7 @@ import { ethers, config } from 'hardhat' -import { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers' import { time, mine } from '@nomicfoundation/hardhat-network-helpers' import { expect } from 'chai' -import { BaseContract, Contract, toNumber } from 'ethers' +import { BaseContract, Contract, toNumber, Signer } from 'ethers' import { Keypair, createMessage, @@ -32,14 +31,17 @@ import { addTallyResultsBatch, getRecipientClaimData, getGenProofArgs, + TallyData, } from '../utils/maci' import { DEFAULT_CIRCUIT } from '../utils/circuits' import { MaciParameters } from '../utils/maciParameters' -import { readFileSync, existsSync, mkdirSync } from 'fs' +import { existsSync, mkdirSync } from 'fs' import path from 'path' import { FundingRound } from '../typechain-types' +import { JSONFile } from '../utils/JSONFile' type VoteData = { recipientIndex: number; voiceCredits: bigint } +type ClaimData = { [index: number]: bigint } const ZERO = BigInt(0) // funding round duration @@ -115,14 +117,14 @@ describe('End-to-end Tests', function () { let maciTransactionHash: string - let deployer: HardhatEthersSigner - let coordinator: HardhatEthersSigner - let poolContributor1: HardhatEthersSigner - let poolContributor2: HardhatEthersSigner - let recipient1: HardhatEthersSigner - let recipient2: HardhatEthersSigner - let recipient3: HardhatEthersSigner - let contributors: HardhatEthersSigner[] + let deployer: Signer + let coordinator: Signer + let poolContributor1: Signer + let poolContributor2: Signer + let recipient1: Signer + let recipient2: Signer + let recipient3: Signer + let contributors: Signer[] let poseidonLibraries: { [key: string]: string } let userRegistry: Contract @@ -207,8 +209,9 @@ describe('End-to-end Tests', function () { // Configure factory await clrfund.setToken(token.target) coordinatorKeypair = new Keypair() + const coordinatorAddress = await coordinator.getAddress() await clrfund.setCoordinator( - coordinator.address, + coordinatorAddress, coordinatorKeypair.pubKey.asContractParam() ) @@ -331,7 +334,9 @@ describe('End-to-end Tests', function () { return { tallyAddress, messageProcessorAddress } } - async function finalizeRound(testResetTally = false): Promise { + async function finalizeRound( + testResetTally = false + ): Promise<{ tally: TallyData; claims: ClaimData }> { debugLog('Finalizing round') // Process messages and tally votes const maciAddress = await maci.getAddress() @@ -339,6 +344,7 @@ describe('End-to-end Tests', function () { maciAddress, pollId, numQueueOps: DEFAULT_SR_QUEUE_OPS, + signer: coordinator, }) debugLog('Merged MACI trees') @@ -359,6 +365,7 @@ describe('End-to-end Tests', function () { outputDir, blocksPerBatch: DEFAULT_GET_LOG_BATCH_SIZE, maciTxHash: maciTransactionHash, + signer: coordinator, quiet, }) @@ -378,6 +385,7 @@ describe('End-to-end Tests', function () { maciAddress, messageProcessorAddress, tallyAddress, + signer: coordinator, quiet, }) @@ -397,12 +405,13 @@ describe('End-to-end Tests', function () { maciAddress, messageProcessorAddress, tallyAddress, + signer: coordinator, quiet, }) } console.log('finished proveOnChain') - const tally = JSON.parse(readFileSync(genProofArgs.tallyFile).toString()) + const tally = JSONFile.read(genProofArgs.tallyFile) as TallyData const tallyHash = await getIpfsHash(tally) await (fundingRound.connect(coordinator) as Contract).publishTallyHash( tallyHash @@ -422,13 +431,13 @@ describe('End-to-end Tests', function () { const newResultCommitment = genTallyResultCommitment( tally.results.tally.map((x: string) => BigInt(x)), - tally.results.salt, + BigInt(tally.results.salt), recipientTreeDepth ) const perVOSpentVoiceCreditsCommitment = genTallyResultCommitment( tally.perVOSpentVoiceCredits.tally.map((x: string) => BigInt(x)), - tally.perVOSpentVoiceCredits.salt, + BigInt(tally.perVOSpentVoiceCredits.salt), recipientTreeDepth ) @@ -442,7 +451,7 @@ describe('End-to-end Tests', function () { ) // Claim funds - const claims: { [index: number]: bigint } = {} + const claims: ClaimData = {} for (const recipientIndex of [1, 2]) { const recipient = recipientIndex === 1 ? recipient1 : recipient2 @@ -460,7 +469,7 @@ describe('End-to-end Tests', function () { 'FundsClaimed', '_amount' ) - claims[recipientIndex] = claimedAmount + claims[recipientIndex] = BigInt(claimedAmount) } return { tally, claims } } @@ -532,8 +541,8 @@ describe('End-to-end Tests', function () { ) ) console.log('expected claim', claims[1], expectedClaims[0]) - expect(BigInt(claims[1])).to.equal(expectedClaims[0]) - expect(BigInt(claims[2])).to.equal(expectedClaims[1]) + expect(claims[1]).to.equal(expectedClaims[0]) + expect(claims[2]).to.equal(expectedClaims[1]) }) it('should allocate funds correctly if not all voice credits are spent', async () => { @@ -656,8 +665,8 @@ describe('End-to-end Tests', function () { [voiceCredits1, contribution2.voiceCredits], ] const expectedTally = tallyVotes(submittedVoiceCredits) - expect(tally.results.tally[1]).to.equal(expectedTally[0]) - expect(tally.results.tally[2]).to.equal(expectedTally[1]) + expect(BigInt(tally.results.tally[1])).to.equal(expectedTally[0]) + expect(BigInt(tally.results.tally[2])).to.equal(expectedTally[1]) const expectedClaims = await calculateClaims( fundingRound, submittedVoiceCredits @@ -734,7 +743,7 @@ describe('End-to-end Tests', function () { ] const expectedTally = tallyVotes(submittedVoiceCredits) expect(tally.results.tally[1]).to.equal('0') - expect(tally.results.tally[2]).to.equal(expectedTally[0]) + expect(BigInt(tally.results.tally[2])).to.equal(expectedTally[0]) const expectedClaims = await calculateClaims( fundingRound, submittedVoiceCredits @@ -821,8 +830,8 @@ describe('End-to-end Tests', function () { ] const expectedTally = tallyVotes(submittedVoiceCredits) - expect(tally.results.tally[1]).to.equal(expectedTally[0]) - expect(tally.results.tally[2]).to.equal(expectedTally[1]) + expect(BigInt(tally.results.tally[1])).to.equal(expectedTally[0]) + expect(BigInt(tally.results.tally[2])).to.equal(expectedTally[1]) expect(tally.results.tally[3]).to.equal('0') const expectedClaims = await calculateClaims( @@ -1010,7 +1019,7 @@ describe('End-to-end Tests', function () { ) ) console.log('expected claim', claims[1], expectedClaims[0]) - expect(BigInt(claims[1])).to.equal(expectedClaims[0]) - expect(BigInt(claims[2])).to.equal(expectedClaims[1]) + expect(claims[1]).to.equal(expectedClaims[0]) + expect(claims[2]).to.equal(expectedClaims[1]) }) }) diff --git a/contracts/package.json b/contracts/package.json index 4b2439830..454dd644b 100644 --- a/contracts/package.json +++ b/contracts/package.json @@ -17,7 +17,7 @@ "dependencies": { "@openzeppelin/contracts": "4.9.0", "dotenv": "^8.2.0", - "maci-contracts": "0.0.0-ci.da1e442", + "maci-contracts": "0.0.0-ci.09b7fe7", "solidity-rlp": "2.0.8" }, "devDependencies": { @@ -33,14 +33,14 @@ "@typechain/ethers-v6": "^0.5.1", "@typechain/hardhat": "^9.1.0", "@types/mocha": "^10.0.6", - "ethers": "^6.10.0", + "ethers": "^6.11.1", "hardhat": "^2.19.4", "hardhat-contract-sizer": "^2.10.0", "hardhat-gas-reporter": "^1.0.8", "ipfs-only-hash": "^2.0.1", - "maci-circuits": "0.0.0-ci.da1e442", - "maci-cli": "0.0.0-ci.da1e442", - "maci-domainobjs": "0.0.0-ci.da1e442", + "maci-circuits": "0.0.0-ci.09b7fe7", + "maci-cli": "0.0.0-ci.09b7fe7", + "maci-domainobjs": "0.0.0-ci.09b7fe7", "mocha": "^10.2.0", "solidity-coverage": "^0.8.1", "ts-node": "^10.9.2", diff --git a/contracts/tasks/clrTally.ts b/contracts/tasks/clrTally.ts index d999ba5f4..13629d33c 100644 --- a/contracts/tasks/clrTally.ts +++ b/contracts/tasks/clrTally.ts @@ -257,6 +257,7 @@ task('clr-tally', 'Tally votes') maciAddress, pollId, numQueueOps, + signer: coordinator, quiet, }) @@ -272,6 +273,7 @@ task('clr-tally', 'Tally votes') ethereumProvider: providerUrl, transactionHash: maciTxHash, blockPerBatch: blocksPerBatch, + signer: coordinator, sleep, }) } @@ -287,6 +289,7 @@ task('clr-tally', 'Tally votes') blocksPerBatch: getNumber(blocksPerBatch), maciTxHash, maciStateFile: outputPath, + signer: coordinator, quiet, }) await genProofs(genProofArgs) @@ -305,6 +308,7 @@ task('clr-tally', 'Tally votes') maciAddress, messageProcessorAddress, tallyAddress, + signer: coordinator, quiet, }) diff --git a/contracts/utils/circuits.ts b/contracts/utils/circuits.ts index bb344325f..0e0103393 100644 --- a/contracts/utils/circuits.ts +++ b/contracts/utils/circuits.ts @@ -38,10 +38,10 @@ export type CircuitInfo = { export const CIRCUITS: { [name: string]: CircuitInfo } = { micro: { - processMessagesZkey: 'processmessages_6-8-2-3_final.zkey', - processWitness: 'processMessages_6-8-2-3_test', - processWasm: 'processmessages_6-8-2-3.wasm', - processDatFile: 'processMessages_6-8-2-3_test.dat', + processMessagesZkey: 'ProcessMessages_6-8-2-3_test.0.zkey', + processWitness: 'ProcessMessages_6-8-2-3_test', + processWasm: 'ProcessMessages_6-8-2-3_test.wasm', + processDatFile: 'ProcessMessages_6-8-2-3_test.dat', tallyVotesZkey: 'tallyvotes_6-2-3_final.zkey', tallyWitness: 'tallyVotes_6-2-3_test', tallyWasm: 'tallyvotes_6-2-3.wasm', diff --git a/contracts/utils/maci.ts b/contracts/utils/maci.ts index feb5a5706..77ec70d63 100644 --- a/contracts/utils/maci.ts +++ b/contracts/utils/maci.ts @@ -10,6 +10,7 @@ import { LEAVES_PER_NODE, genTallyResultCommitment, Keypair, + Tally as TallyData, } from '@clrfund/common' import * as os from 'os' import { @@ -20,7 +21,6 @@ import { GenProofsArgs, genLocalState, verify, - TallyData, } from 'maci-cli' import { getTalyFilePath, isPathExist } from './misc' @@ -183,6 +183,8 @@ type getGenProofArgsInput = { endBlock?: number // MACI state file maciStateFile?: string + // transaction signer + signer: Signer // flag to turn on verbose logging in MACI cli quiet?: boolean } @@ -204,6 +206,7 @@ export function getGenProofArgs(args: getGenProofArgsInput): GenProofsArgs { startBlock, endBlock, maciStateFile, + signer, quiet, } = args @@ -237,6 +240,7 @@ export function getGenProofArgs(args: getGenProofArgsInput): GenProofsArgs { startBlock, endBlock, stateFile: maciStateFile, + signer, quiet, } } else { @@ -267,6 +271,7 @@ export function getGenProofArgs(args: getGenProofArgsInput): GenProofsArgs { startBlock, endBlock, stateFile: maciStateFile, + signer, quiet, } } @@ -289,7 +294,7 @@ export async function mergeMaciSubtrees({ }: { maciAddress: string pollId: bigint - signer?: Signer + signer: Signer numQueueOps?: string quiet?: boolean }) { diff --git a/contracts/utils/types.ts b/contracts/utils/types.ts index f5daec89f..e6032b24c 100644 --- a/contracts/utils/types.ts +++ b/contracts/utils/types.ts @@ -115,12 +115,3 @@ export type RoundFileContent = { projects: Project[] tally: any } - -export type Tally = { - results: { - tally: string[] - } - totalVoiceCreditsPerVoteOption: { - tally: string[] - } -} diff --git a/vue-app/package.json b/vue-app/package.json index 306159761..43b822754 100644 --- a/vue-app/package.json +++ b/vue-app/package.json @@ -34,7 +34,7 @@ "@walletconnect/modal": "^2.6.0", "crypto-js": "^4.1.1", "ethereum-blockies-base64": "^1.0.2", - "ethers": "^6.9.2", + "ethers": "^6.11.1", "floating-vue": "^2.0.0-beta.20", "google-spreadsheet": "^3.3.0", "graphql": "^16.6.0", diff --git a/yarn.lock b/yarn.lock index 1e02c0a98..6f1154d6c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12,6 +12,11 @@ resolved "https://registry.yarnpkg.com/@adraffy/ens-normalize/-/ens-normalize-1.10.0.tgz#d2a39395c587e092d77cbbc80acf956a54f38bf7" integrity sha512-nA9XHtlAkYfJxY7bce8DcN7eKxWWCWkU+1GR9d+U6MbNpfwQp8TI7vqOsBsMcHoT4mBu2kypKoSKnghEzOOq5Q== +"@adraffy/ens-normalize@1.10.1": + version "1.10.1" + resolved "https://registry.yarnpkg.com/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz#63430d04bd8c5e74f8d7d049338f1cd9d4f02069" + integrity sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw== + "@alloc/quick-lru@^5.2.0": version "5.2.0" resolved "https://registry.yarnpkg.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz#7bf68b20c0a350f936915fcae06f58e32007ce30" @@ -626,10 +631,10 @@ resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.6.0.tgz#ec6cd237440700bc23ca23087f513c75508958b0" integrity sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA== -"@commander-js/extra-typings@^11.1.0": - version "11.1.0" - resolved "https://registry.yarnpkg.com/@commander-js/extra-typings/-/extra-typings-11.1.0.tgz#dd19fcb8cc6e33ede237fc1b7af96c70833d8f93" - integrity sha512-GuvZ38d23H+7Tz2C9DhzCepivsOsky03s5NI+KCy7ke1FNUvsJ2oO47scQ9YaGGhgjgNW5OYYNSADmbjcSoIhw== +"@commander-js/extra-typings@^12.0.0": + version "12.0.0" + resolved "https://registry.yarnpkg.com/@commander-js/extra-typings/-/extra-typings-12.0.0.tgz#a3ef893e75dcf08bb1e51fc7e9fe8ed2d9246bf4" + integrity sha512-7zGCwtRKOJ978LCuEZbQ9ZmLdrRkNNASphEO5i9MZb6HfOk7KfsA3f4oXqYDhko4tNrU3GmZTlHqQ/nRlYtYSw== "@cspotcode/source-map-support@^0.8.0": version "0.8.1" @@ -2681,6 +2686,18 @@ ethereum-cryptography "0.1.3" ethers "^5.7.1" +"@nomicfoundation/ethereumjs-block@5.0.4": + version "5.0.4" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-block/-/ethereumjs-block-5.0.4.tgz#ff2acb98a86b9290e35e315a6abfb9aebb9cf39e" + integrity sha512-AcyacJ9eX/uPEvqsPiB+WO1ymE+kyH48qGGiGV+YTojdtas8itUTW5dehDSOXEEItWGbbzEJ4PRqnQZlWaPvDw== + dependencies: + "@nomicfoundation/ethereumjs-common" "4.0.4" + "@nomicfoundation/ethereumjs-rlp" "5.0.4" + "@nomicfoundation/ethereumjs-trie" "6.0.4" + "@nomicfoundation/ethereumjs-tx" "5.0.4" + "@nomicfoundation/ethereumjs-util" "9.0.4" + ethereum-cryptography "0.1.3" + "@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" @@ -2700,6 +2717,22 @@ lru-cache "^5.1.1" memory-level "^1.0.0" +"@nomicfoundation/ethereumjs-blockchain@7.0.4": + version "7.0.4" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-blockchain/-/ethereumjs-blockchain-7.0.4.tgz#b77511b389290b186c8d999e70f4b15c27ef44ea" + integrity sha512-jYsd/kwzbmpnxx86tXsYV8wZ5xGvFL+7/P0c6OlzpClHsbFzeF41KrYA9scON8Rg6bZu3ZTv6JOAgj3t7USUfg== + dependencies: + "@nomicfoundation/ethereumjs-block" "5.0.4" + "@nomicfoundation/ethereumjs-common" "4.0.4" + "@nomicfoundation/ethereumjs-ethash" "3.0.4" + "@nomicfoundation/ethereumjs-rlp" "5.0.4" + "@nomicfoundation/ethereumjs-trie" "6.0.4" + "@nomicfoundation/ethereumjs-tx" "5.0.4" + "@nomicfoundation/ethereumjs-util" "9.0.4" + debug "^4.3.3" + ethereum-cryptography "0.1.3" + lru-cache "^10.0.0" + "@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" @@ -2708,6 +2741,13 @@ "@nomicfoundation/ethereumjs-util" "9.0.2" crc-32 "^1.2.0" +"@nomicfoundation/ethereumjs-common@4.0.4": + version "4.0.4" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-4.0.4.tgz#9901f513af2d4802da87c66d6f255b510bef5acb" + integrity sha512-9Rgb658lcWsjiicr5GzNCjI1llow/7r0k50dLL95OJ+6iZJcVbi15r3Y0xh2cIO+zgX0WIHcbzIu6FeQf9KPrg== + dependencies: + "@nomicfoundation/ethereumjs-util" "9.0.4" + "@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" @@ -2720,6 +2760,17 @@ bigint-crypto-utils "^3.0.23" ethereum-cryptography "0.1.3" +"@nomicfoundation/ethereumjs-ethash@3.0.4": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-ethash/-/ethereumjs-ethash-3.0.4.tgz#06cb2502b3012fb6c11cffd44af08aecf71310da" + integrity sha512-xvIrwIMl9sSaiYKRem68+O7vYdj7Q2XWv5P7JXiIkn83918QzWHvqbswTRsH7+r6X1UEvdsURRnZbvZszEjAaQ== + dependencies: + "@nomicfoundation/ethereumjs-block" "5.0.4" + "@nomicfoundation/ethereumjs-rlp" "5.0.4" + "@nomicfoundation/ethereumjs-util" "9.0.4" + bigint-crypto-utils "^3.2.2" + ethereum-cryptography "0.1.3" + "@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" @@ -2734,11 +2785,30 @@ mcl-wasm "^0.7.1" rustbn.js "~0.2.0" +"@nomicfoundation/ethereumjs-evm@2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-evm/-/ethereumjs-evm-2.0.4.tgz#c9c761767283ac53946185474362230b169f8f63" + integrity sha512-lTyZZi1KpeMHzaO6cSVisR2tjiTTedjo7PcmhI/+GNFo9BmyY6QYzGeSti0sFttmjbEMioHgXxl5yrLNRg6+1w== + dependencies: + "@nomicfoundation/ethereumjs-common" "4.0.4" + "@nomicfoundation/ethereumjs-statemanager" "2.0.4" + "@nomicfoundation/ethereumjs-tx" "5.0.4" + "@nomicfoundation/ethereumjs-util" "9.0.4" + "@types/debug" "^4.1.9" + debug "^4.3.3" + ethereum-cryptography "0.1.3" + rustbn-wasm "^0.2.0" + "@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" integrity sha512-QwmemBc+MMsHJ1P1QvPl8R8p2aPvvVcKBbvHnQOKBpBztEo0omN0eaob6FeZS/e3y9NSe+mfu3nNFBHszqkjTA== +"@nomicfoundation/ethereumjs-rlp@5.0.4": + version "5.0.4" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-5.0.4.tgz#66c95256fc3c909f6fb18f6a586475fc9762fa30" + integrity sha512-8H1S3s8F6QueOc/X92SdrA4RDenpiAEqMg5vJH99kcQaCy/a3Q6fgseo75mgWlbanGJXSlAPtnCeG9jvfTYXlw== + "@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" @@ -2751,6 +2821,20 @@ ethers "^5.7.1" js-sdsl "^4.1.4" +"@nomicfoundation/ethereumjs-statemanager@2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-statemanager/-/ethereumjs-statemanager-2.0.4.tgz#bf14415e1f31b5ea8b98a0c027c547d0555059b6" + integrity sha512-HPDjeFrxw6llEi+BzqXkZ+KkvFnTOPczuHBtk21hRlDiuKuZz32dPzlhpRsDBGV1b5JTmRDUVqCS1lp3Gghw4Q== + dependencies: + "@nomicfoundation/ethereumjs-common" "4.0.4" + "@nomicfoundation/ethereumjs-rlp" "5.0.4" + "@nomicfoundation/ethereumjs-trie" "6.0.4" + "@nomicfoundation/ethereumjs-util" "9.0.4" + debug "^4.3.3" + ethereum-cryptography "0.1.3" + js-sdsl "^4.1.4" + lru-cache "^10.0.0" + "@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" @@ -2762,6 +2846,18 @@ ethereum-cryptography "0.1.3" readable-stream "^3.6.0" +"@nomicfoundation/ethereumjs-trie@6.0.4": + version "6.0.4" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-trie/-/ethereumjs-trie-6.0.4.tgz#688a3f76646c209365ee6d959c3d7330ede5e609" + integrity sha512-3nSwQiFMvr2VFe/aZUyinuohYvtytUqZCUCvIWcPJ/BwJH6oQdZRB42aNFBJ/8nAh2s3OcroWpBLskzW01mFKA== + dependencies: + "@nomicfoundation/ethereumjs-rlp" "5.0.4" + "@nomicfoundation/ethereumjs-util" "9.0.4" + "@types/readable-stream" "^2.3.13" + ethereum-cryptography "0.1.3" + lru-cache "^10.0.0" + readable-stream "^3.6.0" + "@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" @@ -2774,6 +2870,16 @@ "@nomicfoundation/ethereumjs-util" "9.0.2" ethereum-cryptography "0.1.3" +"@nomicfoundation/ethereumjs-tx@5.0.4": + version "5.0.4" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-5.0.4.tgz#b0ceb58c98cc34367d40a30d255d6315b2f456da" + integrity sha512-Xjv8wAKJGMrP1f0n2PeyfFCCojHd7iS3s/Ab7qzF1S64kxZ8Z22LCMynArYsVqiFx6rzYy548HNVEyI+AYN/kw== + dependencies: + "@nomicfoundation/ethereumjs-common" "4.0.4" + "@nomicfoundation/ethereumjs-rlp" "5.0.4" + "@nomicfoundation/ethereumjs-util" "9.0.4" + ethereum-cryptography "0.1.3" + "@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" @@ -2783,6 +2889,24 @@ "@nomicfoundation/ethereumjs-rlp" "5.0.2" ethereum-cryptography "0.1.3" +"@nomicfoundation/ethereumjs-util@9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-9.0.4.tgz#84c5274e82018b154244c877b76bc049a4ed7b38" + integrity sha512-sLOzjnSrlx9Bb9EFNtHzK/FJFsfg2re6bsGqinFinH1gCqVfz9YYlXiMWwDM4C/L4ywuHFCYwfKTVr/QHQcU0Q== + dependencies: + "@nomicfoundation/ethereumjs-rlp" "5.0.4" + ethereum-cryptography "0.1.3" + +"@nomicfoundation/ethereumjs-verkle@0.0.2": + version "0.0.2" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-verkle/-/ethereumjs-verkle-0.0.2.tgz#7686689edec775b2efea5a71548f417c18f7dea4" + integrity sha512-bjnfZElpYGK/XuuVRmLS3yDvr+cDs85D9oonZ0YUa5A3lgFgokWMp76zXrxX2jVQ0BfHaw12y860n1+iOi6yFQ== + dependencies: + "@nomicfoundation/ethereumjs-rlp" "5.0.4" + "@nomicfoundation/ethereumjs-util" "9.0.4" + lru-cache "^10.0.0" + rust-verkle-wasm "^0.0.1" + "@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" @@ -2802,6 +2926,23 @@ mcl-wasm "^0.7.1" rustbn.js "~0.2.0" +"@nomicfoundation/ethereumjs-vm@7.0.4": + version "7.0.4" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-vm/-/ethereumjs-vm-7.0.4.tgz#e5a6eec4877dc62dda93003c6d7afd1fe4b9625b" + integrity sha512-gsA4IhmtWHI4BofKy3kio9W+dqZQs5Ji5mLjLYxHCkat+JQBUt5szjRKra2F9nGDJ2XcI/wWb0YWUFNgln4zRQ== + dependencies: + "@nomicfoundation/ethereumjs-block" "5.0.4" + "@nomicfoundation/ethereumjs-blockchain" "7.0.4" + "@nomicfoundation/ethereumjs-common" "4.0.4" + "@nomicfoundation/ethereumjs-evm" "2.0.4" + "@nomicfoundation/ethereumjs-rlp" "5.0.4" + "@nomicfoundation/ethereumjs-statemanager" "2.0.4" + "@nomicfoundation/ethereumjs-trie" "6.0.4" + "@nomicfoundation/ethereumjs-tx" "5.0.4" + "@nomicfoundation/ethereumjs-util" "9.0.4" + debug "^4.3.3" + ethereum-cryptography "0.1.3" + "@nomicfoundation/hardhat-chai-matchers@^2.0.3": version "2.0.3" resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-chai-matchers/-/hardhat-chai-matchers-2.0.3.tgz#f4c074d39b74bd283c99e2c2bf143e3cef51ae18" @@ -3340,7 +3481,7 @@ resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.6.1.tgz#9ab8f811930d7af3e3d549183a50884f9eb83f36" integrity sha512-UY+FGM/2jjMkzQLn8pxcHGMaVLh9aEitG3zY2CiY7XHdLiz3bZOwa6oDxNqEMv7zZkV+cj5DOdz0cQ1BP5Hjgw== -"@scure/base@~1.1.0": +"@scure/base@^1.1.1", "@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== @@ -3760,6 +3901,13 @@ dependencies: "@types/node" "*" +"@types/debug@^4.1.9": + version "4.1.12" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.12.tgz#a155f21690871953410df4b6b6f53187f0500917" + integrity sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ== + dependencies: + "@types/ms" "*" + "@types/estree@^1.0.0": version "1.0.5" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" @@ -3880,6 +4028,11 @@ resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-10.0.6.tgz#818551d39113081048bdddbef96701b4e8bb9d1b" integrity sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg== +"@types/ms@*": + version "0.7.34" + resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.34.tgz#10964ba0dee6ac4cd462e2795b6bebd407303433" + integrity sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g== + "@types/node@*", "@types/node@>=13.7.0": version "20.11.2" resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.2.tgz#39cea3fe02fbbc2f80ed283e94e1d24f2d3856fb" @@ -4740,13 +4893,6 @@ resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== -"@zk-kit/baby-jubjub@0.1.0": - version "0.1.0" - resolved "https://registry.yarnpkg.com/@zk-kit/baby-jubjub/-/baby-jubjub-0.1.0.tgz#a54515763b64c9eec3de10fafb44177021dac826" - integrity sha512-oeTAT3gtam1qICNqb7aqCqZiFA9FP8zhFzwB51nhCfufIZvGGKDKWofRseZEpD8+fKoLTwU59aBNmAPTnvSdyg== - dependencies: - "@zk-kit/utils" "0.1.0" - "@zk-kit/baby-jubjub@0.1.1", "@zk-kit/baby-jubjub@^0.1.1": version "0.1.1" resolved "https://registry.yarnpkg.com/@zk-kit/baby-jubjub/-/baby-jubjub-0.1.1.tgz#8da922d1c0138ca8668c6ba1134ec04f51b24804" @@ -4769,12 +4915,13 @@ "@zk-kit/baby-jubjub" "0.1.1" "@zk-kit/utils" "0.1.0" -"@zk-kit/poseidon-cipher@^0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@zk-kit/poseidon-cipher/-/poseidon-cipher-0.1.1.tgz#9e0e006ac6a0a08c7ef7ad40a882a2cbc29a700f" - integrity sha512-EPAuUrOCWBqSDPdUihaQ6bvFLulHsLDe4ViSHmnhLf1Ydyd7hQie8NDEdvNewpuv0ub9aLB+r1+Ev8Afv94RtA== +"@zk-kit/poseidon-cipher@^0.2.1": + version "0.2.1" + resolved "https://registry.yarnpkg.com/@zk-kit/poseidon-cipher/-/poseidon-cipher-0.2.1.tgz#74cd80144b6755eff8e92643c4ef3f828f5822c5" + integrity sha512-/k7lUzYPuzFmdjBCvl8yTE4aDCnqxoVC46Txa9Z0i7rb+ilXHp2EEwfig/G7moTukSiOB3hywF3im/QGs3cYHg== dependencies: - "@zk-kit/baby-jubjub" "0.1.0" + "@zk-kit/baby-jubjub" "0.1.1" + "@zk-kit/utils" "0.1.0" "@zk-kit/utils@0.1.0": version "0.1.0" @@ -5042,7 +5189,7 @@ amdefine@>=0.0.4: resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" integrity sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg== -ansi-align@^3.0.1: +ansi-align@^3.0.0, ansi-align@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.1.tgz#0cdf12e111ace773a86e9a1fad1225c43cb19a59" integrity sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w== @@ -6260,7 +6407,7 @@ bfj@^7.0.2: jsonpath "^1.1.1" tryer "^1.0.1" -bigint-crypto-utils@^3.0.23: +bigint-crypto-utils@^3.0.23, bigint-crypto-utils@^3.2.2: version "3.3.0" resolved "https://registry.yarnpkg.com/bigint-crypto-utils/-/bigint-crypto-utils-3.3.0.tgz#72ad00ae91062cf07f2b1def9594006c279c1d77" integrity sha512-jOTSb+drvEDxEq6OuUybOAv/xxoh3cuYRUIPyu8sSHQNKM303UQ2R1DAo45o1AkcIXw6fzbaFI1+xGGdaXs2lg== @@ -6473,6 +6620,20 @@ boxen@7.1.1, boxen@^7.0.0: widest-line "^4.0.1" wrap-ansi "^8.1.0" +boxen@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.1.2.tgz#788cb686fc83c1f486dfa8a40c68fc2b831d2b50" + integrity sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ== + dependencies: + ansi-align "^3.0.0" + camelcase "^6.2.0" + chalk "^4.1.0" + cli-boxes "^2.2.1" + string-width "^4.2.2" + type-fest "^0.20.2" + widest-line "^3.1.0" + wrap-ansi "^7.0.0" + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -7289,6 +7450,11 @@ clean-stack@^4.0.0: dependencies: escape-string-regexp "5.0.0" +cli-boxes@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" + integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== + cli-boxes@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-3.0.0.tgz#71a10c716feeba005e4504f36329ef0b17cf3145" @@ -7602,10 +7768,10 @@ commander@3.0.2: resolved "https://registry.yarnpkg.com/commander/-/commander-3.0.2.tgz#6837c3fb677ad9933d1cfba42dd14d5117d6b39e" integrity sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow== -commander@^11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-11.1.0.tgz#62fdce76006a68e5c1ab3314dc92e800eb83d906" - integrity sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ== +commander@^12.0.0: + version "12.0.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-12.0.0.tgz#b929db6df8546080adfd004ab215ed48cf6f2592" + integrity sha512-MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA== commander@^2.15.0, commander@^2.20.3, commander@^2.8.1: version "2.20.3" @@ -8771,10 +8937,10 @@ dotenv@^16.0.0, dotenv@^16.3.1: resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.3.1.tgz#369034de7d7e5b120972693352a3bf112172cc3e" integrity sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ== -dotenv@^16.4.1: - version "16.4.1" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.1.tgz#1d9931f1d3e5d2959350d1250efab299561f7f11" - integrity sha512-CjA3y+Dr3FyFDOAMnxZEGtnW9KBR2M0JvvUtXNW+dYJL5ROWxP9DUHCwgFqpMk0OXCc0ljhaNTr2w/kutYIcHQ== +dotenv@^16.4.4: + version "16.4.4" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.4.tgz#a26e7bb95ebd36272ebb56edb80b826aecf224c1" + integrity sha512-XvPXc8XAQThSjAbY6cQ/9PcBXmFoWuw1sQ3b8HqUCR6ziGXjkTi//kB9SWa2UwqlgdAIuRqAa/9hVljzPehbYg== dotenv@^8.2.0: version "8.6.0" @@ -9939,7 +10105,20 @@ ethers@^5.0.3, ethers@^5.5.1, ethers@^5.7.1, ethers@^5.7.2: "@ethersproject/web" "5.7.1" "@ethersproject/wordlists" "5.7.0" -ethers@^6.10.0, ethers@^6.9.2: +ethers@^6.11.1: + version "6.11.1" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-6.11.1.tgz#96aae00b627c2e35f9b0a4d65c7ab658259ee6af" + integrity sha512-mxTAE6wqJQAbp5QAe/+o+rXOID7Nw91OZXvgpjDa1r4fAbq2Nu314oEZSbjoRLacuCzs7kUC3clEvkCQowffGg== + dependencies: + "@adraffy/ens-normalize" "1.10.1" + "@noble/curves" "1.2.0" + "@noble/hashes" "1.3.2" + "@types/node" "18.15.13" + aes-js "4.0.0-beta.5" + tslib "2.4.0" + ws "8.5.0" + +ethers@^6.9.2: version "6.10.0" resolved "https://registry.yarnpkg.com/ethers/-/ethers-6.10.0.tgz#20f3c63c60d59a993f8090ad423d8a3854b3b1cd" integrity sha512-nMNwYHzs6V1FR3Y4cdfxSQmNgZsRj1RiTU25JwvnJLmyzw9z3SKxNc2XKDuiXXo/v9ds5Mp9m6HBabgYQQ26tA== @@ -11672,7 +11851,7 @@ hardhat-gas-reporter@^1.0.8: eth-gas-reporter "^0.2.25" sha1 "^1.1.1" -hardhat@^2.19.2, hardhat@^2.19.4: +hardhat@^2.19.4: version "2.19.4" resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.19.4.tgz#5112c30295d8be2e18e55d847373c50483ed1902" integrity sha512-fTQJpqSt3Xo9Mn/WrdblNGAfcANM6XC3tAEi6YogB4s02DmTf93A8QsGb8uR0KR8TFcpcS8lgiW4ugAIYpnbrQ== @@ -11726,6 +11905,62 @@ hardhat@^2.19.2, hardhat@^2.19.4: uuid "^8.3.2" ws "^7.4.6" +hardhat@^2.20.1: + version "2.20.1" + resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.20.1.tgz#3ad8f2b003a96c9ce80a55fec3575580ff2ddcd4" + integrity sha512-q75xDQiQtCZcTMBwjTovrXEU5ECr49baxr4/OBkIu/ULTPzlB20yk1dRWNmD2IFbAeAeXggaWvQAdpiScaHtPw== + dependencies: + "@ethersproject/abi" "^5.1.2" + "@metamask/eth-sig-util" "^4.0.0" + "@nomicfoundation/ethereumjs-block" "5.0.4" + "@nomicfoundation/ethereumjs-blockchain" "7.0.4" + "@nomicfoundation/ethereumjs-common" "4.0.4" + "@nomicfoundation/ethereumjs-evm" "2.0.4" + "@nomicfoundation/ethereumjs-rlp" "5.0.4" + "@nomicfoundation/ethereumjs-statemanager" "2.0.4" + "@nomicfoundation/ethereumjs-trie" "6.0.4" + "@nomicfoundation/ethereumjs-tx" "5.0.4" + "@nomicfoundation/ethereumjs-util" "9.0.4" + "@nomicfoundation/ethereumjs-verkle" "0.0.2" + "@nomicfoundation/ethereumjs-vm" "7.0.4" + "@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" + boxen "^5.1.2" + 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" + has-ansi@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" @@ -14571,6 +14806,11 @@ lru-cache@5.1.1, lru-cache@^5.1.1: dependencies: yallist "^3.0.2" +lru-cache@^10.0.0: + version "10.2.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.0.tgz#0bd445ca57363465900f4d1f9bd8db343a4d95c3" + integrity sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q== + lru-cache@^10.0.2, "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" @@ -14610,78 +14850,78 @@ luxon@^3.1.1, luxon@^3.2.1: resolved "https://registry.yarnpkg.com/luxon/-/luxon-3.4.4.tgz#cf20dc27dc532ba41a169c43fdcc0063601577af" integrity sha512-zobTr7akeGHnv7eBOXcRgMeCP6+uyYsczwmeRCauvpvaAltgNyTbLH/+VaEAPUeWBT+1GuNmz4wC/6jtQzbbVA== -maci-circuits@0.0.0-ci.da1e442: - version "0.0.0-ci.da1e442" - resolved "https://registry.yarnpkg.com/maci-circuits/-/maci-circuits-0.0.0-ci.da1e442.tgz#66eff16762a85fa3b6b2c5396a79c7d7bc4d8fd5" - integrity sha512-28BgQ5GJs6iVLDf0R+2hEB1DZU7czgBOXdrc0dDTonyKECWoDBu2iLUHgJCklltI/2hLMvvbPtGVuox9VuoRsA== +maci-circuits@0.0.0-ci.09b7fe7: + version "0.0.0-ci.09b7fe7" + resolved "https://registry.yarnpkg.com/maci-circuits/-/maci-circuits-0.0.0-ci.09b7fe7.tgz#bd885a214e268f9449ce676cbc852f35590e0932" + integrity sha512-FI1EpOJDe6r6i6LCSx7XZhF9pbQV+92/FgUFgYYhUNEp+D7LhIWIzkPfa/+Hsq9zZ7LskojWQMZkuZakY88YZw== dependencies: "@zk-kit/circuits" "^0.3.0" circomkit "^0.0.22" circomlib "^2.0.5" - maci-core "0.0.0-ci.da1e442" - maci-crypto "0.0.0-ci.da1e442" - maci-domainobjs "0.0.0-ci.da1e442" + maci-core "0.0.0-ci.09b7fe7" + maci-crypto "0.0.0-ci.09b7fe7" + maci-domainobjs "0.0.0-ci.09b7fe7" snarkjs "^0.7.3" -maci-cli@0.0.0-ci.da1e442: - version "0.0.0-ci.da1e442" - resolved "https://registry.yarnpkg.com/maci-cli/-/maci-cli-0.0.0-ci.da1e442.tgz#c48ca81ae6f5843ba90e23cdb52f03ba12e8f67d" - integrity sha512-JDUB8oIiumHPumAtKv7UDaas/W4y19JYq1k0LDR+tzw1FKGkzxPiX+J0X1mGDIjCTlMvwiOoOeaaZCcR8JelAQ== +maci-cli@0.0.0-ci.09b7fe7: + version "0.0.0-ci.09b7fe7" + resolved "https://registry.yarnpkg.com/maci-cli/-/maci-cli-0.0.0-ci.09b7fe7.tgz#8d9a326d4f8945ac9043b28e40026f69e107919e" + integrity sha512-SUGjFeLmG31VMFLLGvAdomERpLGrcSoN22slrX7l4fPEK6K8nG0wLbfa28vTMj+1S0yuH0dBfuoptK5WG0D6vQ== dependencies: - "@commander-js/extra-typings" "^11.1.0" + "@commander-js/extra-typings" "^12.0.0" "@nomicfoundation/hardhat-toolbox" "^4.0.0" - commander "^11.1.0" - dotenv "^16.4.1" - ethers "^6.10.0" - hardhat "^2.19.2" - maci-circuits "0.0.0-ci.da1e442" - maci-contracts "0.0.0-ci.da1e442" - maci-core "0.0.0-ci.da1e442" - maci-crypto "0.0.0-ci.da1e442" - maci-domainobjs "0.0.0-ci.da1e442" + commander "^12.0.0" + dotenv "^16.4.4" + ethers "^6.11.1" + hardhat "^2.20.1" + maci-circuits "0.0.0-ci.09b7fe7" + maci-contracts "0.0.0-ci.09b7fe7" + maci-core "0.0.0-ci.09b7fe7" + maci-crypto "0.0.0-ci.09b7fe7" + maci-domainobjs "0.0.0-ci.09b7fe7" prompt "^1.3.0" -maci-contracts@0.0.0-ci.da1e442: - version "0.0.0-ci.da1e442" - resolved "https://registry.yarnpkg.com/maci-contracts/-/maci-contracts-0.0.0-ci.da1e442.tgz#e4d685dd5f9c19986b0d65d72e5fc5d83d4901ab" - integrity sha512-vYA1kQ8rqwoeRcJ06Ao6R9wRo0qSDW2lQpwmCF+3Hz98aKVoDHYiR5cUuEeDobw2RBLrW5+zny6BeHCdsAzJGg== +maci-contracts@0.0.0-ci.09b7fe7: + version "0.0.0-ci.09b7fe7" + resolved "https://registry.yarnpkg.com/maci-contracts/-/maci-contracts-0.0.0-ci.09b7fe7.tgz#f436872ff791b35ab4a14e42188a7bb273507da5" + integrity sha512-CWoXpdsN5l8SO+KAWOs4CgMXwVggy8lS7wdlXCIMl6XhBmJk5O8n0PMktjn4ZqIXq17CJjkKK5rXRpSGF3AUqg== dependencies: "@nomicfoundation/hardhat-ethers" "^3.0.5" "@nomicfoundation/hardhat-toolbox" "^4.0.0" "@openzeppelin/contracts" "^4.8.0" circomlibjs "^0.1.7" - ethers "^6.10.0" - hardhat "^2.19.4" - maci-circuits "0.0.0-ci.da1e442" - maci-core "0.0.0-ci.da1e442" - maci-crypto "0.0.0-ci.da1e442" - maci-domainobjs "0.0.0-ci.da1e442" + ethers "^6.11.1" + hardhat "^2.20.1" + maci-circuits "0.0.0-ci.09b7fe7" + maci-core "0.0.0-ci.09b7fe7" + maci-crypto "0.0.0-ci.09b7fe7" + maci-domainobjs "0.0.0-ci.09b7fe7" solidity-docgen "^0.6.0-beta.36" -maci-core@0.0.0-ci.da1e442: - version "0.0.0-ci.da1e442" - resolved "https://registry.yarnpkg.com/maci-core/-/maci-core-0.0.0-ci.da1e442.tgz#50f0f17bf2610948f6a6f75f80b4780105653cce" - integrity sha512-6fEFNcQKrH3DZaDNXa86lC25rFZZm4XArPec7dFXY90XH5fjMpyzZWPZ7fnsO1Wp9zBrc60I/dnjY5a9hVanFg== +maci-core@0.0.0-ci.09b7fe7: + version "0.0.0-ci.09b7fe7" + resolved "https://registry.yarnpkg.com/maci-core/-/maci-core-0.0.0-ci.09b7fe7.tgz#87206962b824e437394eba5b8f3b8f86408b759a" + integrity sha512-sf+ywJ9aD20TJTdJCsS3RA6jLvUSstf/hkt0vnKqOI9QpBKhH46fH35ERoIpWm28xUcrTKIQDNmCn3Nkk9aScg== dependencies: - maci-crypto "0.0.0-ci.da1e442" - maci-domainobjs "0.0.0-ci.da1e442" + maci-crypto "0.0.0-ci.09b7fe7" + maci-domainobjs "0.0.0-ci.09b7fe7" -maci-crypto@0.0.0-ci.da1e442: - version "0.0.0-ci.da1e442" - resolved "https://registry.yarnpkg.com/maci-crypto/-/maci-crypto-0.0.0-ci.da1e442.tgz#bbf97bf791e43715e3db69b41e579fbef0849947" - integrity sha512-ph8V51YutYy2qFv8dghoQSuflItqEdaNWt/MVDWFT/Sc1/6qZS8AqyWoydmI+bENrvKxnuGHbsXIjYnbb1SB/A== +maci-crypto@0.0.0-ci.09b7fe7: + version "0.0.0-ci.09b7fe7" + resolved "https://registry.yarnpkg.com/maci-crypto/-/maci-crypto-0.0.0-ci.09b7fe7.tgz#481ef9e2ea4e13438ee512728e4cb9f6b219b884" + integrity sha512-n4Ahs+nhTDDbzKnFVtp8nrUz38nrO2cJY5hzCAM9OfuyiTHx3FgJL8jsOlJMZq4tSSzRqNQ8/0B3DezhQnwsgQ== dependencies: "@zk-kit/baby-jubjub" "^0.1.1" "@zk-kit/eddsa-poseidon" "^0.5.1" - "@zk-kit/poseidon-cipher" "^0.1.1" - ethers "^6.9.2" + "@zk-kit/poseidon-cipher" "^0.2.1" + ethers "^6.11.1" -maci-domainobjs@0.0.0-ci.da1e442: - version "0.0.0-ci.da1e442" - resolved "https://registry.yarnpkg.com/maci-domainobjs/-/maci-domainobjs-0.0.0-ci.da1e442.tgz#8a1c9f8f9400c20dbb9c4bd2065f0f9e0ce50686" - integrity sha512-Ef7QKSnzNJqva0PVdOqFe3+pJOsQFmkWng/P3C4NWzO/kxsIF6LpNrB8sqqcJ7qghpLt6FqVvrQtdForMkGHAw== +maci-domainobjs@0.0.0-ci.09b7fe7: + version "0.0.0-ci.09b7fe7" + resolved "https://registry.yarnpkg.com/maci-domainobjs/-/maci-domainobjs-0.0.0-ci.09b7fe7.tgz#e5cebd775159a7504420fa1aa41ef8fd55e44f06" + integrity sha512-KwclMe0aDLU9mCyuuSe4u34w82cFhXNVxCneXT/vzK+3DiFJX/SW2CoVVMQWheEAi34KLXypqeFq7BYKfu//Sg== dependencies: - maci-crypto "0.0.0-ci.da1e442" + maci-crypto "0.0.0-ci.09b7fe7" macos-release@^3.1.0: version "3.2.0" @@ -18185,6 +18425,18 @@ run-parallel@^1.1.4, run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" +rust-verkle-wasm@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/rust-verkle-wasm/-/rust-verkle-wasm-0.0.1.tgz#fd8396a7060d8ee8ea10da50ab6e862948095a74" + integrity sha512-BN6fiTsxcd2dCECz/cHtGTt9cdLJR925nh7iAuRcj8ymKw7OOaPmCneQZ7JePOJ/ia27TjEL91VdOi88Yf+mcA== + +rustbn-wasm@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/rustbn-wasm/-/rustbn-wasm-0.2.0.tgz#0407521fb55ae69eeb4968d01885d63efd1c4ff9" + integrity sha512-FThvYFNTqrEKGqXuseeg0zR7yROh/6U1617mCHF68OVqrN1tNKRN7Tdwy4WayPVsCmmK+eMxtIZX1qL6JxTkMg== + dependencies: + "@scure/base" "^1.1.1" + rustbn.js@~0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/rustbn.js/-/rustbn.js-0.2.0.tgz#8082cb886e707155fd1cb6f23bd591ab8d55d0ca" @@ -19156,7 +19408,7 @@ string-format@^2.0.0: 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@^1.0.2 || 2 || 3 || 4", string-width@^4.0.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", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== From 38d8a47ff7b468e37ec5a3369bc03dc5c067c3b8 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Wed, 21 Feb 2024 14:20:04 -0500 Subject: [PATCH 244/338] add optimism-sepolia --- .github/workflows/finalize-round.yml | 16 +- contracts/hardhat.config.ts | 42 +- subgraph/config/optimism-sepolia.json | 6 + .../generated/ClrFund/BrightIdUserRegistry.ts | 14 +- subgraph/generated/ClrFund/ClrFund.ts | 38 +- subgraph/generated/ClrFund/FundingRound.ts | 104 ++-- subgraph/generated/ClrFund/MACI.ts | 152 ++--- subgraph/generated/ClrFund/MACIFactory.ts | 76 +-- .../ClrFund/OptimisticRecipientRegistry.ts | 44 +- subgraph/generated/ClrFund/Poll.ts | 190 +++---- subgraph/generated/ClrFund/Token.ts | 50 +- .../OptimisticRecipientRegistry.ts | 44 +- subgraph/generated/schema.ts | 519 +++++++++++++----- subgraph/generated/templates.ts | 8 +- .../BrightIdUserRegistry.ts | 14 +- .../FundingRound/BrightIdUserRegistry.ts | 14 +- .../templates/FundingRound/FundingRound.ts | 104 ++-- .../OptimisticRecipientRegistry.ts | 44 +- .../generated/templates/MACI/FundingRound.ts | 104 ++-- subgraph/generated/templates/MACI/MACI.ts | 152 ++--- .../OptimisticRecipientRegistry.ts | 44 +- .../generated/templates/Poll/FundingRound.ts | 104 ++-- subgraph/generated/templates/Poll/Poll.ts | 190 +++---- subgraph/package.json | 4 +- vue-app/src/utils/chains.ts | 12 + yarn.lock | 349 ++++++------ 26 files changed, 1368 insertions(+), 1070 deletions(-) create mode 100644 subgraph/config/optimism-sepolia.json diff --git a/.github/workflows/finalize-round.yml b/.github/workflows/finalize-round.yml index d31d4dc2f..eaa4e03f5 100644 --- a/.github/workflows/finalize-round.yml +++ b/.github/workflows/finalize-round.yml @@ -3,10 +3,10 @@ name: Finalize a test round on: workflow_dispatch: inputs: - subgraph_name: - description: 'Clrfund subgraph name' + subgraph_id: + description: 'Clrfund subgraph id' required: true - default: 'clrfund/clrfund-testnet' + default: 'QmfPjzSRsm7Lt665KaEEq6Tnr5QHLZt1SE3pxr2nix5pU2' env: NODE_VERSION: 20.x @@ -58,12 +58,10 @@ jobs: yarn && yarn build - name: Run finalize scripts run: | - export SUBGRPAH_URL="https://api.thegraph.com/subgraphs/name/${{ github.event.inputs.subgraph_name }}" - echo $SUBGRAPH_URL - export SUBGRAPH_NAME=${{ github.event.inputs.subgraph_name }} - export CHAIN_QUERY=$(node -e 'console.log(`{"query":"{indexingStatusForCurrentVersion(subgraphName: \\\"${process.env.SUBGRAPH_NAME}\\\") { chains { network }}}"}`)') - export CHAIN=$(curl -s -X POST -d "$CHAIN_QUERY" https://api.thegraph.com/index-node/graphql) - export NETWORK=$(node -e 'console.log(JSON.parse(process.env.CHAIN).data.indexingStatusForCurrentVersion.chains[0].network)') + export SUBGRPAH_ID="${{ github.event.inputs.subgraph_id }}" + export SUBGRAPH_QUERY=$(node -e 'console.log(`{"query":"{indexingStatuses(subgraphs: [\\\"${process.env.SUBGRAPH_ID}\\\"]) { chains { network }}}"}`)') + export SUBGRAPH_STATUS=$(curl -s -X POST -d "$SUBGRAPH_QUERY" https://api.thegraph.com/index-node/graphql) + export NETWORK=$(node -e 'console.log(JSON.parse(process.env.SUBGRAPH_STATUS).data.indexingStatuses[0].chains[0].network)') echo $NETWORK export ROUND=$(curl -X POST -d '{"query":"{clrFunds {id currentRound {id maci maciTxHash}}}"}' $SUBGRPAH_URL) export CLRFUND_ADDRESS=$(node -e 'console.log(JSON.parse(process.env.ROUND).data.clrFunds[0].id)') diff --git a/contracts/hardhat.config.ts b/contracts/hardhat.config.ts index 4b30f5d7b..2a22d5e5b 100644 --- a/contracts/hardhat.config.ts +++ b/contracts/hardhat.config.ts @@ -60,6 +60,14 @@ export default { 'https://sepolia-rollup.arbitrum.io/rpc', accounts, }, + optimism: { + url: process.env.JSONRPC_HTTP_URL || 'https://mainnet.optimism.io', + accounts, + }, + 'optimism-sepolia': { + url: process.env.JSONRPC_HTTP_URL || 'https://sepolia.optimism.io', + accounts, + }, sepolia: { url: process.env.JSONRPC_HTTP_URL || 'http://127.0.0.1:8545', accounts, @@ -78,6 +86,8 @@ export default { arbitrum: process.env.ARBISCAN_API_KEY || 'YOUR_ARBISCAN_API_KEY', 'arbitrum-sepolia': process.env.ARBISCAN_API_KEY || 'YOUR_ARBISCAN_API_KEY', + 'optimism-sepolia': + process.env.OPTIMISMSCAN_API_KEY || 'YOUR_ARBISCAN_API_KEY', }, customChains: [ { @@ -88,6 +98,14 @@ export default { browserURL: 'https://sepolia.arbiscan.io', }, }, + { + network: 'optimism-sepolia', + chainId: 11155420, + urls: { + apiURL: 'https://api-sepolia-optimistic.etherscan.io/api', + browserURL: 'https://sepolia-optimism.etherscan.io', + }, + }, ], }, sourcify: { @@ -129,26 +147,8 @@ export default { }, }, }, - 'contracts/snarkVerifiers/BatchUpdateStateTreeVerifier32.sol': { - version: '0.6.12', - settings: { - optimizer: { - enabled: true, - runs: 10000000, - }, - }, - }, - 'contracts/snarkVerifiers/QuadVoteTallyVerifier32.sol': { - version: '0.6.12', - settings: { - optimizer: { - enabled: true, - runs: 10000000, - }, - }, - }, 'contracts/recipientRegistry/OptimisticRecipientRegistry.sol': { - version: '0.6.12', + version: '0.8.10', settings: { optimizer: { enabled: true, @@ -157,7 +157,7 @@ export default { }, }, 'contracts/userRegistry/SimpleUserRegistry.sol': { - version: '0.6.12', + version: '0.8.10', settings: { optimizer: { enabled: true, @@ -166,7 +166,7 @@ export default { }, }, 'contracts/userRegistry/BrightIdUserRegistry.sol': { - version: '0.6.12', + version: '0.8.10', settings: { optimizer: { enabled: true, diff --git a/subgraph/config/optimism-sepolia.json b/subgraph/config/optimism-sepolia.json new file mode 100644 index 000000000..5d890a701 --- /dev/null +++ b/subgraph/config/optimism-sepolia.json @@ -0,0 +1,6 @@ +{ + "network": "optimism-sepolia", + "address": "0x87790498127fF044f43b9230506833Ca89113757", + "clrFundStartBlock": 8344520, + "recipientRegistryStartBlock": 8344520 +} diff --git a/subgraph/generated/ClrFund/BrightIdUserRegistry.ts b/subgraph/generated/ClrFund/BrightIdUserRegistry.ts index 7d1e77f55..1209bacdb 100644 --- a/subgraph/generated/ClrFund/BrightIdUserRegistry.ts +++ b/subgraph/generated/ClrFund/BrightIdUserRegistry.ts @@ -7,7 +7,7 @@ import { Entity, Bytes, Address, - BigInt + BigInt, } from "@graphprotocol/graph-ts"; export class OwnershipTransferred extends ethereum.Event { @@ -103,7 +103,7 @@ export class BrightIdUserRegistry extends ethereum.SmartContract { let result = super.call( "brightIdSponsor", "brightIdSponsor():(address)", - [] + [], ); return result[0].toAddress(); @@ -113,7 +113,7 @@ export class BrightIdUserRegistry extends ethereum.SmartContract { let result = super.tryCall( "brightIdSponsor", "brightIdSponsor():(address)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -141,7 +141,7 @@ export class BrightIdUserRegistry extends ethereum.SmartContract { let result = super.call( "isVerifiedUser", "isVerifiedUser(address):(bool)", - [ethereum.Value.fromAddress(_user)] + [ethereum.Value.fromAddress(_user)], ); return result[0].toBoolean(); @@ -151,7 +151,7 @@ export class BrightIdUserRegistry extends ethereum.SmartContract { let result = super.tryCall( "isVerifiedUser", "isVerifiedUser(address):(bool)", - [ethereum.Value.fromAddress(_user)] + [ethereum.Value.fromAddress(_user)], ); if (result.reverted) { return new ethereum.CallResult(); @@ -179,7 +179,7 @@ export class BrightIdUserRegistry extends ethereum.SmartContract { let result = super.call( "verifications", "verifications(address):(uint256)", - [ethereum.Value.fromAddress(param0)] + [ethereum.Value.fromAddress(param0)], ); return result[0].toBigInt(); @@ -189,7 +189,7 @@ export class BrightIdUserRegistry extends ethereum.SmartContract { let result = super.tryCall( "verifications", "verifications(address):(uint256)", - [ethereum.Value.fromAddress(param0)] + [ethereum.Value.fromAddress(param0)], ); if (result.reverted) { return new ethereum.CallResult(); diff --git a/subgraph/generated/ClrFund/ClrFund.ts b/subgraph/generated/ClrFund/ClrFund.ts index 6e96a7405..3446a9e7b 100644 --- a/subgraph/generated/ClrFund/ClrFund.ts +++ b/subgraph/generated/ClrFund/ClrFund.ts @@ -7,7 +7,7 @@ import { Entity, Bytes, Address, - BigInt + BigInt, } from "@graphprotocol/graph-ts"; export class CoordinatorChanged extends ethereum.Event { @@ -278,7 +278,7 @@ export class ClrFund extends ethereum.SmartContract { let result = super.call( "MESSAGE_DATA_LENGTH", "MESSAGE_DATA_LENGTH():(uint8)", - [] + [], ); return result[0].toI32(); @@ -288,7 +288,7 @@ export class ClrFund extends ethereum.SmartContract { let result = super.tryCall( "MESSAGE_DATA_LENGTH", "MESSAGE_DATA_LENGTH():(uint8)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -316,22 +316,20 @@ export class ClrFund extends ethereum.SmartContract { let result = super.call( "coordinatorPubKey", "coordinatorPubKey():(uint256,uint256)", - [] + [], ); return new ClrFund__coordinatorPubKeyResult( result[0].toBigInt(), - result[1].toBigInt() + result[1].toBigInt(), ); } - try_coordinatorPubKey(): ethereum.CallResult< - ClrFund__coordinatorPubKeyResult - > { + try_coordinatorPubKey(): ethereum.CallResult { let result = super.tryCall( "coordinatorPubKey", "coordinatorPubKey():(uint256,uint256)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -340,8 +338,8 @@ export class ClrFund extends ethereum.SmartContract { return ethereum.CallResult.fromValue( new ClrFund__coordinatorPubKeyResult( value[0].toBigInt(), - value[1].toBigInt() - ) + value[1].toBigInt(), + ), ); } @@ -349,7 +347,7 @@ export class ClrFund extends ethereum.SmartContract { let result = super.call( "getCurrentRound", "getCurrentRound():(address)", - [] + [], ); return result[0].toAddress(); @@ -359,7 +357,7 @@ export class ClrFund extends ethereum.SmartContract { let result = super.tryCall( "getCurrentRound", "getCurrentRound():(address)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -372,7 +370,7 @@ export class ClrFund extends ethereum.SmartContract { let result = super.call( "getMatchingFunds", "getMatchingFunds(address):(uint256)", - [ethereum.Value.fromAddress(token)] + [ethereum.Value.fromAddress(token)], ); return result[0].toBigInt(); @@ -382,7 +380,7 @@ export class ClrFund extends ethereum.SmartContract { let result = super.tryCall( "getMatchingFunds", "getMatchingFunds(address):(uint256)", - [ethereum.Value.fromAddress(token)] + [ethereum.Value.fromAddress(token)], ); if (result.reverted) { return new ethereum.CallResult(); @@ -395,7 +393,7 @@ export class ClrFund extends ethereum.SmartContract { let result = super.call( "getMaxRecipients", "getMaxRecipients():(uint256)", - [] + [], ); return result[0].toBigInt(); @@ -405,7 +403,7 @@ export class ClrFund extends ethereum.SmartContract { let result = super.tryCall( "getMaxRecipients", "getMaxRecipients():(uint256)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -463,7 +461,7 @@ export class ClrFund extends ethereum.SmartContract { let result = super.call( "recipientRegistry", "recipientRegistry():(address)", - [] + [], ); return result[0].toAddress(); @@ -473,7 +471,7 @@ export class ClrFund extends ethereum.SmartContract { let result = super.tryCall( "recipientRegistry", "recipientRegistry():(address)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -738,7 +736,7 @@ export class SetCoordinatorCall__Inputs { get _coordinatorPubKey(): SetCoordinatorCall_coordinatorPubKeyStruct { return changetype( - this._call.inputValues[1].value.toTuple() + this._call.inputValues[1].value.toTuple(), ); } } diff --git a/subgraph/generated/ClrFund/FundingRound.ts b/subgraph/generated/ClrFund/FundingRound.ts index ac1673f3a..b058ff52f 100644 --- a/subgraph/generated/ClrFund/FundingRound.ts +++ b/subgraph/generated/ClrFund/FundingRound.ts @@ -7,7 +7,7 @@ import { Entity, Bytes, Address, - BigInt + BigInt, } from "@graphprotocol/graph-ts"; export class Contribution extends ethereum.Event { @@ -258,7 +258,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.call( "MESSAGE_DATA_LENGTH", "MESSAGE_DATA_LENGTH():(uint8)", - [] + [], ); return result[0].toI32(); @@ -268,7 +268,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.tryCall( "MESSAGE_DATA_LENGTH", "MESSAGE_DATA_LENGTH():(uint8)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -310,7 +310,7 @@ export class FundingRound extends ethereum.SmartContract { calcAlpha( _budget: BigInt, _totalVotesSquares: BigInt, - _totalSpent: BigInt + _totalSpent: BigInt, ): BigInt { let result = super.call( "calcAlpha", @@ -318,8 +318,8 @@ export class FundingRound extends ethereum.SmartContract { [ ethereum.Value.fromUnsignedBigInt(_budget), ethereum.Value.fromUnsignedBigInt(_totalVotesSquares), - ethereum.Value.fromUnsignedBigInt(_totalSpent) - ] + ethereum.Value.fromUnsignedBigInt(_totalSpent), + ], ); return result[0].toBigInt(); @@ -328,7 +328,7 @@ export class FundingRound extends ethereum.SmartContract { try_calcAlpha( _budget: BigInt, _totalVotesSquares: BigInt, - _totalSpent: BigInt + _totalSpent: BigInt, ): ethereum.CallResult { let result = super.tryCall( "calcAlpha", @@ -336,8 +336,8 @@ export class FundingRound extends ethereum.SmartContract { [ ethereum.Value.fromUnsignedBigInt(_budget), ethereum.Value.fromUnsignedBigInt(_totalVotesSquares), - ethereum.Value.fromUnsignedBigInt(_totalSpent) - ] + ethereum.Value.fromUnsignedBigInt(_totalSpent), + ], ); if (result.reverted) { return new ethereum.CallResult(); @@ -350,7 +350,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.call( "contributorCount", "contributorCount():(uint256)", - [] + [], ); return result[0].toBigInt(); @@ -360,7 +360,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.tryCall( "contributorCount", "contributorCount():(uint256)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -373,22 +373,22 @@ export class FundingRound extends ethereum.SmartContract { let result = super.call( "contributors", "contributors(address):(uint256,bool)", - [ethereum.Value.fromAddress(param0)] + [ethereum.Value.fromAddress(param0)], ); return new FundingRound__contributorsResult( result[0].toBigInt(), - result[1].toBoolean() + result[1].toBoolean(), ); } try_contributors( - param0: Address + param0: Address, ): ethereum.CallResult { let result = super.tryCall( "contributors", "contributors(address):(uint256,bool)", - [ethereum.Value.fromAddress(param0)] + [ethereum.Value.fromAddress(param0)], ); if (result.reverted) { return new ethereum.CallResult(); @@ -397,8 +397,8 @@ export class FundingRound extends ethereum.SmartContract { return ethereum.CallResult.fromValue( new FundingRound__contributorsResult( value[0].toBigInt(), - value[1].toBoolean() - ) + value[1].toBoolean(), + ), ); } @@ -423,8 +423,8 @@ export class FundingRound extends ethereum.SmartContract { "getAllocatedAmount(uint256,uint256):(uint256)", [ ethereum.Value.fromUnsignedBigInt(_tallyResult), - ethereum.Value.fromUnsignedBigInt(_spent) - ] + ethereum.Value.fromUnsignedBigInt(_spent), + ], ); return result[0].toBigInt(); @@ -432,15 +432,15 @@ export class FundingRound extends ethereum.SmartContract { try_getAllocatedAmount( _tallyResult: BigInt, - _spent: BigInt + _spent: BigInt, ): ethereum.CallResult { let result = super.tryCall( "getAllocatedAmount", "getAllocatedAmount(uint256,uint256):(uint256)", [ ethereum.Value.fromUnsignedBigInt(_tallyResult), - ethereum.Value.fromUnsignedBigInt(_spent) - ] + ethereum.Value.fromUnsignedBigInt(_spent), + ], ); if (result.reverted) { return new ethereum.CallResult(); @@ -453,7 +453,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.call( "getVoiceCredits", "getVoiceCredits(address,bytes):(uint256)", - [ethereum.Value.fromAddress(param0), ethereum.Value.fromBytes(_data)] + [ethereum.Value.fromAddress(param0), ethereum.Value.fromBytes(_data)], ); return result[0].toBigInt(); @@ -461,12 +461,12 @@ export class FundingRound extends ethereum.SmartContract { try_getVoiceCredits( param0: Address, - _data: Bytes + _data: Bytes, ): ethereum.CallResult { let result = super.tryCall( "getVoiceCredits", "getVoiceCredits(address,bytes):(uint256)", - [ethereum.Value.fromAddress(param0), ethereum.Value.fromBytes(_data)] + [ethereum.Value.fromAddress(param0), ethereum.Value.fromBytes(_data)], ); if (result.reverted) { return new ethereum.CallResult(); @@ -477,7 +477,7 @@ export class FundingRound extends ethereum.SmartContract { isAddressZero(addressValue: Address): boolean { let result = super.call("isAddressZero", "isAddressZero(address):(bool)", [ - ethereum.Value.fromAddress(addressValue) + ethereum.Value.fromAddress(addressValue), ]); return result[0].toBoolean(); @@ -487,7 +487,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.tryCall( "isAddressZero", "isAddressZero(address):(bool)", - [ethereum.Value.fromAddress(addressValue)] + [ethereum.Value.fromAddress(addressValue)], ); if (result.reverted) { return new ethereum.CallResult(); @@ -545,7 +545,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.call( "matchingPoolSize", "matchingPoolSize():(uint256)", - [] + [], ); return result[0].toBigInt(); @@ -555,7 +555,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.tryCall( "matchingPoolSize", "matchingPoolSize():(uint256)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -628,7 +628,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.call( "recipientRegistry", "recipientRegistry():(address)", - [] + [], ); return result[0].toAddress(); @@ -638,7 +638,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.tryCall( "recipientRegistry", "recipientRegistry():(address)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -651,23 +651,23 @@ export class FundingRound extends ethereum.SmartContract { let result = super.call( "recipients", "recipients(uint256):(bool,bool,uint256)", - [ethereum.Value.fromUnsignedBigInt(param0)] + [ethereum.Value.fromUnsignedBigInt(param0)], ); return new FundingRound__recipientsResult( result[0].toBoolean(), result[1].toBoolean(), - result[2].toBigInt() + result[2].toBigInt(), ); } try_recipients( - param0: BigInt + param0: BigInt, ): ethereum.CallResult { let result = super.tryCall( "recipients", "recipients(uint256):(bool,bool,uint256)", - [ethereum.Value.fromUnsignedBigInt(param0)] + [ethereum.Value.fromUnsignedBigInt(param0)], ); if (result.reverted) { return new ethereum.CallResult(); @@ -677,8 +677,8 @@ export class FundingRound extends ethereum.SmartContract { new FundingRound__recipientsResult( value[0].toBoolean(), value[1].toBoolean(), - value[2].toBigInt() - ) + value[2].toBigInt(), + ), ); } @@ -746,7 +746,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.call( "totalTallyResults", "totalTallyResults():(uint256)", - [] + [], ); return result[0].toBigInt(); @@ -756,7 +756,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.tryCall( "totalTallyResults", "totalTallyResults():(uint256)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -784,7 +784,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.call( "totalVotesSquares", "totalVotesSquares():(uint256)", - [] + [], ); return result[0].toBigInt(); @@ -794,7 +794,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.tryCall( "totalVotesSquares", "totalVotesSquares():(uint256)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -822,7 +822,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.call( "voiceCreditFactor", "voiceCreditFactor():(uint256)", - [] + [], ); return result[0].toBigInt(); @@ -832,7 +832,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.tryCall( "voiceCreditFactor", "voiceCreditFactor():(uint256)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -845,19 +845,19 @@ export class FundingRound extends ethereum.SmartContract { let result = super.call( "withdrawContributions", "withdrawContributions(address[]):(bool[])", - [ethereum.Value.fromAddressArray(_contributors)] + [ethereum.Value.fromAddressArray(_contributors)], ); return result[0].toBooleanArray(); } try_withdrawContributions( - _contributors: Array
+ _contributors: Array
, ): ethereum.CallResult> { let result = super.tryCall( "withdrawContributions", "withdrawContributions(address[]):(bool[])", - [ethereum.Value.fromAddressArray(_contributors)] + [ethereum.Value.fromAddressArray(_contributors)], ); if (result.reverted) { return new ethereum.CallResult(); @@ -1004,7 +1004,7 @@ export class ContributeCall__Inputs { get pubKey(): ContributeCallPubKeyStruct { return changetype( - this._call.inputValues[0].value.toTuple() + this._call.inputValues[0].value.toTuple(), ); } @@ -1212,7 +1212,7 @@ export class SetMaciCall__Inputs { get _pollContracts(): SetMaciCall_pollContractsStruct { return changetype( - this._call.inputValues[1].value.toTuple() + this._call.inputValues[1].value.toTuple(), ); } } @@ -1291,15 +1291,11 @@ export class SubmitMessageBatchCall__Inputs { } get _messages(): Array { - return this._call.inputValues[0].value.toTupleArray< - SubmitMessageBatchCall_messagesStruct - >(); + return this._call.inputValues[0].value.toTupleArray(); } get _encPubKeys(): Array { - return this._call.inputValues[1].value.toTupleArray< - SubmitMessageBatchCall_encPubKeysStruct - >(); + return this._call.inputValues[1].value.toTupleArray(); } } diff --git a/subgraph/generated/ClrFund/MACI.ts b/subgraph/generated/ClrFund/MACI.ts index 6e710e368..b4644bdef 100644 --- a/subgraph/generated/ClrFund/MACI.ts +++ b/subgraph/generated/ClrFund/MACI.ts @@ -7,7 +7,7 @@ import { Entity, Bytes, Address, - BigInt + BigInt, } from "@graphprotocol/graph-ts"; export class DeployPoll extends ethereum.Event { @@ -29,13 +29,13 @@ export class DeployPoll__Params { get _pubKey(): DeployPoll_pubKeyStruct { return changetype( - this._event.parameters[1].value.toTuple() + this._event.parameters[1].value.toTuple(), ); } get pollAddr(): DeployPollPollAddrStruct { return changetype( - this._event.parameters[2].value.toTuple() + this._event.parameters[2].value.toTuple(), ); } } @@ -109,7 +109,7 @@ export class SignUp__Params { get _userPubKey(): SignUp_userPubKeyStruct { return changetype( - this._event.parameters[1].value.toTuple() + this._event.parameters[1].value.toTuple(), ); } @@ -201,7 +201,7 @@ export class MACI__hashMessageAndEncPubKeyInput_encPubKeyStruct extends ethereum export class MACI__hashStateLeafInput_stateLeafStruct extends ethereum.Tuple { get pubKey(): MACI__hashStateLeafInput_stateLeafPubKeyStruct { return changetype( - this[0].toTuple() + this[0].toTuple(), ); } @@ -252,7 +252,7 @@ export class MACI__padAndHashMessageResult { constructor( value0: MACI__padAndHashMessageResultMessageStruct, value1: MACI__padAndHashMessageResultPadKeyStruct, - value2: BigInt + value2: BigInt, ) { this.value0 = value0; this.value1 = value1; @@ -289,7 +289,7 @@ export class MACI extends ethereum.SmartContract { let result = super.call( "MESSAGE_DATA_LENGTH", "MESSAGE_DATA_LENGTH():(uint8)", - [] + [], ); return result[0].toI32(); @@ -299,7 +299,7 @@ export class MACI extends ethereum.SmartContract { let result = super.tryCall( "MESSAGE_DATA_LENGTH", "MESSAGE_DATA_LENGTH():(uint8)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -314,7 +314,7 @@ export class MACI extends ethereum.SmartContract { _coordinatorPubKey: MACI__deployPollInput_coordinatorPubKeyStruct, _verifier: Address, _vkRegistry: Address, - useSubsidy: boolean + useSubsidy: boolean, ): MACI__deployPollResultPollAddrStruct { let result = super.call( "deployPoll", @@ -325,12 +325,12 @@ export class MACI extends ethereum.SmartContract { ethereum.Value.fromTuple(_coordinatorPubKey), ethereum.Value.fromAddress(_verifier), ethereum.Value.fromAddress(_vkRegistry), - ethereum.Value.fromBoolean(useSubsidy) - ] + ethereum.Value.fromBoolean(useSubsidy), + ], ); return changetype( - result[0].toTuple() + result[0].toTuple(), ); } @@ -340,7 +340,7 @@ export class MACI extends ethereum.SmartContract { _coordinatorPubKey: MACI__deployPollInput_coordinatorPubKeyStruct, _verifier: Address, _vkRegistry: Address, - useSubsidy: boolean + useSubsidy: boolean, ): ethereum.CallResult { let result = super.tryCall( "deployPoll", @@ -351,21 +351,21 @@ export class MACI extends ethereum.SmartContract { ethereum.Value.fromTuple(_coordinatorPubKey), ethereum.Value.fromAddress(_verifier), ethereum.Value.fromAddress(_vkRegistry), - ethereum.Value.fromBoolean(useSubsidy) - ] + ethereum.Value.fromBoolean(useSubsidy), + ], ); if (result.reverted) { return new ethereum.CallResult(); } let value = result.value; return ethereum.CallResult.fromValue( - changetype(value[0].toTuple()) + changetype(value[0].toTuple()), ); } getPoll(_pollId: BigInt): Address { let result = super.call("getPoll", "getPoll(uint256):(address)", [ - ethereum.Value.fromUnsignedBigInt(_pollId) + ethereum.Value.fromUnsignedBigInt(_pollId), ]); return result[0].toAddress(); @@ -373,7 +373,7 @@ export class MACI extends ethereum.SmartContract { try_getPoll(_pollId: BigInt): ethereum.CallResult
{ let result = super.tryCall("getPoll", "getPoll(uint256):(address)", [ - ethereum.Value.fromUnsignedBigInt(_pollId) + ethereum.Value.fromUnsignedBigInt(_pollId), ]); if (result.reverted) { return new ethereum.CallResult(); @@ -392,7 +392,7 @@ export class MACI extends ethereum.SmartContract { let result = super.tryCall( "getStateAqRoot", "getStateAqRoot():(uint256)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -403,7 +403,7 @@ export class MACI extends ethereum.SmartContract { hash2(array: Array): BigInt { let result = super.call("hash2", "hash2(uint256[2]):(uint256)", [ - ethereum.Value.fromUnsignedBigIntArray(array) + ethereum.Value.fromUnsignedBigIntArray(array), ]); return result[0].toBigInt(); @@ -411,7 +411,7 @@ export class MACI extends ethereum.SmartContract { try_hash2(array: Array): ethereum.CallResult { let result = super.tryCall("hash2", "hash2(uint256[2]):(uint256)", [ - ethereum.Value.fromUnsignedBigIntArray(array) + ethereum.Value.fromUnsignedBigIntArray(array), ]); if (result.reverted) { return new ethereum.CallResult(); @@ -422,7 +422,7 @@ export class MACI extends ethereum.SmartContract { hash3(array: Array): BigInt { let result = super.call("hash3", "hash3(uint256[3]):(uint256)", [ - ethereum.Value.fromUnsignedBigIntArray(array) + ethereum.Value.fromUnsignedBigIntArray(array), ]); return result[0].toBigInt(); @@ -430,7 +430,7 @@ export class MACI extends ethereum.SmartContract { try_hash3(array: Array): ethereum.CallResult { let result = super.tryCall("hash3", "hash3(uint256[3]):(uint256)", [ - ethereum.Value.fromUnsignedBigIntArray(array) + ethereum.Value.fromUnsignedBigIntArray(array), ]); if (result.reverted) { return new ethereum.CallResult(); @@ -441,7 +441,7 @@ export class MACI extends ethereum.SmartContract { hash4(array: Array): BigInt { let result = super.call("hash4", "hash4(uint256[4]):(uint256)", [ - ethereum.Value.fromUnsignedBigIntArray(array) + ethereum.Value.fromUnsignedBigIntArray(array), ]); return result[0].toBigInt(); @@ -449,7 +449,7 @@ export class MACI extends ethereum.SmartContract { try_hash4(array: Array): ethereum.CallResult { let result = super.tryCall("hash4", "hash4(uint256[4]):(uint256)", [ - ethereum.Value.fromUnsignedBigIntArray(array) + ethereum.Value.fromUnsignedBigIntArray(array), ]); if (result.reverted) { return new ethereum.CallResult(); @@ -460,7 +460,7 @@ export class MACI extends ethereum.SmartContract { hash5(array: Array): BigInt { let result = super.call("hash5", "hash5(uint256[5]):(uint256)", [ - ethereum.Value.fromUnsignedBigIntArray(array) + ethereum.Value.fromUnsignedBigIntArray(array), ]); return result[0].toBigInt(); @@ -468,7 +468,7 @@ export class MACI extends ethereum.SmartContract { try_hash5(array: Array): ethereum.CallResult { let result = super.tryCall("hash5", "hash5(uint256[5]):(uint256)", [ - ethereum.Value.fromUnsignedBigIntArray(array) + ethereum.Value.fromUnsignedBigIntArray(array), ]); if (result.reverted) { return new ethereum.CallResult(); @@ -483,8 +483,8 @@ export class MACI extends ethereum.SmartContract { "hashLeftRight(uint256,uint256):(uint256)", [ ethereum.Value.fromUnsignedBigInt(left), - ethereum.Value.fromUnsignedBigInt(right) - ] + ethereum.Value.fromUnsignedBigInt(right), + ], ); return result[0].toBigInt(); @@ -496,8 +496,8 @@ export class MACI extends ethereum.SmartContract { "hashLeftRight(uint256,uint256):(uint256)", [ ethereum.Value.fromUnsignedBigInt(left), - ethereum.Value.fromUnsignedBigInt(right) - ] + ethereum.Value.fromUnsignedBigInt(right), + ], ); if (result.reverted) { return new ethereum.CallResult(); @@ -508,12 +508,15 @@ export class MACI extends ethereum.SmartContract { hashMessageAndEncPubKey( _message: MACI__hashMessageAndEncPubKeyInput_messageStruct, - _encPubKey: MACI__hashMessageAndEncPubKeyInput_encPubKeyStruct + _encPubKey: MACI__hashMessageAndEncPubKeyInput_encPubKeyStruct, ): BigInt { let result = super.call( "hashMessageAndEncPubKey", "hashMessageAndEncPubKey((uint256,uint256[10]),(uint256,uint256)):(uint256)", - [ethereum.Value.fromTuple(_message), ethereum.Value.fromTuple(_encPubKey)] + [ + ethereum.Value.fromTuple(_message), + ethereum.Value.fromTuple(_encPubKey), + ], ); return result[0].toBigInt(); @@ -521,12 +524,15 @@ export class MACI extends ethereum.SmartContract { try_hashMessageAndEncPubKey( _message: MACI__hashMessageAndEncPubKeyInput_messageStruct, - _encPubKey: MACI__hashMessageAndEncPubKeyInput_encPubKeyStruct + _encPubKey: MACI__hashMessageAndEncPubKeyInput_encPubKeyStruct, ): ethereum.CallResult { let result = super.tryCall( "hashMessageAndEncPubKey", "hashMessageAndEncPubKey((uint256,uint256[10]),(uint256,uint256)):(uint256)", - [ethereum.Value.fromTuple(_message), ethereum.Value.fromTuple(_encPubKey)] + [ + ethereum.Value.fromTuple(_message), + ethereum.Value.fromTuple(_encPubKey), + ], ); if (result.reverted) { return new ethereum.CallResult(); @@ -539,19 +545,19 @@ export class MACI extends ethereum.SmartContract { let result = super.call( "hashStateLeaf", "hashStateLeaf(((uint256,uint256),uint256,uint256)):(uint256)", - [ethereum.Value.fromTuple(_stateLeaf)] + [ethereum.Value.fromTuple(_stateLeaf)], ); return result[0].toBigInt(); } try_hashStateLeaf( - _stateLeaf: MACI__hashStateLeafInput_stateLeafStruct + _stateLeaf: MACI__hashStateLeafInput_stateLeafStruct, ): ethereum.CallResult { let result = super.tryCall( "hashStateLeaf", "hashStateLeaf(((uint256,uint256),uint256,uint256)):(uint256)", - [ethereum.Value.fromTuple(_stateLeaf)] + [ethereum.Value.fromTuple(_stateLeaf)], ); if (result.reverted) { return new ethereum.CallResult(); @@ -564,7 +570,7 @@ export class MACI extends ethereum.SmartContract { let result = super.call( "initialVoiceCreditProxy", "initialVoiceCreditProxy():(address)", - [] + [], ); return result[0].toAddress(); @@ -574,7 +580,7 @@ export class MACI extends ethereum.SmartContract { let result = super.tryCall( "initialVoiceCreditProxy", "initialVoiceCreditProxy():(address)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -585,7 +591,7 @@ export class MACI extends ethereum.SmartContract { mergeStateAq(_pollId: BigInt): BigInt { let result = super.call("mergeStateAq", "mergeStateAq(uint256):(uint256)", [ - ethereum.Value.fromUnsignedBigInt(_pollId) + ethereum.Value.fromUnsignedBigInt(_pollId), ]); return result[0].toBigInt(); @@ -595,7 +601,7 @@ export class MACI extends ethereum.SmartContract { let result = super.tryCall( "mergeStateAq", "mergeStateAq(uint256):(uint256)", - [ethereum.Value.fromUnsignedBigInt(_pollId)] + [ethereum.Value.fromUnsignedBigInt(_pollId)], ); if (result.reverted) { return new ethereum.CallResult(); @@ -608,7 +614,7 @@ export class MACI extends ethereum.SmartContract { let result = super.call( "messageProcessorFactory", "messageProcessorFactory():(address)", - [] + [], ); return result[0].toAddress(); @@ -618,7 +624,7 @@ export class MACI extends ethereum.SmartContract { let result = super.tryCall( "messageProcessorFactory", "messageProcessorFactory():(address)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -661,7 +667,7 @@ export class MACI extends ethereum.SmartContract { let result = super.call( "numStateLeaves", "numStateLeaves(uint256):(uint256)", - [ethereum.Value.fromUnsignedBigInt(param0)] + [ethereum.Value.fromUnsignedBigInt(param0)], ); return result[0].toBigInt(); @@ -671,7 +677,7 @@ export class MACI extends ethereum.SmartContract { let result = super.tryCall( "numStateLeaves", "numStateLeaves(uint256):(uint256)", - [ethereum.Value.fromUnsignedBigInt(param0)] + [ethereum.Value.fromUnsignedBigInt(param0)], ); if (result.reverted) { return new ethereum.CallResult(); @@ -697,41 +703,41 @@ export class MACI extends ethereum.SmartContract { padAndHashMessage( dataToPad: Array, - msgType: BigInt + msgType: BigInt, ): MACI__padAndHashMessageResult { let result = super.call( "padAndHashMessage", "padAndHashMessage(uint256[2],uint256):((uint256,uint256[10]),(uint256,uint256),uint256)", [ ethereum.Value.fromUnsignedBigIntArray(dataToPad), - ethereum.Value.fromUnsignedBigInt(msgType) - ] + ethereum.Value.fromUnsignedBigInt(msgType), + ], ); return changetype( new MACI__padAndHashMessageResult( changetype( - result[0].toTuple() + result[0].toTuple(), ), changetype( - result[1].toTuple() + result[1].toTuple(), ), - result[2].toBigInt() - ) + result[2].toBigInt(), + ), ); } try_padAndHashMessage( dataToPad: Array, - msgType: BigInt + msgType: BigInt, ): ethereum.CallResult { let result = super.tryCall( "padAndHashMessage", "padAndHashMessage(uint256[2],uint256):((uint256,uint256[10]),(uint256,uint256),uint256)", [ ethereum.Value.fromUnsignedBigIntArray(dataToPad), - ethereum.Value.fromUnsignedBigInt(msgType) - ] + ethereum.Value.fromUnsignedBigInt(msgType), + ], ); if (result.reverted) { return new ethereum.CallResult(); @@ -741,14 +747,14 @@ export class MACI extends ethereum.SmartContract { changetype( new MACI__padAndHashMessageResult( changetype( - value[0].toTuple() + value[0].toTuple(), ), changetype( - value[1].toTuple() + value[1].toTuple(), ), - value[2].toBigInt() - ) - ) + value[2].toBigInt(), + ), + ), ); } @@ -769,7 +775,7 @@ export class MACI extends ethereum.SmartContract { polls(param0: BigInt): Address { let result = super.call("polls", "polls(uint256):(address)", [ - ethereum.Value.fromUnsignedBigInt(param0) + ethereum.Value.fromUnsignedBigInt(param0), ]); return result[0].toAddress(); @@ -777,7 +783,7 @@ export class MACI extends ethereum.SmartContract { try_polls(param0: BigInt): ethereum.CallResult
{ let result = super.tryCall("polls", "polls(uint256):(address)", [ - ethereum.Value.fromUnsignedBigInt(param0) + ethereum.Value.fromUnsignedBigInt(param0), ]); if (result.reverted) { return new ethereum.CallResult(); @@ -788,7 +794,7 @@ export class MACI extends ethereum.SmartContract { sha256Hash(array: Array): BigInt { let result = super.call("sha256Hash", "sha256Hash(uint256[]):(uint256)", [ - ethereum.Value.fromUnsignedBigIntArray(array) + ethereum.Value.fromUnsignedBigIntArray(array), ]); return result[0].toBigInt(); @@ -798,7 +804,7 @@ export class MACI extends ethereum.SmartContract { let result = super.tryCall( "sha256Hash", "sha256Hash(uint256[]):(uint256)", - [ethereum.Value.fromUnsignedBigIntArray(array)] + [ethereum.Value.fromUnsignedBigIntArray(array)], ); if (result.reverted) { return new ethereum.CallResult(); @@ -811,7 +817,7 @@ export class MACI extends ethereum.SmartContract { let result = super.call( "signUpGatekeeper", "signUpGatekeeper():(address)", - [] + [], ); return result[0].toAddress(); @@ -821,7 +827,7 @@ export class MACI extends ethereum.SmartContract { let result = super.tryCall( "signUpGatekeeper", "signUpGatekeeper():(address)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -855,7 +861,7 @@ export class MACI extends ethereum.SmartContract { let result = super.tryCall( "stateTreeDepth", "stateTreeDepth():(uint8)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -874,7 +880,7 @@ export class MACI extends ethereum.SmartContract { let result = super.tryCall( "subsidyFactory", "subsidyFactory():(address)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -995,13 +1001,13 @@ export class DeployPollCall__Inputs { get _treeDepths(): DeployPollCall_treeDepthsStruct { return changetype( - this._call.inputValues[1].value.toTuple() + this._call.inputValues[1].value.toTuple(), ); } get _coordinatorPubKey(): DeployPollCall_coordinatorPubKeyStruct { return changetype( - this._call.inputValues[2].value.toTuple() + this._call.inputValues[2].value.toTuple(), ); } @@ -1027,7 +1033,7 @@ export class DeployPollCall__Outputs { get pollAddr(): DeployPollCallPollAddrStruct { return changetype( - this._call.outputValues[0].value.toTuple() + this._call.outputValues[0].value.toTuple(), ); } } @@ -1191,7 +1197,7 @@ export class SignUpCall__Inputs { get _pubKey(): SignUpCall_pubKeyStruct { return changetype( - this._call.inputValues[0].value.toTuple() + this._call.inputValues[0].value.toTuple(), ); } diff --git a/subgraph/generated/ClrFund/MACIFactory.ts b/subgraph/generated/ClrFund/MACIFactory.ts index a99a19eb5..c9f330074 100644 --- a/subgraph/generated/ClrFund/MACIFactory.ts +++ b/subgraph/generated/ClrFund/MACIFactory.ts @@ -7,7 +7,7 @@ import { Entity, Bytes, Address, - BigInt + BigInt, } from "@graphprotocol/graph-ts"; export class MaciDeployed extends ethereum.Event { @@ -88,7 +88,7 @@ export class MACIFactory__deployMaciResult { constructor( value0: Address, - value1: MACIFactory__deployMaciResult_pollContractsStruct + value1: MACIFactory__deployMaciResult_pollContractsStruct, ) { this.value0 = value0; this.value1 = value1; @@ -130,7 +130,7 @@ export class MACIFactory__factoriesResult { value0: Address, value1: Address, value2: Address, - value3: Address + value3: Address, ) { this.value0 = value0; this.value1 = value1; @@ -181,19 +181,19 @@ export class MACIFactory__treeDepthsResult { let map = new TypedMap(); map.set( "value0", - ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(this.value0)) + ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(this.value0)), ); map.set( "value1", - ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(this.value1)) + ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(this.value1)), ); map.set( "value2", - ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(this.value2)) + ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(this.value2)), ); map.set( "value3", - ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(this.value3)) + ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(this.value3)), ); return map; } @@ -224,7 +224,7 @@ export class MACIFactory extends ethereum.SmartContract { let result = super.call( "MESSAGE_DATA_LENGTH", "MESSAGE_DATA_LENGTH():(uint8)", - [] + [], ); return result[0].toI32(); @@ -234,7 +234,7 @@ export class MACIFactory extends ethereum.SmartContract { let result = super.tryCall( "MESSAGE_DATA_LENGTH", "MESSAGE_DATA_LENGTH():(uint8)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -265,7 +265,7 @@ export class MACIFactory extends ethereum.SmartContract { duration: BigInt, coordinator: Address, coordinatorPubKey: MACIFactory__deployMaciInputCoordinatorPubKeyStruct, - maciOwner: Address + maciOwner: Address, ): MACIFactory__deployMaciResult { let result = super.call( "deployMaci", @@ -277,15 +277,15 @@ export class MACIFactory extends ethereum.SmartContract { ethereum.Value.fromUnsignedBigInt(duration), ethereum.Value.fromAddress(coordinator), ethereum.Value.fromTuple(coordinatorPubKey), - ethereum.Value.fromAddress(maciOwner) - ] + ethereum.Value.fromAddress(maciOwner), + ], ); return new MACIFactory__deployMaciResult( result[0].toAddress(), changetype( - result[1].toTuple() - ) + result[1].toTuple(), + ), ); } @@ -296,7 +296,7 @@ export class MACIFactory extends ethereum.SmartContract { duration: BigInt, coordinator: Address, coordinatorPubKey: MACIFactory__deployMaciInputCoordinatorPubKeyStruct, - maciOwner: Address + maciOwner: Address, ): ethereum.CallResult { let result = super.tryCall( "deployMaci", @@ -308,8 +308,8 @@ export class MACIFactory extends ethereum.SmartContract { ethereum.Value.fromUnsignedBigInt(duration), ethereum.Value.fromAddress(coordinator), ethereum.Value.fromTuple(coordinatorPubKey), - ethereum.Value.fromAddress(maciOwner) - ] + ethereum.Value.fromAddress(maciOwner), + ], ); if (result.reverted) { return new ethereum.CallResult(); @@ -319,9 +319,9 @@ export class MACIFactory extends ethereum.SmartContract { new MACIFactory__deployMaciResult( value[0].toAddress(), changetype( - value[1].toTuple() - ) - ) + value[1].toTuple(), + ), + ), ); } @@ -329,14 +329,14 @@ export class MACIFactory extends ethereum.SmartContract { let result = super.call( "factories", "factories():(address,address,address,address)", - [] + [], ); return new MACIFactory__factoriesResult( result[0].toAddress(), result[1].toAddress(), result[2].toAddress(), - result[3].toAddress() + result[3].toAddress(), ); } @@ -344,7 +344,7 @@ export class MACIFactory extends ethereum.SmartContract { let result = super.tryCall( "factories", "factories():(address,address,address,address)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -355,8 +355,8 @@ export class MACIFactory extends ethereum.SmartContract { value[0].toAddress(), value[1].toAddress(), value[2].toAddress(), - value[3].toAddress() - ) + value[3].toAddress(), + ), ); } @@ -364,19 +364,19 @@ export class MACIFactory extends ethereum.SmartContract { let result = super.call( "getMessageBatchSize", "getMessageBatchSize(uint8):(uint256)", - [ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(messageTreeSubDepth))] + [ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(messageTreeSubDepth))], ); return result[0].toBigInt(); } try_getMessageBatchSize( - messageTreeSubDepth: i32 + messageTreeSubDepth: i32, ): ethereum.CallResult { let result = super.tryCall( "getMessageBatchSize", "getMessageBatchSize(uint8):(uint256)", - [ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(messageTreeSubDepth))] + [ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(messageTreeSubDepth))], ); if (result.reverted) { return new ethereum.CallResult(); @@ -410,7 +410,7 @@ export class MACIFactory extends ethereum.SmartContract { let result = super.tryCall( "stateTreeDepth", "stateTreeDepth():(uint8)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -423,14 +423,14 @@ export class MACIFactory extends ethereum.SmartContract { let result = super.call( "treeDepths", "treeDepths():(uint8,uint8,uint8,uint8)", - [] + [], ); return new MACIFactory__treeDepthsResult( result[0].toI32(), result[1].toI32(), result[2].toI32(), - result[3].toI32() + result[3].toI32(), ); } @@ -438,7 +438,7 @@ export class MACIFactory extends ethereum.SmartContract { let result = super.tryCall( "treeDepths", "treeDepths():(uint8,uint8,uint8,uint8)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -449,8 +449,8 @@ export class MACIFactory extends ethereum.SmartContract { value[0].toI32(), value[1].toI32(), value[2].toI32(), - value[3].toI32() - ) + value[3].toI32(), + ), ); } @@ -508,7 +508,7 @@ export class ConstructorCall__Inputs { get _factories(): ConstructorCall_factoriesStruct { return changetype( - this._call.inputValues[1].value.toTuple() + this._call.inputValues[1].value.toTuple(), ); } @@ -582,7 +582,7 @@ export class DeployMaciCall__Inputs { get coordinatorPubKey(): DeployMaciCallCoordinatorPubKeyStruct { return changetype( - this._call.inputValues[5].value.toTuple() + this._call.inputValues[5].value.toTuple(), ); } @@ -604,7 +604,7 @@ export class DeployMaciCall__Outputs { get _pollContracts(): DeployMaciCall_pollContractsStruct { return changetype( - this._call.outputValues[1].value.toTuple() + this._call.outputValues[1].value.toTuple(), ); } } @@ -686,7 +686,7 @@ export class SetMaciParametersCall__Inputs { get _treeDepths(): SetMaciParametersCall_treeDepthsStruct { return changetype( - this._call.inputValues[1].value.toTuple() + this._call.inputValues[1].value.toTuple(), ); } } diff --git a/subgraph/generated/ClrFund/OptimisticRecipientRegistry.ts b/subgraph/generated/ClrFund/OptimisticRecipientRegistry.ts index afb85c261..80ec65e55 100644 --- a/subgraph/generated/ClrFund/OptimisticRecipientRegistry.ts +++ b/subgraph/generated/ClrFund/OptimisticRecipientRegistry.ts @@ -7,7 +7,7 @@ import { Entity, Bytes, Address, - BigInt + BigInt, } from "@graphprotocol/graph-ts"; export class OwnershipTransferred extends ethereum.Event { @@ -104,7 +104,7 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { static bind(address: Address): OptimisticRecipientRegistry { return new OptimisticRecipientRegistry( "OptimisticRecipientRegistry", - address + address, ); } @@ -127,7 +127,7 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { let result = super.call( "challengePeriodDuration", "challengePeriodDuration():(uint256)", - [] + [], ); return result[0].toBigInt(); @@ -137,7 +137,7 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { let result = super.tryCall( "challengePeriodDuration", "challengePeriodDuration():(uint256)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -152,8 +152,8 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { "challengeRequest(bytes32,address):(bool)", [ ethereum.Value.fromFixedBytes(_recipientId), - ethereum.Value.fromAddress(_beneficiary) - ] + ethereum.Value.fromAddress(_beneficiary), + ], ); return result[0].toBoolean(); @@ -161,15 +161,15 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { try_challengeRequest( _recipientId: Bytes, - _beneficiary: Address + _beneficiary: Address, ): ethereum.CallResult { let result = super.tryCall( "challengeRequest", "challengeRequest(bytes32,address):(bool)", [ ethereum.Value.fromFixedBytes(_recipientId), - ethereum.Value.fromAddress(_beneficiary) - ] + ethereum.Value.fromAddress(_beneficiary), + ], ); if (result.reverted) { return new ethereum.CallResult(); @@ -197,7 +197,7 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { let result = super.call( "executeRequest", "executeRequest(bytes32):(bool)", - [ethereum.Value.fromFixedBytes(_recipientId)] + [ethereum.Value.fromFixedBytes(_recipientId)], ); return result[0].toBoolean(); @@ -207,7 +207,7 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { let result = super.tryCall( "executeRequest", "executeRequest(bytes32):(bool)", - [ethereum.Value.fromFixedBytes(_recipientId)] + [ethereum.Value.fromFixedBytes(_recipientId)], ); if (result.reverted) { return new ethereum.CallResult(); @@ -219,7 +219,7 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { getRecipientAddress( _index: BigInt, _startTime: BigInt, - _endTime: BigInt + _endTime: BigInt, ): Address { let result = super.call( "getRecipientAddress", @@ -227,8 +227,8 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { [ ethereum.Value.fromUnsignedBigInt(_index), ethereum.Value.fromUnsignedBigInt(_startTime), - ethereum.Value.fromUnsignedBigInt(_endTime) - ] + ethereum.Value.fromUnsignedBigInt(_endTime), + ], ); return result[0].toAddress(); @@ -237,7 +237,7 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { try_getRecipientAddress( _index: BigInt, _startTime: BigInt, - _endTime: BigInt + _endTime: BigInt, ): ethereum.CallResult
{ let result = super.tryCall( "getRecipientAddress", @@ -245,8 +245,8 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { [ ethereum.Value.fromUnsignedBigInt(_index), ethereum.Value.fromUnsignedBigInt(_startTime), - ethereum.Value.fromUnsignedBigInt(_endTime) - ] + ethereum.Value.fromUnsignedBigInt(_endTime), + ], ); if (result.reverted) { return new ethereum.CallResult(); @@ -259,7 +259,7 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { let result = super.call( "getRecipientCount", "getRecipientCount():(uint256)", - [] + [], ); return result[0].toBigInt(); @@ -269,7 +269,7 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { let result = super.tryCall( "getRecipientCount", "getRecipientCount():(uint256)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -288,7 +288,7 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { let result = super.tryCall( "maxRecipients", "maxRecipients():(uint256)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -316,7 +316,7 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { let result = super.call( "setMaxRecipients", "setMaxRecipients(uint256):(bool)", - [ethereum.Value.fromUnsignedBigInt(_maxRecipients)] + [ethereum.Value.fromUnsignedBigInt(_maxRecipients)], ); return result[0].toBoolean(); @@ -326,7 +326,7 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { let result = super.tryCall( "setMaxRecipients", "setMaxRecipients(uint256):(bool)", - [ethereum.Value.fromUnsignedBigInt(_maxRecipients)] + [ethereum.Value.fromUnsignedBigInt(_maxRecipients)], ); if (result.reverted) { return new ethereum.CallResult(); diff --git a/subgraph/generated/ClrFund/Poll.ts b/subgraph/generated/ClrFund/Poll.ts index d1c676517..0ca5abbe7 100644 --- a/subgraph/generated/ClrFund/Poll.ts +++ b/subgraph/generated/ClrFund/Poll.ts @@ -7,7 +7,7 @@ import { Entity, Bytes, Address, - BigInt + BigInt, } from "@graphprotocol/graph-ts"; export class MergeMaciStateAq extends ethereum.Event { @@ -123,13 +123,13 @@ export class PublishMessage__Params { get _message(): PublishMessage_messageStruct { return changetype( - this._event.parameters[0].value.toTuple() + this._event.parameters[0].value.toTuple(), ); } get _encPubKey(): PublishMessage_encPubKeyStruct { return changetype( - this._event.parameters[1].value.toTuple() + this._event.parameters[1].value.toTuple(), ); } } @@ -169,7 +169,7 @@ export class TopupMessage__Params { get _message(): TopupMessage_messageStruct { return changetype( - this._event.parameters[0].value.toTuple() + this._event.parameters[0].value.toTuple(), ); } } @@ -289,7 +289,7 @@ export class Poll__hashMessageAndEncPubKeyInput_encPubKeyStruct extends ethereum export class Poll__hashStateLeafInput_stateLeafStruct extends ethereum.Tuple { get pubKey(): Poll__hashStateLeafInput_stateLeafPubKeyStruct { return changetype( - this[0].toTuple() + this[0].toTuple(), ); } @@ -390,7 +390,7 @@ export class Poll__padAndHashMessageResult { constructor( value0: Poll__padAndHashMessageResultMessageStruct, value1: Poll__padAndHashMessageResultPadKeyStruct, - value2: BigInt + value2: BigInt, ) { this.value0 = value0; this.value1 = value1; @@ -435,19 +435,19 @@ export class Poll__treeDepthsResult { let map = new TypedMap(); map.set( "value0", - ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(this.value0)) + ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(this.value0)), ); map.set( "value1", - ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(this.value1)) + ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(this.value1)), ); map.set( "value2", - ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(this.value2)) + ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(this.value2)), ); map.set( "value3", - ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(this.value3)) + ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(this.value3)), ); return map; } @@ -478,7 +478,7 @@ export class Poll extends ethereum.SmartContract { let result = super.call( "MESSAGE_DATA_LENGTH", "MESSAGE_DATA_LENGTH():(uint8)", - [] + [], ); return result[0].toI32(); @@ -488,7 +488,7 @@ export class Poll extends ethereum.SmartContract { let result = super.tryCall( "MESSAGE_DATA_LENGTH", "MESSAGE_DATA_LENGTH():(uint8)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -501,12 +501,12 @@ export class Poll extends ethereum.SmartContract { let result = super.call( "coordinatorPubKey", "coordinatorPubKey():(uint256,uint256)", - [] + [], ); return new Poll__coordinatorPubKeyResult( result[0].toBigInt(), - result[1].toBigInt() + result[1].toBigInt(), ); } @@ -514,7 +514,7 @@ export class Poll extends ethereum.SmartContract { let result = super.tryCall( "coordinatorPubKey", "coordinatorPubKey():(uint256,uint256)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -523,8 +523,8 @@ export class Poll extends ethereum.SmartContract { return ethereum.CallResult.fromValue( new Poll__coordinatorPubKeyResult( value[0].toBigInt(), - value[1].toBigInt() - ) + value[1].toBigInt(), + ), ); } @@ -532,7 +532,7 @@ export class Poll extends ethereum.SmartContract { let result = super.call( "coordinatorPubKeyHash", "coordinatorPubKeyHash():(uint256)", - [] + [], ); return result[0].toBigInt(); @@ -542,7 +542,7 @@ export class Poll extends ethereum.SmartContract { let result = super.tryCall( "coordinatorPubKeyHash", "coordinatorPubKeyHash():(uint256)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -555,7 +555,7 @@ export class Poll extends ethereum.SmartContract { let result = super.call( "currentSbCommitment", "currentSbCommitment():(uint256)", - [] + [], ); return result[0].toBigInt(); @@ -565,7 +565,7 @@ export class Poll extends ethereum.SmartContract { let result = super.tryCall( "currentSbCommitment", "currentSbCommitment():(uint256)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -578,13 +578,13 @@ export class Poll extends ethereum.SmartContract { let result = super.call( "extContracts", "extContracts():(address,address,address)", - [] + [], ); return new Poll__extContractsResult( result[0].toAddress(), result[1].toAddress(), - result[2].toAddress() + result[2].toAddress(), ); } @@ -592,7 +592,7 @@ export class Poll extends ethereum.SmartContract { let result = super.tryCall( "extContracts", "extContracts():(address,address,address)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -602,8 +602,8 @@ export class Poll extends ethereum.SmartContract { new Poll__extContractsResult( value[0].toAddress(), value[1].toAddress(), - value[2].toAddress() - ) + value[2].toAddress(), + ), ); } @@ -611,22 +611,20 @@ export class Poll extends ethereum.SmartContract { let result = super.call( "getDeployTimeAndDuration", "getDeployTimeAndDuration():(uint256,uint256)", - [] + [], ); return new Poll__getDeployTimeAndDurationResult( result[0].toBigInt(), - result[1].toBigInt() + result[1].toBigInt(), ); } - try_getDeployTimeAndDuration(): ethereum.CallResult< - Poll__getDeployTimeAndDurationResult - > { + try_getDeployTimeAndDuration(): ethereum.CallResult { let result = super.tryCall( "getDeployTimeAndDuration", "getDeployTimeAndDuration():(uint256,uint256)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -635,14 +633,14 @@ export class Poll extends ethereum.SmartContract { return ethereum.CallResult.fromValue( new Poll__getDeployTimeAndDurationResult( value[0].toBigInt(), - value[1].toBigInt() - ) + value[1].toBigInt(), + ), ); } hash2(array: Array): BigInt { let result = super.call("hash2", "hash2(uint256[2]):(uint256)", [ - ethereum.Value.fromUnsignedBigIntArray(array) + ethereum.Value.fromUnsignedBigIntArray(array), ]); return result[0].toBigInt(); @@ -650,7 +648,7 @@ export class Poll extends ethereum.SmartContract { try_hash2(array: Array): ethereum.CallResult { let result = super.tryCall("hash2", "hash2(uint256[2]):(uint256)", [ - ethereum.Value.fromUnsignedBigIntArray(array) + ethereum.Value.fromUnsignedBigIntArray(array), ]); if (result.reverted) { return new ethereum.CallResult(); @@ -661,7 +659,7 @@ export class Poll extends ethereum.SmartContract { hash3(array: Array): BigInt { let result = super.call("hash3", "hash3(uint256[3]):(uint256)", [ - ethereum.Value.fromUnsignedBigIntArray(array) + ethereum.Value.fromUnsignedBigIntArray(array), ]); return result[0].toBigInt(); @@ -669,7 +667,7 @@ export class Poll extends ethereum.SmartContract { try_hash3(array: Array): ethereum.CallResult { let result = super.tryCall("hash3", "hash3(uint256[3]):(uint256)", [ - ethereum.Value.fromUnsignedBigIntArray(array) + ethereum.Value.fromUnsignedBigIntArray(array), ]); if (result.reverted) { return new ethereum.CallResult(); @@ -680,7 +678,7 @@ export class Poll extends ethereum.SmartContract { hash4(array: Array): BigInt { let result = super.call("hash4", "hash4(uint256[4]):(uint256)", [ - ethereum.Value.fromUnsignedBigIntArray(array) + ethereum.Value.fromUnsignedBigIntArray(array), ]); return result[0].toBigInt(); @@ -688,7 +686,7 @@ export class Poll extends ethereum.SmartContract { try_hash4(array: Array): ethereum.CallResult { let result = super.tryCall("hash4", "hash4(uint256[4]):(uint256)", [ - ethereum.Value.fromUnsignedBigIntArray(array) + ethereum.Value.fromUnsignedBigIntArray(array), ]); if (result.reverted) { return new ethereum.CallResult(); @@ -699,7 +697,7 @@ export class Poll extends ethereum.SmartContract { hash5(array: Array): BigInt { let result = super.call("hash5", "hash5(uint256[5]):(uint256)", [ - ethereum.Value.fromUnsignedBigIntArray(array) + ethereum.Value.fromUnsignedBigIntArray(array), ]); return result[0].toBigInt(); @@ -707,7 +705,7 @@ export class Poll extends ethereum.SmartContract { try_hash5(array: Array): ethereum.CallResult { let result = super.tryCall("hash5", "hash5(uint256[5]):(uint256)", [ - ethereum.Value.fromUnsignedBigIntArray(array) + ethereum.Value.fromUnsignedBigIntArray(array), ]); if (result.reverted) { return new ethereum.CallResult(); @@ -722,8 +720,8 @@ export class Poll extends ethereum.SmartContract { "hashLeftRight(uint256,uint256):(uint256)", [ ethereum.Value.fromUnsignedBigInt(left), - ethereum.Value.fromUnsignedBigInt(right) - ] + ethereum.Value.fromUnsignedBigInt(right), + ], ); return result[0].toBigInt(); @@ -735,8 +733,8 @@ export class Poll extends ethereum.SmartContract { "hashLeftRight(uint256,uint256):(uint256)", [ ethereum.Value.fromUnsignedBigInt(left), - ethereum.Value.fromUnsignedBigInt(right) - ] + ethereum.Value.fromUnsignedBigInt(right), + ], ); if (result.reverted) { return new ethereum.CallResult(); @@ -747,12 +745,15 @@ export class Poll extends ethereum.SmartContract { hashMessageAndEncPubKey( _message: Poll__hashMessageAndEncPubKeyInput_messageStruct, - _encPubKey: Poll__hashMessageAndEncPubKeyInput_encPubKeyStruct + _encPubKey: Poll__hashMessageAndEncPubKeyInput_encPubKeyStruct, ): BigInt { let result = super.call( "hashMessageAndEncPubKey", "hashMessageAndEncPubKey((uint256,uint256[10]),(uint256,uint256)):(uint256)", - [ethereum.Value.fromTuple(_message), ethereum.Value.fromTuple(_encPubKey)] + [ + ethereum.Value.fromTuple(_message), + ethereum.Value.fromTuple(_encPubKey), + ], ); return result[0].toBigInt(); @@ -760,12 +761,15 @@ export class Poll extends ethereum.SmartContract { try_hashMessageAndEncPubKey( _message: Poll__hashMessageAndEncPubKeyInput_messageStruct, - _encPubKey: Poll__hashMessageAndEncPubKeyInput_encPubKeyStruct + _encPubKey: Poll__hashMessageAndEncPubKeyInput_encPubKeyStruct, ): ethereum.CallResult { let result = super.tryCall( "hashMessageAndEncPubKey", "hashMessageAndEncPubKey((uint256,uint256[10]),(uint256,uint256)):(uint256)", - [ethereum.Value.fromTuple(_message), ethereum.Value.fromTuple(_encPubKey)] + [ + ethereum.Value.fromTuple(_message), + ethereum.Value.fromTuple(_encPubKey), + ], ); if (result.reverted) { return new ethereum.CallResult(); @@ -778,19 +782,19 @@ export class Poll extends ethereum.SmartContract { let result = super.call( "hashStateLeaf", "hashStateLeaf(((uint256,uint256),uint256,uint256)):(uint256)", - [ethereum.Value.fromTuple(_stateLeaf)] + [ethereum.Value.fromTuple(_stateLeaf)], ); return result[0].toBigInt(); } try_hashStateLeaf( - _stateLeaf: Poll__hashStateLeafInput_stateLeafStruct + _stateLeaf: Poll__hashStateLeafInput_stateLeafStruct, ): ethereum.CallResult { let result = super.tryCall( "hashStateLeaf", "hashStateLeaf(((uint256,uint256),uint256,uint256)):(uint256)", - [ethereum.Value.fromTuple(_stateLeaf)] + [ethereum.Value.fromTuple(_stateLeaf)], ); if (result.reverted) { return new ethereum.CallResult(); @@ -804,7 +808,7 @@ export class Poll extends ethereum.SmartContract { return new Poll__maxValuesResult( result[0].toBigInt(), - result[1].toBigInt() + result[1].toBigInt(), ); } @@ -812,14 +816,14 @@ export class Poll extends ethereum.SmartContract { let result = super.tryCall( "maxValues", "maxValues():(uint256,uint256)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); } let value = result.value; return ethereum.CallResult.fromValue( - new Poll__maxValuesResult(value[0].toBigInt(), value[1].toBigInt()) + new Poll__maxValuesResult(value[0].toBigInt(), value[1].toBigInt()), ); } @@ -827,7 +831,7 @@ export class Poll extends ethereum.SmartContract { let result = super.call( "mergedStateRoot", "mergedStateRoot():(uint256)", - [] + [], ); return result[0].toBigInt(); @@ -837,7 +841,7 @@ export class Poll extends ethereum.SmartContract { let result = super.tryCall( "mergedStateRoot", "mergedStateRoot():(uint256)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -865,22 +869,20 @@ export class Poll extends ethereum.SmartContract { let result = super.call( "numSignUpsAndMessages", "numSignUpsAndMessages():(uint256,uint256)", - [] + [], ); return new Poll__numSignUpsAndMessagesResult( result[0].toBigInt(), - result[1].toBigInt() + result[1].toBigInt(), ); } - try_numSignUpsAndMessages(): ethereum.CallResult< - Poll__numSignUpsAndMessagesResult - > { + try_numSignUpsAndMessages(): ethereum.CallResult { let result = super.tryCall( "numSignUpsAndMessages", "numSignUpsAndMessages():(uint256,uint256)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -889,8 +891,8 @@ export class Poll extends ethereum.SmartContract { return ethereum.CallResult.fromValue( new Poll__numSignUpsAndMessagesResult( value[0].toBigInt(), - value[1].toBigInt() - ) + value[1].toBigInt(), + ), ); } @@ -926,41 +928,41 @@ export class Poll extends ethereum.SmartContract { padAndHashMessage( dataToPad: Array, - msgType: BigInt + msgType: BigInt, ): Poll__padAndHashMessageResult { let result = super.call( "padAndHashMessage", "padAndHashMessage(uint256[2],uint256):((uint256,uint256[10]),(uint256,uint256),uint256)", [ ethereum.Value.fromUnsignedBigIntArray(dataToPad), - ethereum.Value.fromUnsignedBigInt(msgType) - ] + ethereum.Value.fromUnsignedBigInt(msgType), + ], ); return changetype( new Poll__padAndHashMessageResult( changetype( - result[0].toTuple() + result[0].toTuple(), ), changetype( - result[1].toTuple() + result[1].toTuple(), ), - result[2].toBigInt() - ) + result[2].toBigInt(), + ), ); } try_padAndHashMessage( dataToPad: Array, - msgType: BigInt + msgType: BigInt, ): ethereum.CallResult { let result = super.tryCall( "padAndHashMessage", "padAndHashMessage(uint256[2],uint256):((uint256,uint256[10]),(uint256,uint256),uint256)", [ ethereum.Value.fromUnsignedBigIntArray(dataToPad), - ethereum.Value.fromUnsignedBigInt(msgType) - ] + ethereum.Value.fromUnsignedBigInt(msgType), + ], ); if (result.reverted) { return new ethereum.CallResult(); @@ -970,20 +972,20 @@ export class Poll extends ethereum.SmartContract { changetype( new Poll__padAndHashMessageResult( changetype( - value[0].toTuple() + value[0].toTuple(), ), changetype( - value[1].toTuple() + value[1].toTuple(), ), - value[2].toBigInt() - ) - ) + value[2].toBigInt(), + ), + ), ); } sha256Hash(array: Array): BigInt { let result = super.call("sha256Hash", "sha256Hash(uint256[]):(uint256)", [ - ethereum.Value.fromUnsignedBigIntArray(array) + ethereum.Value.fromUnsignedBigIntArray(array), ]); return result[0].toBigInt(); @@ -993,7 +995,7 @@ export class Poll extends ethereum.SmartContract { let result = super.tryCall( "sha256Hash", "sha256Hash(uint256[]):(uint256)", - [ethereum.Value.fromUnsignedBigIntArray(array)] + [ethereum.Value.fromUnsignedBigIntArray(array)], ); if (result.reverted) { return new ethereum.CallResult(); @@ -1021,14 +1023,14 @@ export class Poll extends ethereum.SmartContract { let result = super.call( "treeDepths", "treeDepths():(uint8,uint8,uint8,uint8)", - [] + [], ); return new Poll__treeDepthsResult( result[0].toI32(), result[1].toI32(), result[2].toI32(), - result[3].toI32() + result[3].toI32(), ); } @@ -1036,7 +1038,7 @@ export class Poll extends ethereum.SmartContract { let result = super.tryCall( "treeDepths", "treeDepths():(uint8,uint8,uint8,uint8)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -1047,8 +1049,8 @@ export class Poll extends ethereum.SmartContract { value[0].toI32(), value[1].toI32(), value[2].toI32(), - value[3].toI32() - ) + value[3].toI32(), + ), ); } } @@ -1076,25 +1078,25 @@ export class ConstructorCall__Inputs { get _maxValues(): ConstructorCall_maxValuesStruct { return changetype( - this._call.inputValues[1].value.toTuple() + this._call.inputValues[1].value.toTuple(), ); } get _treeDepths(): ConstructorCall_treeDepthsStruct { return changetype( - this._call.inputValues[2].value.toTuple() + this._call.inputValues[2].value.toTuple(), ); } get _coordinatorPubKey(): ConstructorCall_coordinatorPubKeyStruct { return changetype( - this._call.inputValues[3].value.toTuple() + this._call.inputValues[3].value.toTuple(), ); } get _extContracts(): ConstructorCall_extContractsStruct { return changetype( - this._call.inputValues[4].value.toTuple() + this._call.inputValues[4].value.toTuple(), ); } } @@ -1324,13 +1326,13 @@ export class PublishMessageCall__Inputs { get _message(): PublishMessageCall_messageStruct { return changetype( - this._call.inputValues[0].value.toTuple() + this._call.inputValues[0].value.toTuple(), ); } get _encPubKey(): PublishMessageCall_encPubKeyStruct { return changetype( - this._call.inputValues[1].value.toTuple() + this._call.inputValues[1].value.toTuple(), ); } } diff --git a/subgraph/generated/ClrFund/Token.ts b/subgraph/generated/ClrFund/Token.ts index 0b38c9c82..72becb876 100644 --- a/subgraph/generated/ClrFund/Token.ts +++ b/subgraph/generated/ClrFund/Token.ts @@ -7,7 +7,7 @@ import { Entity, Bytes, Address, - BigInt + BigInt, } from "@graphprotocol/graph-ts"; export class Approval extends ethereum.Event { @@ -71,7 +71,7 @@ export class Token extends ethereum.SmartContract { let result = super.call( "allowance", "allowance(address,address):(uint256)", - [ethereum.Value.fromAddress(owner), ethereum.Value.fromAddress(spender)] + [ethereum.Value.fromAddress(owner), ethereum.Value.fromAddress(spender)], ); return result[0].toBigInt(); @@ -81,7 +81,7 @@ export class Token extends ethereum.SmartContract { let result = super.tryCall( "allowance", "allowance(address,address):(uint256)", - [ethereum.Value.fromAddress(owner), ethereum.Value.fromAddress(spender)] + [ethereum.Value.fromAddress(owner), ethereum.Value.fromAddress(spender)], ); if (result.reverted) { return new ethereum.CallResult(); @@ -93,7 +93,7 @@ export class Token extends ethereum.SmartContract { approve(spender: Address, amount: BigInt): boolean { let result = super.call("approve", "approve(address,uint256):(bool)", [ ethereum.Value.fromAddress(spender), - ethereum.Value.fromUnsignedBigInt(amount) + ethereum.Value.fromUnsignedBigInt(amount), ]); return result[0].toBoolean(); @@ -102,7 +102,7 @@ export class Token extends ethereum.SmartContract { try_approve(spender: Address, amount: BigInt): ethereum.CallResult { let result = super.tryCall("approve", "approve(address,uint256):(bool)", [ ethereum.Value.fromAddress(spender), - ethereum.Value.fromUnsignedBigInt(amount) + ethereum.Value.fromUnsignedBigInt(amount), ]); if (result.reverted) { return new ethereum.CallResult(); @@ -113,7 +113,7 @@ export class Token extends ethereum.SmartContract { balanceOf(account: Address): BigInt { let result = super.call("balanceOf", "balanceOf(address):(uint256)", [ - ethereum.Value.fromAddress(account) + ethereum.Value.fromAddress(account), ]); return result[0].toBigInt(); @@ -121,7 +121,7 @@ export class Token extends ethereum.SmartContract { try_balanceOf(account: Address): ethereum.CallResult { let result = super.tryCall("balanceOf", "balanceOf(address):(uint256)", [ - ethereum.Value.fromAddress(account) + ethereum.Value.fromAddress(account), ]); if (result.reverted) { return new ethereum.CallResult(); @@ -151,8 +151,8 @@ export class Token extends ethereum.SmartContract { "decreaseAllowance(address,uint256):(bool)", [ ethereum.Value.fromAddress(spender), - ethereum.Value.fromUnsignedBigInt(subtractedValue) - ] + ethereum.Value.fromUnsignedBigInt(subtractedValue), + ], ); return result[0].toBoolean(); @@ -160,15 +160,15 @@ export class Token extends ethereum.SmartContract { try_decreaseAllowance( spender: Address, - subtractedValue: BigInt + subtractedValue: BigInt, ): ethereum.CallResult { let result = super.tryCall( "decreaseAllowance", "decreaseAllowance(address,uint256):(bool)", [ ethereum.Value.fromAddress(spender), - ethereum.Value.fromUnsignedBigInt(subtractedValue) - ] + ethereum.Value.fromUnsignedBigInt(subtractedValue), + ], ); if (result.reverted) { return new ethereum.CallResult(); @@ -183,8 +183,8 @@ export class Token extends ethereum.SmartContract { "increaseAllowance(address,uint256):(bool)", [ ethereum.Value.fromAddress(spender), - ethereum.Value.fromUnsignedBigInt(addedValue) - ] + ethereum.Value.fromUnsignedBigInt(addedValue), + ], ); return result[0].toBoolean(); @@ -192,15 +192,15 @@ export class Token extends ethereum.SmartContract { try_increaseAllowance( spender: Address, - addedValue: BigInt + addedValue: BigInt, ): ethereum.CallResult { let result = super.tryCall( "increaseAllowance", "increaseAllowance(address,uint256):(bool)", [ ethereum.Value.fromAddress(spender), - ethereum.Value.fromUnsignedBigInt(addedValue) - ] + ethereum.Value.fromUnsignedBigInt(addedValue), + ], ); if (result.reverted) { return new ethereum.CallResult(); @@ -257,7 +257,7 @@ export class Token extends ethereum.SmartContract { transfer(recipient: Address, amount: BigInt): boolean { let result = super.call("transfer", "transfer(address,uint256):(bool)", [ ethereum.Value.fromAddress(recipient), - ethereum.Value.fromUnsignedBigInt(amount) + ethereum.Value.fromUnsignedBigInt(amount), ]); return result[0].toBoolean(); @@ -265,11 +265,11 @@ export class Token extends ethereum.SmartContract { try_transfer( recipient: Address, - amount: BigInt + amount: BigInt, ): ethereum.CallResult { let result = super.tryCall("transfer", "transfer(address,uint256):(bool)", [ ethereum.Value.fromAddress(recipient), - ethereum.Value.fromUnsignedBigInt(amount) + ethereum.Value.fromUnsignedBigInt(amount), ]); if (result.reverted) { return new ethereum.CallResult(); @@ -285,8 +285,8 @@ export class Token extends ethereum.SmartContract { [ ethereum.Value.fromAddress(sender), ethereum.Value.fromAddress(recipient), - ethereum.Value.fromUnsignedBigInt(amount) - ] + ethereum.Value.fromUnsignedBigInt(amount), + ], ); return result[0].toBoolean(); @@ -295,7 +295,7 @@ export class Token extends ethereum.SmartContract { try_transferFrom( sender: Address, recipient: Address, - amount: BigInt + amount: BigInt, ): ethereum.CallResult { let result = super.tryCall( "transferFrom", @@ -303,8 +303,8 @@ export class Token extends ethereum.SmartContract { [ ethereum.Value.fromAddress(sender), ethereum.Value.fromAddress(recipient), - ethereum.Value.fromUnsignedBigInt(amount) - ] + ethereum.Value.fromUnsignedBigInt(amount), + ], ); if (result.reverted) { return new ethereum.CallResult(); diff --git a/subgraph/generated/OptimisticRecipientRegistry/OptimisticRecipientRegistry.ts b/subgraph/generated/OptimisticRecipientRegistry/OptimisticRecipientRegistry.ts index afb85c261..80ec65e55 100644 --- a/subgraph/generated/OptimisticRecipientRegistry/OptimisticRecipientRegistry.ts +++ b/subgraph/generated/OptimisticRecipientRegistry/OptimisticRecipientRegistry.ts @@ -7,7 +7,7 @@ import { Entity, Bytes, Address, - BigInt + BigInt, } from "@graphprotocol/graph-ts"; export class OwnershipTransferred extends ethereum.Event { @@ -104,7 +104,7 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { static bind(address: Address): OptimisticRecipientRegistry { return new OptimisticRecipientRegistry( "OptimisticRecipientRegistry", - address + address, ); } @@ -127,7 +127,7 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { let result = super.call( "challengePeriodDuration", "challengePeriodDuration():(uint256)", - [] + [], ); return result[0].toBigInt(); @@ -137,7 +137,7 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { let result = super.tryCall( "challengePeriodDuration", "challengePeriodDuration():(uint256)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -152,8 +152,8 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { "challengeRequest(bytes32,address):(bool)", [ ethereum.Value.fromFixedBytes(_recipientId), - ethereum.Value.fromAddress(_beneficiary) - ] + ethereum.Value.fromAddress(_beneficiary), + ], ); return result[0].toBoolean(); @@ -161,15 +161,15 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { try_challengeRequest( _recipientId: Bytes, - _beneficiary: Address + _beneficiary: Address, ): ethereum.CallResult { let result = super.tryCall( "challengeRequest", "challengeRequest(bytes32,address):(bool)", [ ethereum.Value.fromFixedBytes(_recipientId), - ethereum.Value.fromAddress(_beneficiary) - ] + ethereum.Value.fromAddress(_beneficiary), + ], ); if (result.reverted) { return new ethereum.CallResult(); @@ -197,7 +197,7 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { let result = super.call( "executeRequest", "executeRequest(bytes32):(bool)", - [ethereum.Value.fromFixedBytes(_recipientId)] + [ethereum.Value.fromFixedBytes(_recipientId)], ); return result[0].toBoolean(); @@ -207,7 +207,7 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { let result = super.tryCall( "executeRequest", "executeRequest(bytes32):(bool)", - [ethereum.Value.fromFixedBytes(_recipientId)] + [ethereum.Value.fromFixedBytes(_recipientId)], ); if (result.reverted) { return new ethereum.CallResult(); @@ -219,7 +219,7 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { getRecipientAddress( _index: BigInt, _startTime: BigInt, - _endTime: BigInt + _endTime: BigInt, ): Address { let result = super.call( "getRecipientAddress", @@ -227,8 +227,8 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { [ ethereum.Value.fromUnsignedBigInt(_index), ethereum.Value.fromUnsignedBigInt(_startTime), - ethereum.Value.fromUnsignedBigInt(_endTime) - ] + ethereum.Value.fromUnsignedBigInt(_endTime), + ], ); return result[0].toAddress(); @@ -237,7 +237,7 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { try_getRecipientAddress( _index: BigInt, _startTime: BigInt, - _endTime: BigInt + _endTime: BigInt, ): ethereum.CallResult
{ let result = super.tryCall( "getRecipientAddress", @@ -245,8 +245,8 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { [ ethereum.Value.fromUnsignedBigInt(_index), ethereum.Value.fromUnsignedBigInt(_startTime), - ethereum.Value.fromUnsignedBigInt(_endTime) - ] + ethereum.Value.fromUnsignedBigInt(_endTime), + ], ); if (result.reverted) { return new ethereum.CallResult(); @@ -259,7 +259,7 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { let result = super.call( "getRecipientCount", "getRecipientCount():(uint256)", - [] + [], ); return result[0].toBigInt(); @@ -269,7 +269,7 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { let result = super.tryCall( "getRecipientCount", "getRecipientCount():(uint256)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -288,7 +288,7 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { let result = super.tryCall( "maxRecipients", "maxRecipients():(uint256)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -316,7 +316,7 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { let result = super.call( "setMaxRecipients", "setMaxRecipients(uint256):(bool)", - [ethereum.Value.fromUnsignedBigInt(_maxRecipients)] + [ethereum.Value.fromUnsignedBigInt(_maxRecipients)], ); return result[0].toBoolean(); @@ -326,7 +326,7 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { let result = super.tryCall( "setMaxRecipients", "setMaxRecipients(uint256):(bool)", - [ethereum.Value.fromUnsignedBigInt(_maxRecipients)] + [ethereum.Value.fromUnsignedBigInt(_maxRecipients)], ); if (result.reverted) { return new ethereum.CallResult(); diff --git a/subgraph/generated/schema.ts b/subgraph/generated/schema.ts index d27af2151..448578c66 100644 --- a/subgraph/generated/schema.ts +++ b/subgraph/generated/schema.ts @@ -8,7 +8,7 @@ import { store, Bytes, BigInt, - BigDecimal + BigDecimal, } from "@graphprotocol/graph-ts"; export class ClrFund extends Entity { @@ -23,19 +23,27 @@ export class ClrFund extends Entity { if (id) { assert( id.kind == ValueKind.STRING, - `Entities of type ClrFund must have an ID of type String but the id '${id.displayData()}' is of type ${id.displayKind()}` + `Entities of type ClrFund must have an ID of type String but the id '${id.displayData()}' is of type ${id.displayKind()}`, ); store.set("ClrFund", id.toString(), this); } } + static loadInBlock(id: string): ClrFund | null { + return changetype(store.get_in_block("ClrFund", id)); + } + static load(id: string): ClrFund | null { return changetype(store.get("ClrFund", id)); } get id(): string { let value = this.get("id"); - return value!.toString(); + if (!value || value.kind == ValueKind.NULL) { + throw new Error("Cannot return null for a required field."); + } else { + return value.toString(); + } } set id(value: string) { @@ -280,13 +288,12 @@ export class ClrFund extends Entity { } } - get fundingRounds(): Array | null { - let value = this.get("fundingRounds"); - if (!value || value.kind == ValueKind.NULL) { - return null; - } else { - return value.toStringArray(); - } + get fundingRounds(): FundingRoundLoader { + return new FundingRoundLoader( + "ClrFund", + this.get("id")!.toString(), + "fundingRounds", + ); } get createdAt(): string | null { @@ -336,19 +343,27 @@ export class Message extends Entity { if (id) { assert( id.kind == ValueKind.STRING, - `Entities of type Message must have an ID of type String but the id '${id.displayData()}' is of type ${id.displayKind()}` + `Entities of type Message must have an ID of type String but the id '${id.displayData()}' is of type ${id.displayKind()}`, ); store.set("Message", id.toString(), this); } } + static loadInBlock(id: string): Message | null { + return changetype(store.get_in_block("Message", id)); + } + static load(id: string): Message | null { return changetype(store.get("Message", id)); } get id(): string { let value = this.get("id"); - return value!.toString(); + if (!value || value.kind == ValueKind.NULL) { + throw new Error("Cannot return null for a required field."); + } else { + return value.toString(); + } } set id(value: string) { @@ -374,7 +389,11 @@ export class Message extends Entity { get msgType(): BigInt { let value = this.get("msgType"); - return value!.toBigInt(); + if (!value || value.kind == ValueKind.NULL) { + throw new Error("Cannot return null for a required field."); + } else { + return value.toBigInt(); + } } set msgType(value: BigInt) { @@ -451,7 +470,11 @@ export class Message extends Entity { get blockNumber(): BigInt { let value = this.get("blockNumber"); - return value!.toBigInt(); + if (!value || value.kind == ValueKind.NULL) { + throw new Error("Cannot return null for a required field."); + } else { + return value.toBigInt(); + } } set blockNumber(value: BigInt) { @@ -460,7 +483,11 @@ export class Message extends Entity { get transactionIndex(): BigInt { let value = this.get("transactionIndex"); - return value!.toBigInt(); + if (!value || value.kind == ValueKind.NULL) { + throw new Error("Cannot return null for a required field."); + } else { + return value.toBigInt(); + } } set transactionIndex(value: BigInt) { @@ -480,19 +507,27 @@ export class PublicKey extends Entity { if (id) { assert( id.kind == ValueKind.STRING, - `Entities of type PublicKey must have an ID of type String but the id '${id.displayData()}' is of type ${id.displayKind()}` + `Entities of type PublicKey must have an ID of type String but the id '${id.displayData()}' is of type ${id.displayKind()}`, ); store.set("PublicKey", id.toString(), this); } } + static loadInBlock(id: string): PublicKey | null { + return changetype(store.get_in_block("PublicKey", id)); + } + static load(id: string): PublicKey | null { return changetype(store.get("PublicKey", id)); } get id(): string { let value = this.get("id"); - return value!.toString(); + if (!value || value.kind == ValueKind.NULL) { + throw new Error("Cannot return null for a required field."); + } else { + return value.toString(); + } } set id(value: string) { @@ -516,18 +551,21 @@ export class PublicKey extends Entity { } } - get messages(): Array | null { - let value = this.get("messages"); - if (!value || value.kind == ValueKind.NULL) { - return null; - } else { - return value.toStringArray(); - } + get messages(): MessageLoader { + return new MessageLoader( + "PublicKey", + this.get("id")!.toString(), + "messages", + ); } get x(): BigInt { let value = this.get("x"); - return value!.toBigInt(); + if (!value || value.kind == ValueKind.NULL) { + throw new Error("Cannot return null for a required field."); + } else { + return value.toBigInt(); + } } set x(value: BigInt) { @@ -536,7 +574,11 @@ export class PublicKey extends Entity { get y(): BigInt { let value = this.get("y"); - return value!.toBigInt(); + if (!value || value.kind == ValueKind.NULL) { + throw new Error("Cannot return null for a required field."); + } else { + return value.toBigInt(); + } } set y(value: BigInt) { @@ -590,19 +632,29 @@ export class FundingRound extends Entity { if (id) { assert( id.kind == ValueKind.STRING, - `Entities of type FundingRound must have an ID of type String but the id '${id.displayData()}' is of type ${id.displayKind()}` + `Entities of type FundingRound must have an ID of type String but the id '${id.displayData()}' is of type ${id.displayKind()}`, ); store.set("FundingRound", id.toString(), this); } } + static loadInBlock(id: string): FundingRound | null { + return changetype( + store.get_in_block("FundingRound", id), + ); + } + static load(id: string): FundingRound | null { return changetype(store.get("FundingRound", id)); } get id(): string { let value = this.get("id"); - return value!.toString(); + if (!value || value.kind == ValueKind.NULL) { + throw new Error("Cannot return null for a required field."); + } else { + return value.toString(); + } } set id(value: string) { @@ -694,13 +746,12 @@ export class FundingRound extends Entity { } } - get messages(): Array | null { - let value = this.get("messages"); - if (!value || value.kind == ValueKind.NULL) { - return null; - } else { - return value.toStringArray(); - } + get messages(): MessageLoader { + return new MessageLoader( + "FundingRound", + this.get("id")!.toString(), + "messages", + ); } get recipientRegistry(): string | null { @@ -858,7 +909,11 @@ export class FundingRound extends Entity { get stateTreeDepth(): i32 { let value = this.get("stateTreeDepth"); - return value!.toI32(); + if (!value || value.kind == ValueKind.NULL) { + return 0; + } else { + return value.toI32(); + } } set stateTreeDepth(value: i32) { @@ -867,7 +922,11 @@ export class FundingRound extends Entity { get messageTreeDepth(): i32 { let value = this.get("messageTreeDepth"); - return value!.toI32(); + if (!value || value.kind == ValueKind.NULL) { + return 0; + } else { + return value.toI32(); + } } set messageTreeDepth(value: i32) { @@ -876,7 +935,11 @@ export class FundingRound extends Entity { get voteOptionTreeDepth(): i32 { let value = this.get("voteOptionTreeDepth"); - return value!.toI32(); + if (!value || value.kind == ValueKind.NULL) { + return 0; + } else { + return value.toI32(); + } } set voteOptionTreeDepth(value: i32) { @@ -953,7 +1016,11 @@ export class FundingRound extends Entity { get contributorCount(): BigInt { let value = this.get("contributorCount"); - return value!.toBigInt(); + if (!value || value.kind == ValueKind.NULL) { + throw new Error("Cannot return null for a required field."); + } else { + return value.toBigInt(); + } } set contributorCount(value: BigInt) { @@ -962,7 +1029,11 @@ export class FundingRound extends Entity { get recipientCount(): BigInt { let value = this.get("recipientCount"); - return value!.toBigInt(); + if (!value || value.kind == ValueKind.NULL) { + throw new Error("Cannot return null for a required field."); + } else { + return value.toBigInt(); + } } set recipientCount(value: BigInt) { @@ -1022,7 +1093,11 @@ export class FundingRound extends Entity { get isFinalized(): boolean { let value = this.get("isFinalized"); - return value!.toBoolean(); + if (!value || value.kind == ValueKind.NULL) { + return false; + } else { + return value.toBoolean(); + } } set isFinalized(value: boolean) { @@ -1031,7 +1106,11 @@ export class FundingRound extends Entity { get isCancelled(): boolean { let value = this.get("isCancelled"); - return value!.toBoolean(); + if (!value || value.kind == ValueKind.NULL) { + return false; + } else { + return value.toBoolean(); + } } set isCancelled(value: boolean) { @@ -1055,40 +1134,32 @@ export class FundingRound extends Entity { } } - get recipients(): Array | null { - let value = this.get("recipients"); - if (!value || value.kind == ValueKind.NULL) { - return null; - } else { - return value.toStringArray(); - } + get recipients(): RecipientLoader { + return new RecipientLoader( + "FundingRound", + this.get("id")!.toString(), + "recipients", + ); } - get contributors(): Array | null { - let value = this.get("contributors"); - if (!value || value.kind == ValueKind.NULL) { - return null; - } else { - return value.toStringArray(); - } + get contributors(): ContributorLoader { + return new ContributorLoader( + "FundingRound", + this.get("id")!.toString(), + "contributors", + ); } - get contributions(): Array | null { - let value = this.get("contributions"); - if (!value || value.kind == ValueKind.NULL) { - return null; - } else { - return value.toStringArray(); - } + get contributions(): ContributionLoader { + return new ContributionLoader( + "FundingRound", + this.get("id")!.toString(), + "contributions", + ); } - get votes(): Array | null { - let value = this.get("votes"); - if (!value || value.kind == ValueKind.NULL) { - return null; - } else { - return value.toStringArray(); - } + get votes(): VoteLoader { + return new VoteLoader("FundingRound", this.get("id")!.toString(), "votes"); } get createdAt(): string | null { @@ -1138,21 +1209,31 @@ export class RecipientRegistry extends Entity { if (id) { assert( id.kind == ValueKind.STRING, - `Entities of type RecipientRegistry must have an ID of type String but the id '${id.displayData()}' is of type ${id.displayKind()}` + `Entities of type RecipientRegistry must have an ID of type String but the id '${id.displayData()}' is of type ${id.displayKind()}`, ); store.set("RecipientRegistry", id.toString(), this); } } + static loadInBlock(id: string): RecipientRegistry | null { + return changetype( + store.get_in_block("RecipientRegistry", id), + ); + } + static load(id: string): RecipientRegistry | null { return changetype( - store.get("RecipientRegistry", id) + store.get("RecipientRegistry", id), ); } get id(): string { let value = this.get("id"); - return value!.toString(); + if (!value || value.kind == ValueKind.NULL) { + throw new Error("Cannot return null for a required field."); + } else { + return value.toString(); + } } set id(value: string) { @@ -1261,13 +1342,12 @@ export class RecipientRegistry extends Entity { } } - get recipients(): Array | null { - let value = this.get("recipients"); - if (!value || value.kind == ValueKind.NULL) { - return null; - } else { - return value.toStringArray(); - } + get recipients(): RecipientLoader { + return new RecipientLoader( + "RecipientRegistry", + this.get("id")!.toString(), + "recipients", + ); } get createdAt(): string | null { @@ -1317,19 +1397,27 @@ export class Recipient extends Entity { if (id) { assert( id.kind == ValueKind.STRING, - `Entities of type Recipient must have an ID of type String but the id '${id.displayData()}' is of type ${id.displayKind()}` + `Entities of type Recipient must have an ID of type String but the id '${id.displayData()}' is of type ${id.displayKind()}`, ); store.set("Recipient", id.toString(), this); } } + static loadInBlock(id: string): Recipient | null { + return changetype(store.get_in_block("Recipient", id)); + } + static load(id: string): Recipient | null { return changetype(store.get("Recipient", id)); } get id(): string { let value = this.get("id"); - return value!.toString(); + if (!value || value.kind == ValueKind.NULL) { + throw new Error("Cannot return null for a required field."); + } else { + return value.toString(); + } } set id(value: string) { @@ -1474,7 +1562,11 @@ export class Recipient extends Entity { get rejected(): boolean { let value = this.get("rejected"); - return value!.toBoolean(); + if (!value || value.kind == ValueKind.NULL) { + return false; + } else { + return value.toBoolean(); + } } set rejected(value: boolean) { @@ -1483,7 +1575,11 @@ export class Recipient extends Entity { get verified(): boolean { let value = this.get("verified"); - return value!.toBoolean(); + if (!value || value.kind == ValueKind.NULL) { + return false; + } else { + return value.toBoolean(); + } } set verified(value: boolean) { @@ -1605,21 +1701,31 @@ export class ContributorRegistry extends Entity { if (id) { assert( id.kind == ValueKind.STRING, - `Entities of type ContributorRegistry must have an ID of type String but the id '${id.displayData()}' is of type ${id.displayKind()}` + `Entities of type ContributorRegistry must have an ID of type String but the id '${id.displayData()}' is of type ${id.displayKind()}`, ); store.set("ContributorRegistry", id.toString(), this); } } + static loadInBlock(id: string): ContributorRegistry | null { + return changetype( + store.get_in_block("ContributorRegistry", id), + ); + } + static load(id: string): ContributorRegistry | null { return changetype( - store.get("ContributorRegistry", id) + store.get("ContributorRegistry", id), ); } get id(): string { let value = this.get("id"); - return value!.toString(); + if (!value || value.kind == ValueKind.NULL) { + throw new Error("Cannot return null for a required field."); + } else { + return value.toString(); + } } set id(value: string) { @@ -1628,7 +1734,11 @@ export class ContributorRegistry extends Entity { get clrFund(): string { let value = this.get("clrFund"); - return value!.toString(); + if (!value || value.kind == ValueKind.NULL) { + throw new Error("Cannot return null for a required field."); + } else { + return value.toString(); + } } set clrFund(value: string) { @@ -1669,13 +1779,12 @@ export class ContributorRegistry extends Entity { } } - get contributors(): Array | null { - let value = this.get("contributors"); - if (!value || value.kind == ValueKind.NULL) { - return null; - } else { - return value.toStringArray(); - } + get contributors(): ContributorLoader { + return new ContributorLoader( + "ContributorRegistry", + this.get("id")!.toString(), + "contributors", + ); } get createdAt(): string | null { @@ -1725,19 +1834,29 @@ export class Contributor extends Entity { if (id) { assert( id.kind == ValueKind.STRING, - `Entities of type Contributor must have an ID of type String but the id '${id.displayData()}' is of type ${id.displayKind()}` + `Entities of type Contributor must have an ID of type String but the id '${id.displayData()}' is of type ${id.displayKind()}`, ); store.set("Contributor", id.toString(), this); } } + static loadInBlock(id: string): Contributor | null { + return changetype( + store.get_in_block("Contributor", id), + ); + } + static load(id: string): Contributor | null { return changetype(store.get("Contributor", id)); } get id(): string { let value = this.get("id"); - return value!.toString(); + if (!value || value.kind == ValueKind.NULL) { + throw new Error("Cannot return null for a required field."); + } else { + return value.toString(); + } } set id(value: string) { @@ -1746,20 +1865,19 @@ export class Contributor extends Entity { get contributorRegistry(): string { let value = this.get("contributorRegistry"); - return value!.toString(); + if (!value || value.kind == ValueKind.NULL) { + throw new Error("Cannot return null for a required field."); + } else { + return value.toString(); + } } set contributorRegistry(value: string) { this.set("contributorRegistry", Value.fromString(value)); } - get votes(): Array | null { - let value = this.get("votes"); - if (!value || value.kind == ValueKind.NULL) { - return null; - } else { - return value.toStringArray(); - } + get votes(): VoteLoader { + return new VoteLoader("Contributor", this.get("id")!.toString(), "votes"); } get verifiedTimeStamp(): string | null { @@ -1813,13 +1931,12 @@ export class Contributor extends Entity { } } - get contributions(): Array | null { - let value = this.get("contributions"); - if (!value || value.kind == ValueKind.NULL) { - return null; - } else { - return value.toStringArray(); - } + get contributions(): ContributionLoader { + return new ContributionLoader( + "Contributor", + this.get("id")!.toString(), + "contributions", + ); } get createdAt(): string | null { @@ -1869,19 +1986,29 @@ export class Coordinator extends Entity { if (id) { assert( id.kind == ValueKind.STRING, - `Entities of type Coordinator must have an ID of type String but the id '${id.displayData()}' is of type ${id.displayKind()}` + `Entities of type Coordinator must have an ID of type String but the id '${id.displayData()}' is of type ${id.displayKind()}`, ); store.set("Coordinator", id.toString(), this); } } + static loadInBlock(id: string): Coordinator | null { + return changetype( + store.get_in_block("Coordinator", id), + ); + } + static load(id: string): Coordinator | null { return changetype(store.get("Coordinator", id)); } get id(): string { let value = this.get("id"); - return value!.toString(); + if (!value || value.kind == ValueKind.NULL) { + throw new Error("Cannot return null for a required field."); + } else { + return value.toString(); + } } set id(value: string) { @@ -1952,19 +2079,29 @@ export class Contribution extends Entity { if (id) { assert( id.kind == ValueKind.STRING, - `Entities of type Contribution must have an ID of type String but the id '${id.displayData()}' is of type ${id.displayKind()}` + `Entities of type Contribution must have an ID of type String but the id '${id.displayData()}' is of type ${id.displayKind()}`, ); store.set("Contribution", id.toString(), this); } } + static loadInBlock(id: string): Contribution | null { + return changetype( + store.get_in_block("Contribution", id), + ); + } + static load(id: string): Contribution | null { return changetype(store.get("Contribution", id)); } get id(): string { let value = this.get("id"); - return value!.toString(); + if (!value || value.kind == ValueKind.NULL) { + throw new Error("Cannot return null for a required field."); + } else { + return value.toString(); + } } set id(value: string) { @@ -2069,19 +2206,27 @@ export class Vote extends Entity { if (id) { assert( id.kind == ValueKind.STRING, - `Entities of type Vote must have an ID of type String but the id '${id.displayData()}' is of type ${id.displayKind()}` + `Entities of type Vote must have an ID of type String but the id '${id.displayData()}' is of type ${id.displayKind()}`, ); store.set("Vote", id.toString(), this); } } + static loadInBlock(id: string): Vote | null { + return changetype(store.get_in_block("Vote", id)); + } + static load(id: string): Vote | null { return changetype(store.get("Vote", id)); } get id(): string { let value = this.get("id"); - return value!.toString(); + if (!value || value.kind == ValueKind.NULL) { + throw new Error("Cannot return null for a required field."); + } else { + return value.toString(); + } } set id(value: string) { @@ -2141,7 +2286,11 @@ export class Vote extends Entity { get secret(): boolean { let value = this.get("secret"); - return value!.toBoolean(); + if (!value || value.kind == ValueKind.NULL) { + return false; + } else { + return value.toBoolean(); + } } set secret(value: boolean) { @@ -2161,19 +2310,27 @@ export class Donation extends Entity { if (id) { assert( id.kind == ValueKind.STRING, - `Entities of type Donation must have an ID of type String but the id '${id.displayData()}' is of type ${id.displayKind()}` + `Entities of type Donation must have an ID of type String but the id '${id.displayData()}' is of type ${id.displayKind()}`, ); store.set("Donation", id.toString(), this); } } + static loadInBlock(id: string): Donation | null { + return changetype(store.get_in_block("Donation", id)); + } + static load(id: string): Donation | null { return changetype(store.get("Donation", id)); } get id(): string { let value = this.get("id"); - return value!.toString(); + if (!value || value.kind == ValueKind.NULL) { + throw new Error("Cannot return null for a required field."); + } else { + return value.toString(); + } } set id(value: string) { @@ -2278,19 +2435,27 @@ export class Token extends Entity { if (id) { assert( id.kind == ValueKind.STRING, - `Entities of type Token must have an ID of type String but the id '${id.displayData()}' is of type ${id.displayKind()}` + `Entities of type Token must have an ID of type String but the id '${id.displayData()}' is of type ${id.displayKind()}`, ); store.set("Token", id.toString(), this); } } + static loadInBlock(id: string): Token | null { + return changetype(store.get_in_block("Token", id)); + } + static load(id: string): Token | null { return changetype(store.get("Token", id)); } get id(): string { let value = this.get("id"); - return value!.toString(); + if (!value || value.kind == ValueKind.NULL) { + throw new Error("Cannot return null for a required field."); + } else { + return value.toString(); + } } set id(value: string) { @@ -2382,3 +2547,111 @@ export class Token extends Entity { } } } + +export class FundingRoundLoader extends Entity { + _entity: string; + _field: string; + _id: string; + + constructor(entity: string, id: string, field: string) { + super(); + this._entity = entity; + this._id = id; + this._field = field; + } + + load(): FundingRound[] { + let value = store.loadRelated(this._entity, this._id, this._field); + return changetype(value); + } +} + +export class MessageLoader extends Entity { + _entity: string; + _field: string; + _id: string; + + constructor(entity: string, id: string, field: string) { + super(); + this._entity = entity; + this._id = id; + this._field = field; + } + + load(): Message[] { + let value = store.loadRelated(this._entity, this._id, this._field); + return changetype(value); + } +} + +export class RecipientLoader extends Entity { + _entity: string; + _field: string; + _id: string; + + constructor(entity: string, id: string, field: string) { + super(); + this._entity = entity; + this._id = id; + this._field = field; + } + + load(): Recipient[] { + let value = store.loadRelated(this._entity, this._id, this._field); + return changetype(value); + } +} + +export class ContributorLoader extends Entity { + _entity: string; + _field: string; + _id: string; + + constructor(entity: string, id: string, field: string) { + super(); + this._entity = entity; + this._id = id; + this._field = field; + } + + load(): Contributor[] { + let value = store.loadRelated(this._entity, this._id, this._field); + return changetype(value); + } +} + +export class ContributionLoader extends Entity { + _entity: string; + _field: string; + _id: string; + + constructor(entity: string, id: string, field: string) { + super(); + this._entity = entity; + this._id = id; + this._field = field; + } + + load(): Contribution[] { + let value = store.loadRelated(this._entity, this._id, this._field); + return changetype(value); + } +} + +export class VoteLoader extends Entity { + _entity: string; + _field: string; + _id: string; + + constructor(entity: string, id: string, field: string) { + super(); + this._entity = entity; + this._id = id; + this._field = field; + } + + load(): Vote[] { + let value = store.loadRelated(this._entity, this._id, this._field); + return changetype(value); + } +} diff --git a/subgraph/generated/templates.ts b/subgraph/generated/templates.ts index a5ec12ccf..b920a2826 100644 --- a/subgraph/generated/templates.ts +++ b/subgraph/generated/templates.ts @@ -3,7 +3,7 @@ import { Address, DataSourceTemplate, - DataSourceContext + DataSourceContext, } from "@graphprotocol/graph-ts"; export class FundingRound extends DataSourceTemplate { @@ -15,7 +15,7 @@ export class FundingRound extends DataSourceTemplate { DataSourceTemplate.createWithContext( "FundingRound", [address.toHex()], - context + context, ); } } @@ -29,7 +29,7 @@ export class OptimisticRecipientRegistry extends DataSourceTemplate { DataSourceTemplate.createWithContext( "OptimisticRecipientRegistry", [address.toHex()], - context + context, ); } } @@ -43,7 +43,7 @@ export class BrightIdUserRegistry extends DataSourceTemplate { DataSourceTemplate.createWithContext( "BrightIdUserRegistry", [address.toHex()], - context + context, ); } } diff --git a/subgraph/generated/templates/BrightIdUserRegistry/BrightIdUserRegistry.ts b/subgraph/generated/templates/BrightIdUserRegistry/BrightIdUserRegistry.ts index 7d1e77f55..1209bacdb 100644 --- a/subgraph/generated/templates/BrightIdUserRegistry/BrightIdUserRegistry.ts +++ b/subgraph/generated/templates/BrightIdUserRegistry/BrightIdUserRegistry.ts @@ -7,7 +7,7 @@ import { Entity, Bytes, Address, - BigInt + BigInt, } from "@graphprotocol/graph-ts"; export class OwnershipTransferred extends ethereum.Event { @@ -103,7 +103,7 @@ export class BrightIdUserRegistry extends ethereum.SmartContract { let result = super.call( "brightIdSponsor", "brightIdSponsor():(address)", - [] + [], ); return result[0].toAddress(); @@ -113,7 +113,7 @@ export class BrightIdUserRegistry extends ethereum.SmartContract { let result = super.tryCall( "brightIdSponsor", "brightIdSponsor():(address)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -141,7 +141,7 @@ export class BrightIdUserRegistry extends ethereum.SmartContract { let result = super.call( "isVerifiedUser", "isVerifiedUser(address):(bool)", - [ethereum.Value.fromAddress(_user)] + [ethereum.Value.fromAddress(_user)], ); return result[0].toBoolean(); @@ -151,7 +151,7 @@ export class BrightIdUserRegistry extends ethereum.SmartContract { let result = super.tryCall( "isVerifiedUser", "isVerifiedUser(address):(bool)", - [ethereum.Value.fromAddress(_user)] + [ethereum.Value.fromAddress(_user)], ); if (result.reverted) { return new ethereum.CallResult(); @@ -179,7 +179,7 @@ export class BrightIdUserRegistry extends ethereum.SmartContract { let result = super.call( "verifications", "verifications(address):(uint256)", - [ethereum.Value.fromAddress(param0)] + [ethereum.Value.fromAddress(param0)], ); return result[0].toBigInt(); @@ -189,7 +189,7 @@ export class BrightIdUserRegistry extends ethereum.SmartContract { let result = super.tryCall( "verifications", "verifications(address):(uint256)", - [ethereum.Value.fromAddress(param0)] + [ethereum.Value.fromAddress(param0)], ); if (result.reverted) { return new ethereum.CallResult(); diff --git a/subgraph/generated/templates/FundingRound/BrightIdUserRegistry.ts b/subgraph/generated/templates/FundingRound/BrightIdUserRegistry.ts index 7d1e77f55..1209bacdb 100644 --- a/subgraph/generated/templates/FundingRound/BrightIdUserRegistry.ts +++ b/subgraph/generated/templates/FundingRound/BrightIdUserRegistry.ts @@ -7,7 +7,7 @@ import { Entity, Bytes, Address, - BigInt + BigInt, } from "@graphprotocol/graph-ts"; export class OwnershipTransferred extends ethereum.Event { @@ -103,7 +103,7 @@ export class BrightIdUserRegistry extends ethereum.SmartContract { let result = super.call( "brightIdSponsor", "brightIdSponsor():(address)", - [] + [], ); return result[0].toAddress(); @@ -113,7 +113,7 @@ export class BrightIdUserRegistry extends ethereum.SmartContract { let result = super.tryCall( "brightIdSponsor", "brightIdSponsor():(address)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -141,7 +141,7 @@ export class BrightIdUserRegistry extends ethereum.SmartContract { let result = super.call( "isVerifiedUser", "isVerifiedUser(address):(bool)", - [ethereum.Value.fromAddress(_user)] + [ethereum.Value.fromAddress(_user)], ); return result[0].toBoolean(); @@ -151,7 +151,7 @@ export class BrightIdUserRegistry extends ethereum.SmartContract { let result = super.tryCall( "isVerifiedUser", "isVerifiedUser(address):(bool)", - [ethereum.Value.fromAddress(_user)] + [ethereum.Value.fromAddress(_user)], ); if (result.reverted) { return new ethereum.CallResult(); @@ -179,7 +179,7 @@ export class BrightIdUserRegistry extends ethereum.SmartContract { let result = super.call( "verifications", "verifications(address):(uint256)", - [ethereum.Value.fromAddress(param0)] + [ethereum.Value.fromAddress(param0)], ); return result[0].toBigInt(); @@ -189,7 +189,7 @@ export class BrightIdUserRegistry extends ethereum.SmartContract { let result = super.tryCall( "verifications", "verifications(address):(uint256)", - [ethereum.Value.fromAddress(param0)] + [ethereum.Value.fromAddress(param0)], ); if (result.reverted) { return new ethereum.CallResult(); diff --git a/subgraph/generated/templates/FundingRound/FundingRound.ts b/subgraph/generated/templates/FundingRound/FundingRound.ts index ac1673f3a..b058ff52f 100644 --- a/subgraph/generated/templates/FundingRound/FundingRound.ts +++ b/subgraph/generated/templates/FundingRound/FundingRound.ts @@ -7,7 +7,7 @@ import { Entity, Bytes, Address, - BigInt + BigInt, } from "@graphprotocol/graph-ts"; export class Contribution extends ethereum.Event { @@ -258,7 +258,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.call( "MESSAGE_DATA_LENGTH", "MESSAGE_DATA_LENGTH():(uint8)", - [] + [], ); return result[0].toI32(); @@ -268,7 +268,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.tryCall( "MESSAGE_DATA_LENGTH", "MESSAGE_DATA_LENGTH():(uint8)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -310,7 +310,7 @@ export class FundingRound extends ethereum.SmartContract { calcAlpha( _budget: BigInt, _totalVotesSquares: BigInt, - _totalSpent: BigInt + _totalSpent: BigInt, ): BigInt { let result = super.call( "calcAlpha", @@ -318,8 +318,8 @@ export class FundingRound extends ethereum.SmartContract { [ ethereum.Value.fromUnsignedBigInt(_budget), ethereum.Value.fromUnsignedBigInt(_totalVotesSquares), - ethereum.Value.fromUnsignedBigInt(_totalSpent) - ] + ethereum.Value.fromUnsignedBigInt(_totalSpent), + ], ); return result[0].toBigInt(); @@ -328,7 +328,7 @@ export class FundingRound extends ethereum.SmartContract { try_calcAlpha( _budget: BigInt, _totalVotesSquares: BigInt, - _totalSpent: BigInt + _totalSpent: BigInt, ): ethereum.CallResult { let result = super.tryCall( "calcAlpha", @@ -336,8 +336,8 @@ export class FundingRound extends ethereum.SmartContract { [ ethereum.Value.fromUnsignedBigInt(_budget), ethereum.Value.fromUnsignedBigInt(_totalVotesSquares), - ethereum.Value.fromUnsignedBigInt(_totalSpent) - ] + ethereum.Value.fromUnsignedBigInt(_totalSpent), + ], ); if (result.reverted) { return new ethereum.CallResult(); @@ -350,7 +350,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.call( "contributorCount", "contributorCount():(uint256)", - [] + [], ); return result[0].toBigInt(); @@ -360,7 +360,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.tryCall( "contributorCount", "contributorCount():(uint256)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -373,22 +373,22 @@ export class FundingRound extends ethereum.SmartContract { let result = super.call( "contributors", "contributors(address):(uint256,bool)", - [ethereum.Value.fromAddress(param0)] + [ethereum.Value.fromAddress(param0)], ); return new FundingRound__contributorsResult( result[0].toBigInt(), - result[1].toBoolean() + result[1].toBoolean(), ); } try_contributors( - param0: Address + param0: Address, ): ethereum.CallResult { let result = super.tryCall( "contributors", "contributors(address):(uint256,bool)", - [ethereum.Value.fromAddress(param0)] + [ethereum.Value.fromAddress(param0)], ); if (result.reverted) { return new ethereum.CallResult(); @@ -397,8 +397,8 @@ export class FundingRound extends ethereum.SmartContract { return ethereum.CallResult.fromValue( new FundingRound__contributorsResult( value[0].toBigInt(), - value[1].toBoolean() - ) + value[1].toBoolean(), + ), ); } @@ -423,8 +423,8 @@ export class FundingRound extends ethereum.SmartContract { "getAllocatedAmount(uint256,uint256):(uint256)", [ ethereum.Value.fromUnsignedBigInt(_tallyResult), - ethereum.Value.fromUnsignedBigInt(_spent) - ] + ethereum.Value.fromUnsignedBigInt(_spent), + ], ); return result[0].toBigInt(); @@ -432,15 +432,15 @@ export class FundingRound extends ethereum.SmartContract { try_getAllocatedAmount( _tallyResult: BigInt, - _spent: BigInt + _spent: BigInt, ): ethereum.CallResult { let result = super.tryCall( "getAllocatedAmount", "getAllocatedAmount(uint256,uint256):(uint256)", [ ethereum.Value.fromUnsignedBigInt(_tallyResult), - ethereum.Value.fromUnsignedBigInt(_spent) - ] + ethereum.Value.fromUnsignedBigInt(_spent), + ], ); if (result.reverted) { return new ethereum.CallResult(); @@ -453,7 +453,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.call( "getVoiceCredits", "getVoiceCredits(address,bytes):(uint256)", - [ethereum.Value.fromAddress(param0), ethereum.Value.fromBytes(_data)] + [ethereum.Value.fromAddress(param0), ethereum.Value.fromBytes(_data)], ); return result[0].toBigInt(); @@ -461,12 +461,12 @@ export class FundingRound extends ethereum.SmartContract { try_getVoiceCredits( param0: Address, - _data: Bytes + _data: Bytes, ): ethereum.CallResult { let result = super.tryCall( "getVoiceCredits", "getVoiceCredits(address,bytes):(uint256)", - [ethereum.Value.fromAddress(param0), ethereum.Value.fromBytes(_data)] + [ethereum.Value.fromAddress(param0), ethereum.Value.fromBytes(_data)], ); if (result.reverted) { return new ethereum.CallResult(); @@ -477,7 +477,7 @@ export class FundingRound extends ethereum.SmartContract { isAddressZero(addressValue: Address): boolean { let result = super.call("isAddressZero", "isAddressZero(address):(bool)", [ - ethereum.Value.fromAddress(addressValue) + ethereum.Value.fromAddress(addressValue), ]); return result[0].toBoolean(); @@ -487,7 +487,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.tryCall( "isAddressZero", "isAddressZero(address):(bool)", - [ethereum.Value.fromAddress(addressValue)] + [ethereum.Value.fromAddress(addressValue)], ); if (result.reverted) { return new ethereum.CallResult(); @@ -545,7 +545,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.call( "matchingPoolSize", "matchingPoolSize():(uint256)", - [] + [], ); return result[0].toBigInt(); @@ -555,7 +555,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.tryCall( "matchingPoolSize", "matchingPoolSize():(uint256)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -628,7 +628,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.call( "recipientRegistry", "recipientRegistry():(address)", - [] + [], ); return result[0].toAddress(); @@ -638,7 +638,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.tryCall( "recipientRegistry", "recipientRegistry():(address)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -651,23 +651,23 @@ export class FundingRound extends ethereum.SmartContract { let result = super.call( "recipients", "recipients(uint256):(bool,bool,uint256)", - [ethereum.Value.fromUnsignedBigInt(param0)] + [ethereum.Value.fromUnsignedBigInt(param0)], ); return new FundingRound__recipientsResult( result[0].toBoolean(), result[1].toBoolean(), - result[2].toBigInt() + result[2].toBigInt(), ); } try_recipients( - param0: BigInt + param0: BigInt, ): ethereum.CallResult { let result = super.tryCall( "recipients", "recipients(uint256):(bool,bool,uint256)", - [ethereum.Value.fromUnsignedBigInt(param0)] + [ethereum.Value.fromUnsignedBigInt(param0)], ); if (result.reverted) { return new ethereum.CallResult(); @@ -677,8 +677,8 @@ export class FundingRound extends ethereum.SmartContract { new FundingRound__recipientsResult( value[0].toBoolean(), value[1].toBoolean(), - value[2].toBigInt() - ) + value[2].toBigInt(), + ), ); } @@ -746,7 +746,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.call( "totalTallyResults", "totalTallyResults():(uint256)", - [] + [], ); return result[0].toBigInt(); @@ -756,7 +756,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.tryCall( "totalTallyResults", "totalTallyResults():(uint256)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -784,7 +784,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.call( "totalVotesSquares", "totalVotesSquares():(uint256)", - [] + [], ); return result[0].toBigInt(); @@ -794,7 +794,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.tryCall( "totalVotesSquares", "totalVotesSquares():(uint256)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -822,7 +822,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.call( "voiceCreditFactor", "voiceCreditFactor():(uint256)", - [] + [], ); return result[0].toBigInt(); @@ -832,7 +832,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.tryCall( "voiceCreditFactor", "voiceCreditFactor():(uint256)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -845,19 +845,19 @@ export class FundingRound extends ethereum.SmartContract { let result = super.call( "withdrawContributions", "withdrawContributions(address[]):(bool[])", - [ethereum.Value.fromAddressArray(_contributors)] + [ethereum.Value.fromAddressArray(_contributors)], ); return result[0].toBooleanArray(); } try_withdrawContributions( - _contributors: Array
+ _contributors: Array
, ): ethereum.CallResult> { let result = super.tryCall( "withdrawContributions", "withdrawContributions(address[]):(bool[])", - [ethereum.Value.fromAddressArray(_contributors)] + [ethereum.Value.fromAddressArray(_contributors)], ); if (result.reverted) { return new ethereum.CallResult(); @@ -1004,7 +1004,7 @@ export class ContributeCall__Inputs { get pubKey(): ContributeCallPubKeyStruct { return changetype( - this._call.inputValues[0].value.toTuple() + this._call.inputValues[0].value.toTuple(), ); } @@ -1212,7 +1212,7 @@ export class SetMaciCall__Inputs { get _pollContracts(): SetMaciCall_pollContractsStruct { return changetype( - this._call.inputValues[1].value.toTuple() + this._call.inputValues[1].value.toTuple(), ); } } @@ -1291,15 +1291,11 @@ export class SubmitMessageBatchCall__Inputs { } get _messages(): Array { - return this._call.inputValues[0].value.toTupleArray< - SubmitMessageBatchCall_messagesStruct - >(); + return this._call.inputValues[0].value.toTupleArray(); } get _encPubKeys(): Array { - return this._call.inputValues[1].value.toTupleArray< - SubmitMessageBatchCall_encPubKeysStruct - >(); + return this._call.inputValues[1].value.toTupleArray(); } } diff --git a/subgraph/generated/templates/FundingRound/OptimisticRecipientRegistry.ts b/subgraph/generated/templates/FundingRound/OptimisticRecipientRegistry.ts index afb85c261..80ec65e55 100644 --- a/subgraph/generated/templates/FundingRound/OptimisticRecipientRegistry.ts +++ b/subgraph/generated/templates/FundingRound/OptimisticRecipientRegistry.ts @@ -7,7 +7,7 @@ import { Entity, Bytes, Address, - BigInt + BigInt, } from "@graphprotocol/graph-ts"; export class OwnershipTransferred extends ethereum.Event { @@ -104,7 +104,7 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { static bind(address: Address): OptimisticRecipientRegistry { return new OptimisticRecipientRegistry( "OptimisticRecipientRegistry", - address + address, ); } @@ -127,7 +127,7 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { let result = super.call( "challengePeriodDuration", "challengePeriodDuration():(uint256)", - [] + [], ); return result[0].toBigInt(); @@ -137,7 +137,7 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { let result = super.tryCall( "challengePeriodDuration", "challengePeriodDuration():(uint256)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -152,8 +152,8 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { "challengeRequest(bytes32,address):(bool)", [ ethereum.Value.fromFixedBytes(_recipientId), - ethereum.Value.fromAddress(_beneficiary) - ] + ethereum.Value.fromAddress(_beneficiary), + ], ); return result[0].toBoolean(); @@ -161,15 +161,15 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { try_challengeRequest( _recipientId: Bytes, - _beneficiary: Address + _beneficiary: Address, ): ethereum.CallResult { let result = super.tryCall( "challengeRequest", "challengeRequest(bytes32,address):(bool)", [ ethereum.Value.fromFixedBytes(_recipientId), - ethereum.Value.fromAddress(_beneficiary) - ] + ethereum.Value.fromAddress(_beneficiary), + ], ); if (result.reverted) { return new ethereum.CallResult(); @@ -197,7 +197,7 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { let result = super.call( "executeRequest", "executeRequest(bytes32):(bool)", - [ethereum.Value.fromFixedBytes(_recipientId)] + [ethereum.Value.fromFixedBytes(_recipientId)], ); return result[0].toBoolean(); @@ -207,7 +207,7 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { let result = super.tryCall( "executeRequest", "executeRequest(bytes32):(bool)", - [ethereum.Value.fromFixedBytes(_recipientId)] + [ethereum.Value.fromFixedBytes(_recipientId)], ); if (result.reverted) { return new ethereum.CallResult(); @@ -219,7 +219,7 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { getRecipientAddress( _index: BigInt, _startTime: BigInt, - _endTime: BigInt + _endTime: BigInt, ): Address { let result = super.call( "getRecipientAddress", @@ -227,8 +227,8 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { [ ethereum.Value.fromUnsignedBigInt(_index), ethereum.Value.fromUnsignedBigInt(_startTime), - ethereum.Value.fromUnsignedBigInt(_endTime) - ] + ethereum.Value.fromUnsignedBigInt(_endTime), + ], ); return result[0].toAddress(); @@ -237,7 +237,7 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { try_getRecipientAddress( _index: BigInt, _startTime: BigInt, - _endTime: BigInt + _endTime: BigInt, ): ethereum.CallResult
{ let result = super.tryCall( "getRecipientAddress", @@ -245,8 +245,8 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { [ ethereum.Value.fromUnsignedBigInt(_index), ethereum.Value.fromUnsignedBigInt(_startTime), - ethereum.Value.fromUnsignedBigInt(_endTime) - ] + ethereum.Value.fromUnsignedBigInt(_endTime), + ], ); if (result.reverted) { return new ethereum.CallResult(); @@ -259,7 +259,7 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { let result = super.call( "getRecipientCount", "getRecipientCount():(uint256)", - [] + [], ); return result[0].toBigInt(); @@ -269,7 +269,7 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { let result = super.tryCall( "getRecipientCount", "getRecipientCount():(uint256)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -288,7 +288,7 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { let result = super.tryCall( "maxRecipients", "maxRecipients():(uint256)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -316,7 +316,7 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { let result = super.call( "setMaxRecipients", "setMaxRecipients(uint256):(bool)", - [ethereum.Value.fromUnsignedBigInt(_maxRecipients)] + [ethereum.Value.fromUnsignedBigInt(_maxRecipients)], ); return result[0].toBoolean(); @@ -326,7 +326,7 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { let result = super.tryCall( "setMaxRecipients", "setMaxRecipients(uint256):(bool)", - [ethereum.Value.fromUnsignedBigInt(_maxRecipients)] + [ethereum.Value.fromUnsignedBigInt(_maxRecipients)], ); if (result.reverted) { return new ethereum.CallResult(); diff --git a/subgraph/generated/templates/MACI/FundingRound.ts b/subgraph/generated/templates/MACI/FundingRound.ts index ac1673f3a..b058ff52f 100644 --- a/subgraph/generated/templates/MACI/FundingRound.ts +++ b/subgraph/generated/templates/MACI/FundingRound.ts @@ -7,7 +7,7 @@ import { Entity, Bytes, Address, - BigInt + BigInt, } from "@graphprotocol/graph-ts"; export class Contribution extends ethereum.Event { @@ -258,7 +258,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.call( "MESSAGE_DATA_LENGTH", "MESSAGE_DATA_LENGTH():(uint8)", - [] + [], ); return result[0].toI32(); @@ -268,7 +268,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.tryCall( "MESSAGE_DATA_LENGTH", "MESSAGE_DATA_LENGTH():(uint8)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -310,7 +310,7 @@ export class FundingRound extends ethereum.SmartContract { calcAlpha( _budget: BigInt, _totalVotesSquares: BigInt, - _totalSpent: BigInt + _totalSpent: BigInt, ): BigInt { let result = super.call( "calcAlpha", @@ -318,8 +318,8 @@ export class FundingRound extends ethereum.SmartContract { [ ethereum.Value.fromUnsignedBigInt(_budget), ethereum.Value.fromUnsignedBigInt(_totalVotesSquares), - ethereum.Value.fromUnsignedBigInt(_totalSpent) - ] + ethereum.Value.fromUnsignedBigInt(_totalSpent), + ], ); return result[0].toBigInt(); @@ -328,7 +328,7 @@ export class FundingRound extends ethereum.SmartContract { try_calcAlpha( _budget: BigInt, _totalVotesSquares: BigInt, - _totalSpent: BigInt + _totalSpent: BigInt, ): ethereum.CallResult { let result = super.tryCall( "calcAlpha", @@ -336,8 +336,8 @@ export class FundingRound extends ethereum.SmartContract { [ ethereum.Value.fromUnsignedBigInt(_budget), ethereum.Value.fromUnsignedBigInt(_totalVotesSquares), - ethereum.Value.fromUnsignedBigInt(_totalSpent) - ] + ethereum.Value.fromUnsignedBigInt(_totalSpent), + ], ); if (result.reverted) { return new ethereum.CallResult(); @@ -350,7 +350,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.call( "contributorCount", "contributorCount():(uint256)", - [] + [], ); return result[0].toBigInt(); @@ -360,7 +360,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.tryCall( "contributorCount", "contributorCount():(uint256)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -373,22 +373,22 @@ export class FundingRound extends ethereum.SmartContract { let result = super.call( "contributors", "contributors(address):(uint256,bool)", - [ethereum.Value.fromAddress(param0)] + [ethereum.Value.fromAddress(param0)], ); return new FundingRound__contributorsResult( result[0].toBigInt(), - result[1].toBoolean() + result[1].toBoolean(), ); } try_contributors( - param0: Address + param0: Address, ): ethereum.CallResult { let result = super.tryCall( "contributors", "contributors(address):(uint256,bool)", - [ethereum.Value.fromAddress(param0)] + [ethereum.Value.fromAddress(param0)], ); if (result.reverted) { return new ethereum.CallResult(); @@ -397,8 +397,8 @@ export class FundingRound extends ethereum.SmartContract { return ethereum.CallResult.fromValue( new FundingRound__contributorsResult( value[0].toBigInt(), - value[1].toBoolean() - ) + value[1].toBoolean(), + ), ); } @@ -423,8 +423,8 @@ export class FundingRound extends ethereum.SmartContract { "getAllocatedAmount(uint256,uint256):(uint256)", [ ethereum.Value.fromUnsignedBigInt(_tallyResult), - ethereum.Value.fromUnsignedBigInt(_spent) - ] + ethereum.Value.fromUnsignedBigInt(_spent), + ], ); return result[0].toBigInt(); @@ -432,15 +432,15 @@ export class FundingRound extends ethereum.SmartContract { try_getAllocatedAmount( _tallyResult: BigInt, - _spent: BigInt + _spent: BigInt, ): ethereum.CallResult { let result = super.tryCall( "getAllocatedAmount", "getAllocatedAmount(uint256,uint256):(uint256)", [ ethereum.Value.fromUnsignedBigInt(_tallyResult), - ethereum.Value.fromUnsignedBigInt(_spent) - ] + ethereum.Value.fromUnsignedBigInt(_spent), + ], ); if (result.reverted) { return new ethereum.CallResult(); @@ -453,7 +453,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.call( "getVoiceCredits", "getVoiceCredits(address,bytes):(uint256)", - [ethereum.Value.fromAddress(param0), ethereum.Value.fromBytes(_data)] + [ethereum.Value.fromAddress(param0), ethereum.Value.fromBytes(_data)], ); return result[0].toBigInt(); @@ -461,12 +461,12 @@ export class FundingRound extends ethereum.SmartContract { try_getVoiceCredits( param0: Address, - _data: Bytes + _data: Bytes, ): ethereum.CallResult { let result = super.tryCall( "getVoiceCredits", "getVoiceCredits(address,bytes):(uint256)", - [ethereum.Value.fromAddress(param0), ethereum.Value.fromBytes(_data)] + [ethereum.Value.fromAddress(param0), ethereum.Value.fromBytes(_data)], ); if (result.reverted) { return new ethereum.CallResult(); @@ -477,7 +477,7 @@ export class FundingRound extends ethereum.SmartContract { isAddressZero(addressValue: Address): boolean { let result = super.call("isAddressZero", "isAddressZero(address):(bool)", [ - ethereum.Value.fromAddress(addressValue) + ethereum.Value.fromAddress(addressValue), ]); return result[0].toBoolean(); @@ -487,7 +487,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.tryCall( "isAddressZero", "isAddressZero(address):(bool)", - [ethereum.Value.fromAddress(addressValue)] + [ethereum.Value.fromAddress(addressValue)], ); if (result.reverted) { return new ethereum.CallResult(); @@ -545,7 +545,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.call( "matchingPoolSize", "matchingPoolSize():(uint256)", - [] + [], ); return result[0].toBigInt(); @@ -555,7 +555,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.tryCall( "matchingPoolSize", "matchingPoolSize():(uint256)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -628,7 +628,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.call( "recipientRegistry", "recipientRegistry():(address)", - [] + [], ); return result[0].toAddress(); @@ -638,7 +638,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.tryCall( "recipientRegistry", "recipientRegistry():(address)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -651,23 +651,23 @@ export class FundingRound extends ethereum.SmartContract { let result = super.call( "recipients", "recipients(uint256):(bool,bool,uint256)", - [ethereum.Value.fromUnsignedBigInt(param0)] + [ethereum.Value.fromUnsignedBigInt(param0)], ); return new FundingRound__recipientsResult( result[0].toBoolean(), result[1].toBoolean(), - result[2].toBigInt() + result[2].toBigInt(), ); } try_recipients( - param0: BigInt + param0: BigInt, ): ethereum.CallResult { let result = super.tryCall( "recipients", "recipients(uint256):(bool,bool,uint256)", - [ethereum.Value.fromUnsignedBigInt(param0)] + [ethereum.Value.fromUnsignedBigInt(param0)], ); if (result.reverted) { return new ethereum.CallResult(); @@ -677,8 +677,8 @@ export class FundingRound extends ethereum.SmartContract { new FundingRound__recipientsResult( value[0].toBoolean(), value[1].toBoolean(), - value[2].toBigInt() - ) + value[2].toBigInt(), + ), ); } @@ -746,7 +746,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.call( "totalTallyResults", "totalTallyResults():(uint256)", - [] + [], ); return result[0].toBigInt(); @@ -756,7 +756,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.tryCall( "totalTallyResults", "totalTallyResults():(uint256)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -784,7 +784,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.call( "totalVotesSquares", "totalVotesSquares():(uint256)", - [] + [], ); return result[0].toBigInt(); @@ -794,7 +794,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.tryCall( "totalVotesSquares", "totalVotesSquares():(uint256)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -822,7 +822,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.call( "voiceCreditFactor", "voiceCreditFactor():(uint256)", - [] + [], ); return result[0].toBigInt(); @@ -832,7 +832,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.tryCall( "voiceCreditFactor", "voiceCreditFactor():(uint256)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -845,19 +845,19 @@ export class FundingRound extends ethereum.SmartContract { let result = super.call( "withdrawContributions", "withdrawContributions(address[]):(bool[])", - [ethereum.Value.fromAddressArray(_contributors)] + [ethereum.Value.fromAddressArray(_contributors)], ); return result[0].toBooleanArray(); } try_withdrawContributions( - _contributors: Array
+ _contributors: Array
, ): ethereum.CallResult> { let result = super.tryCall( "withdrawContributions", "withdrawContributions(address[]):(bool[])", - [ethereum.Value.fromAddressArray(_contributors)] + [ethereum.Value.fromAddressArray(_contributors)], ); if (result.reverted) { return new ethereum.CallResult(); @@ -1004,7 +1004,7 @@ export class ContributeCall__Inputs { get pubKey(): ContributeCallPubKeyStruct { return changetype( - this._call.inputValues[0].value.toTuple() + this._call.inputValues[0].value.toTuple(), ); } @@ -1212,7 +1212,7 @@ export class SetMaciCall__Inputs { get _pollContracts(): SetMaciCall_pollContractsStruct { return changetype( - this._call.inputValues[1].value.toTuple() + this._call.inputValues[1].value.toTuple(), ); } } @@ -1291,15 +1291,11 @@ export class SubmitMessageBatchCall__Inputs { } get _messages(): Array { - return this._call.inputValues[0].value.toTupleArray< - SubmitMessageBatchCall_messagesStruct - >(); + return this._call.inputValues[0].value.toTupleArray(); } get _encPubKeys(): Array { - return this._call.inputValues[1].value.toTupleArray< - SubmitMessageBatchCall_encPubKeysStruct - >(); + return this._call.inputValues[1].value.toTupleArray(); } } diff --git a/subgraph/generated/templates/MACI/MACI.ts b/subgraph/generated/templates/MACI/MACI.ts index 6e710e368..b4644bdef 100644 --- a/subgraph/generated/templates/MACI/MACI.ts +++ b/subgraph/generated/templates/MACI/MACI.ts @@ -7,7 +7,7 @@ import { Entity, Bytes, Address, - BigInt + BigInt, } from "@graphprotocol/graph-ts"; export class DeployPoll extends ethereum.Event { @@ -29,13 +29,13 @@ export class DeployPoll__Params { get _pubKey(): DeployPoll_pubKeyStruct { return changetype( - this._event.parameters[1].value.toTuple() + this._event.parameters[1].value.toTuple(), ); } get pollAddr(): DeployPollPollAddrStruct { return changetype( - this._event.parameters[2].value.toTuple() + this._event.parameters[2].value.toTuple(), ); } } @@ -109,7 +109,7 @@ export class SignUp__Params { get _userPubKey(): SignUp_userPubKeyStruct { return changetype( - this._event.parameters[1].value.toTuple() + this._event.parameters[1].value.toTuple(), ); } @@ -201,7 +201,7 @@ export class MACI__hashMessageAndEncPubKeyInput_encPubKeyStruct extends ethereum export class MACI__hashStateLeafInput_stateLeafStruct extends ethereum.Tuple { get pubKey(): MACI__hashStateLeafInput_stateLeafPubKeyStruct { return changetype( - this[0].toTuple() + this[0].toTuple(), ); } @@ -252,7 +252,7 @@ export class MACI__padAndHashMessageResult { constructor( value0: MACI__padAndHashMessageResultMessageStruct, value1: MACI__padAndHashMessageResultPadKeyStruct, - value2: BigInt + value2: BigInt, ) { this.value0 = value0; this.value1 = value1; @@ -289,7 +289,7 @@ export class MACI extends ethereum.SmartContract { let result = super.call( "MESSAGE_DATA_LENGTH", "MESSAGE_DATA_LENGTH():(uint8)", - [] + [], ); return result[0].toI32(); @@ -299,7 +299,7 @@ export class MACI extends ethereum.SmartContract { let result = super.tryCall( "MESSAGE_DATA_LENGTH", "MESSAGE_DATA_LENGTH():(uint8)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -314,7 +314,7 @@ export class MACI extends ethereum.SmartContract { _coordinatorPubKey: MACI__deployPollInput_coordinatorPubKeyStruct, _verifier: Address, _vkRegistry: Address, - useSubsidy: boolean + useSubsidy: boolean, ): MACI__deployPollResultPollAddrStruct { let result = super.call( "deployPoll", @@ -325,12 +325,12 @@ export class MACI extends ethereum.SmartContract { ethereum.Value.fromTuple(_coordinatorPubKey), ethereum.Value.fromAddress(_verifier), ethereum.Value.fromAddress(_vkRegistry), - ethereum.Value.fromBoolean(useSubsidy) - ] + ethereum.Value.fromBoolean(useSubsidy), + ], ); return changetype( - result[0].toTuple() + result[0].toTuple(), ); } @@ -340,7 +340,7 @@ export class MACI extends ethereum.SmartContract { _coordinatorPubKey: MACI__deployPollInput_coordinatorPubKeyStruct, _verifier: Address, _vkRegistry: Address, - useSubsidy: boolean + useSubsidy: boolean, ): ethereum.CallResult { let result = super.tryCall( "deployPoll", @@ -351,21 +351,21 @@ export class MACI extends ethereum.SmartContract { ethereum.Value.fromTuple(_coordinatorPubKey), ethereum.Value.fromAddress(_verifier), ethereum.Value.fromAddress(_vkRegistry), - ethereum.Value.fromBoolean(useSubsidy) - ] + ethereum.Value.fromBoolean(useSubsidy), + ], ); if (result.reverted) { return new ethereum.CallResult(); } let value = result.value; return ethereum.CallResult.fromValue( - changetype(value[0].toTuple()) + changetype(value[0].toTuple()), ); } getPoll(_pollId: BigInt): Address { let result = super.call("getPoll", "getPoll(uint256):(address)", [ - ethereum.Value.fromUnsignedBigInt(_pollId) + ethereum.Value.fromUnsignedBigInt(_pollId), ]); return result[0].toAddress(); @@ -373,7 +373,7 @@ export class MACI extends ethereum.SmartContract { try_getPoll(_pollId: BigInt): ethereum.CallResult
{ let result = super.tryCall("getPoll", "getPoll(uint256):(address)", [ - ethereum.Value.fromUnsignedBigInt(_pollId) + ethereum.Value.fromUnsignedBigInt(_pollId), ]); if (result.reverted) { return new ethereum.CallResult(); @@ -392,7 +392,7 @@ export class MACI extends ethereum.SmartContract { let result = super.tryCall( "getStateAqRoot", "getStateAqRoot():(uint256)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -403,7 +403,7 @@ export class MACI extends ethereum.SmartContract { hash2(array: Array): BigInt { let result = super.call("hash2", "hash2(uint256[2]):(uint256)", [ - ethereum.Value.fromUnsignedBigIntArray(array) + ethereum.Value.fromUnsignedBigIntArray(array), ]); return result[0].toBigInt(); @@ -411,7 +411,7 @@ export class MACI extends ethereum.SmartContract { try_hash2(array: Array): ethereum.CallResult { let result = super.tryCall("hash2", "hash2(uint256[2]):(uint256)", [ - ethereum.Value.fromUnsignedBigIntArray(array) + ethereum.Value.fromUnsignedBigIntArray(array), ]); if (result.reverted) { return new ethereum.CallResult(); @@ -422,7 +422,7 @@ export class MACI extends ethereum.SmartContract { hash3(array: Array): BigInt { let result = super.call("hash3", "hash3(uint256[3]):(uint256)", [ - ethereum.Value.fromUnsignedBigIntArray(array) + ethereum.Value.fromUnsignedBigIntArray(array), ]); return result[0].toBigInt(); @@ -430,7 +430,7 @@ export class MACI extends ethereum.SmartContract { try_hash3(array: Array): ethereum.CallResult { let result = super.tryCall("hash3", "hash3(uint256[3]):(uint256)", [ - ethereum.Value.fromUnsignedBigIntArray(array) + ethereum.Value.fromUnsignedBigIntArray(array), ]); if (result.reverted) { return new ethereum.CallResult(); @@ -441,7 +441,7 @@ export class MACI extends ethereum.SmartContract { hash4(array: Array): BigInt { let result = super.call("hash4", "hash4(uint256[4]):(uint256)", [ - ethereum.Value.fromUnsignedBigIntArray(array) + ethereum.Value.fromUnsignedBigIntArray(array), ]); return result[0].toBigInt(); @@ -449,7 +449,7 @@ export class MACI extends ethereum.SmartContract { try_hash4(array: Array): ethereum.CallResult { let result = super.tryCall("hash4", "hash4(uint256[4]):(uint256)", [ - ethereum.Value.fromUnsignedBigIntArray(array) + ethereum.Value.fromUnsignedBigIntArray(array), ]); if (result.reverted) { return new ethereum.CallResult(); @@ -460,7 +460,7 @@ export class MACI extends ethereum.SmartContract { hash5(array: Array): BigInt { let result = super.call("hash5", "hash5(uint256[5]):(uint256)", [ - ethereum.Value.fromUnsignedBigIntArray(array) + ethereum.Value.fromUnsignedBigIntArray(array), ]); return result[0].toBigInt(); @@ -468,7 +468,7 @@ export class MACI extends ethereum.SmartContract { try_hash5(array: Array): ethereum.CallResult { let result = super.tryCall("hash5", "hash5(uint256[5]):(uint256)", [ - ethereum.Value.fromUnsignedBigIntArray(array) + ethereum.Value.fromUnsignedBigIntArray(array), ]); if (result.reverted) { return new ethereum.CallResult(); @@ -483,8 +483,8 @@ export class MACI extends ethereum.SmartContract { "hashLeftRight(uint256,uint256):(uint256)", [ ethereum.Value.fromUnsignedBigInt(left), - ethereum.Value.fromUnsignedBigInt(right) - ] + ethereum.Value.fromUnsignedBigInt(right), + ], ); return result[0].toBigInt(); @@ -496,8 +496,8 @@ export class MACI extends ethereum.SmartContract { "hashLeftRight(uint256,uint256):(uint256)", [ ethereum.Value.fromUnsignedBigInt(left), - ethereum.Value.fromUnsignedBigInt(right) - ] + ethereum.Value.fromUnsignedBigInt(right), + ], ); if (result.reverted) { return new ethereum.CallResult(); @@ -508,12 +508,15 @@ export class MACI extends ethereum.SmartContract { hashMessageAndEncPubKey( _message: MACI__hashMessageAndEncPubKeyInput_messageStruct, - _encPubKey: MACI__hashMessageAndEncPubKeyInput_encPubKeyStruct + _encPubKey: MACI__hashMessageAndEncPubKeyInput_encPubKeyStruct, ): BigInt { let result = super.call( "hashMessageAndEncPubKey", "hashMessageAndEncPubKey((uint256,uint256[10]),(uint256,uint256)):(uint256)", - [ethereum.Value.fromTuple(_message), ethereum.Value.fromTuple(_encPubKey)] + [ + ethereum.Value.fromTuple(_message), + ethereum.Value.fromTuple(_encPubKey), + ], ); return result[0].toBigInt(); @@ -521,12 +524,15 @@ export class MACI extends ethereum.SmartContract { try_hashMessageAndEncPubKey( _message: MACI__hashMessageAndEncPubKeyInput_messageStruct, - _encPubKey: MACI__hashMessageAndEncPubKeyInput_encPubKeyStruct + _encPubKey: MACI__hashMessageAndEncPubKeyInput_encPubKeyStruct, ): ethereum.CallResult { let result = super.tryCall( "hashMessageAndEncPubKey", "hashMessageAndEncPubKey((uint256,uint256[10]),(uint256,uint256)):(uint256)", - [ethereum.Value.fromTuple(_message), ethereum.Value.fromTuple(_encPubKey)] + [ + ethereum.Value.fromTuple(_message), + ethereum.Value.fromTuple(_encPubKey), + ], ); if (result.reverted) { return new ethereum.CallResult(); @@ -539,19 +545,19 @@ export class MACI extends ethereum.SmartContract { let result = super.call( "hashStateLeaf", "hashStateLeaf(((uint256,uint256),uint256,uint256)):(uint256)", - [ethereum.Value.fromTuple(_stateLeaf)] + [ethereum.Value.fromTuple(_stateLeaf)], ); return result[0].toBigInt(); } try_hashStateLeaf( - _stateLeaf: MACI__hashStateLeafInput_stateLeafStruct + _stateLeaf: MACI__hashStateLeafInput_stateLeafStruct, ): ethereum.CallResult { let result = super.tryCall( "hashStateLeaf", "hashStateLeaf(((uint256,uint256),uint256,uint256)):(uint256)", - [ethereum.Value.fromTuple(_stateLeaf)] + [ethereum.Value.fromTuple(_stateLeaf)], ); if (result.reverted) { return new ethereum.CallResult(); @@ -564,7 +570,7 @@ export class MACI extends ethereum.SmartContract { let result = super.call( "initialVoiceCreditProxy", "initialVoiceCreditProxy():(address)", - [] + [], ); return result[0].toAddress(); @@ -574,7 +580,7 @@ export class MACI extends ethereum.SmartContract { let result = super.tryCall( "initialVoiceCreditProxy", "initialVoiceCreditProxy():(address)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -585,7 +591,7 @@ export class MACI extends ethereum.SmartContract { mergeStateAq(_pollId: BigInt): BigInt { let result = super.call("mergeStateAq", "mergeStateAq(uint256):(uint256)", [ - ethereum.Value.fromUnsignedBigInt(_pollId) + ethereum.Value.fromUnsignedBigInt(_pollId), ]); return result[0].toBigInt(); @@ -595,7 +601,7 @@ export class MACI extends ethereum.SmartContract { let result = super.tryCall( "mergeStateAq", "mergeStateAq(uint256):(uint256)", - [ethereum.Value.fromUnsignedBigInt(_pollId)] + [ethereum.Value.fromUnsignedBigInt(_pollId)], ); if (result.reverted) { return new ethereum.CallResult(); @@ -608,7 +614,7 @@ export class MACI extends ethereum.SmartContract { let result = super.call( "messageProcessorFactory", "messageProcessorFactory():(address)", - [] + [], ); return result[0].toAddress(); @@ -618,7 +624,7 @@ export class MACI extends ethereum.SmartContract { let result = super.tryCall( "messageProcessorFactory", "messageProcessorFactory():(address)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -661,7 +667,7 @@ export class MACI extends ethereum.SmartContract { let result = super.call( "numStateLeaves", "numStateLeaves(uint256):(uint256)", - [ethereum.Value.fromUnsignedBigInt(param0)] + [ethereum.Value.fromUnsignedBigInt(param0)], ); return result[0].toBigInt(); @@ -671,7 +677,7 @@ export class MACI extends ethereum.SmartContract { let result = super.tryCall( "numStateLeaves", "numStateLeaves(uint256):(uint256)", - [ethereum.Value.fromUnsignedBigInt(param0)] + [ethereum.Value.fromUnsignedBigInt(param0)], ); if (result.reverted) { return new ethereum.CallResult(); @@ -697,41 +703,41 @@ export class MACI extends ethereum.SmartContract { padAndHashMessage( dataToPad: Array, - msgType: BigInt + msgType: BigInt, ): MACI__padAndHashMessageResult { let result = super.call( "padAndHashMessage", "padAndHashMessage(uint256[2],uint256):((uint256,uint256[10]),(uint256,uint256),uint256)", [ ethereum.Value.fromUnsignedBigIntArray(dataToPad), - ethereum.Value.fromUnsignedBigInt(msgType) - ] + ethereum.Value.fromUnsignedBigInt(msgType), + ], ); return changetype( new MACI__padAndHashMessageResult( changetype( - result[0].toTuple() + result[0].toTuple(), ), changetype( - result[1].toTuple() + result[1].toTuple(), ), - result[2].toBigInt() - ) + result[2].toBigInt(), + ), ); } try_padAndHashMessage( dataToPad: Array, - msgType: BigInt + msgType: BigInt, ): ethereum.CallResult { let result = super.tryCall( "padAndHashMessage", "padAndHashMessage(uint256[2],uint256):((uint256,uint256[10]),(uint256,uint256),uint256)", [ ethereum.Value.fromUnsignedBigIntArray(dataToPad), - ethereum.Value.fromUnsignedBigInt(msgType) - ] + ethereum.Value.fromUnsignedBigInt(msgType), + ], ); if (result.reverted) { return new ethereum.CallResult(); @@ -741,14 +747,14 @@ export class MACI extends ethereum.SmartContract { changetype( new MACI__padAndHashMessageResult( changetype( - value[0].toTuple() + value[0].toTuple(), ), changetype( - value[1].toTuple() + value[1].toTuple(), ), - value[2].toBigInt() - ) - ) + value[2].toBigInt(), + ), + ), ); } @@ -769,7 +775,7 @@ export class MACI extends ethereum.SmartContract { polls(param0: BigInt): Address { let result = super.call("polls", "polls(uint256):(address)", [ - ethereum.Value.fromUnsignedBigInt(param0) + ethereum.Value.fromUnsignedBigInt(param0), ]); return result[0].toAddress(); @@ -777,7 +783,7 @@ export class MACI extends ethereum.SmartContract { try_polls(param0: BigInt): ethereum.CallResult
{ let result = super.tryCall("polls", "polls(uint256):(address)", [ - ethereum.Value.fromUnsignedBigInt(param0) + ethereum.Value.fromUnsignedBigInt(param0), ]); if (result.reverted) { return new ethereum.CallResult(); @@ -788,7 +794,7 @@ export class MACI extends ethereum.SmartContract { sha256Hash(array: Array): BigInt { let result = super.call("sha256Hash", "sha256Hash(uint256[]):(uint256)", [ - ethereum.Value.fromUnsignedBigIntArray(array) + ethereum.Value.fromUnsignedBigIntArray(array), ]); return result[0].toBigInt(); @@ -798,7 +804,7 @@ export class MACI extends ethereum.SmartContract { let result = super.tryCall( "sha256Hash", "sha256Hash(uint256[]):(uint256)", - [ethereum.Value.fromUnsignedBigIntArray(array)] + [ethereum.Value.fromUnsignedBigIntArray(array)], ); if (result.reverted) { return new ethereum.CallResult(); @@ -811,7 +817,7 @@ export class MACI extends ethereum.SmartContract { let result = super.call( "signUpGatekeeper", "signUpGatekeeper():(address)", - [] + [], ); return result[0].toAddress(); @@ -821,7 +827,7 @@ export class MACI extends ethereum.SmartContract { let result = super.tryCall( "signUpGatekeeper", "signUpGatekeeper():(address)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -855,7 +861,7 @@ export class MACI extends ethereum.SmartContract { let result = super.tryCall( "stateTreeDepth", "stateTreeDepth():(uint8)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -874,7 +880,7 @@ export class MACI extends ethereum.SmartContract { let result = super.tryCall( "subsidyFactory", "subsidyFactory():(address)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -995,13 +1001,13 @@ export class DeployPollCall__Inputs { get _treeDepths(): DeployPollCall_treeDepthsStruct { return changetype( - this._call.inputValues[1].value.toTuple() + this._call.inputValues[1].value.toTuple(), ); } get _coordinatorPubKey(): DeployPollCall_coordinatorPubKeyStruct { return changetype( - this._call.inputValues[2].value.toTuple() + this._call.inputValues[2].value.toTuple(), ); } @@ -1027,7 +1033,7 @@ export class DeployPollCall__Outputs { get pollAddr(): DeployPollCallPollAddrStruct { return changetype( - this._call.outputValues[0].value.toTuple() + this._call.outputValues[0].value.toTuple(), ); } } @@ -1191,7 +1197,7 @@ export class SignUpCall__Inputs { get _pubKey(): SignUpCall_pubKeyStruct { return changetype( - this._call.inputValues[0].value.toTuple() + this._call.inputValues[0].value.toTuple(), ); } diff --git a/subgraph/generated/templates/OptimisticRecipientRegistry/OptimisticRecipientRegistry.ts b/subgraph/generated/templates/OptimisticRecipientRegistry/OptimisticRecipientRegistry.ts index afb85c261..80ec65e55 100644 --- a/subgraph/generated/templates/OptimisticRecipientRegistry/OptimisticRecipientRegistry.ts +++ b/subgraph/generated/templates/OptimisticRecipientRegistry/OptimisticRecipientRegistry.ts @@ -7,7 +7,7 @@ import { Entity, Bytes, Address, - BigInt + BigInt, } from "@graphprotocol/graph-ts"; export class OwnershipTransferred extends ethereum.Event { @@ -104,7 +104,7 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { static bind(address: Address): OptimisticRecipientRegistry { return new OptimisticRecipientRegistry( "OptimisticRecipientRegistry", - address + address, ); } @@ -127,7 +127,7 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { let result = super.call( "challengePeriodDuration", "challengePeriodDuration():(uint256)", - [] + [], ); return result[0].toBigInt(); @@ -137,7 +137,7 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { let result = super.tryCall( "challengePeriodDuration", "challengePeriodDuration():(uint256)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -152,8 +152,8 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { "challengeRequest(bytes32,address):(bool)", [ ethereum.Value.fromFixedBytes(_recipientId), - ethereum.Value.fromAddress(_beneficiary) - ] + ethereum.Value.fromAddress(_beneficiary), + ], ); return result[0].toBoolean(); @@ -161,15 +161,15 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { try_challengeRequest( _recipientId: Bytes, - _beneficiary: Address + _beneficiary: Address, ): ethereum.CallResult { let result = super.tryCall( "challengeRequest", "challengeRequest(bytes32,address):(bool)", [ ethereum.Value.fromFixedBytes(_recipientId), - ethereum.Value.fromAddress(_beneficiary) - ] + ethereum.Value.fromAddress(_beneficiary), + ], ); if (result.reverted) { return new ethereum.CallResult(); @@ -197,7 +197,7 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { let result = super.call( "executeRequest", "executeRequest(bytes32):(bool)", - [ethereum.Value.fromFixedBytes(_recipientId)] + [ethereum.Value.fromFixedBytes(_recipientId)], ); return result[0].toBoolean(); @@ -207,7 +207,7 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { let result = super.tryCall( "executeRequest", "executeRequest(bytes32):(bool)", - [ethereum.Value.fromFixedBytes(_recipientId)] + [ethereum.Value.fromFixedBytes(_recipientId)], ); if (result.reverted) { return new ethereum.CallResult(); @@ -219,7 +219,7 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { getRecipientAddress( _index: BigInt, _startTime: BigInt, - _endTime: BigInt + _endTime: BigInt, ): Address { let result = super.call( "getRecipientAddress", @@ -227,8 +227,8 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { [ ethereum.Value.fromUnsignedBigInt(_index), ethereum.Value.fromUnsignedBigInt(_startTime), - ethereum.Value.fromUnsignedBigInt(_endTime) - ] + ethereum.Value.fromUnsignedBigInt(_endTime), + ], ); return result[0].toAddress(); @@ -237,7 +237,7 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { try_getRecipientAddress( _index: BigInt, _startTime: BigInt, - _endTime: BigInt + _endTime: BigInt, ): ethereum.CallResult
{ let result = super.tryCall( "getRecipientAddress", @@ -245,8 +245,8 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { [ ethereum.Value.fromUnsignedBigInt(_index), ethereum.Value.fromUnsignedBigInt(_startTime), - ethereum.Value.fromUnsignedBigInt(_endTime) - ] + ethereum.Value.fromUnsignedBigInt(_endTime), + ], ); if (result.reverted) { return new ethereum.CallResult(); @@ -259,7 +259,7 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { let result = super.call( "getRecipientCount", "getRecipientCount():(uint256)", - [] + [], ); return result[0].toBigInt(); @@ -269,7 +269,7 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { let result = super.tryCall( "getRecipientCount", "getRecipientCount():(uint256)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -288,7 +288,7 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { let result = super.tryCall( "maxRecipients", "maxRecipients():(uint256)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -316,7 +316,7 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { let result = super.call( "setMaxRecipients", "setMaxRecipients(uint256):(bool)", - [ethereum.Value.fromUnsignedBigInt(_maxRecipients)] + [ethereum.Value.fromUnsignedBigInt(_maxRecipients)], ); return result[0].toBoolean(); @@ -326,7 +326,7 @@ export class OptimisticRecipientRegistry extends ethereum.SmartContract { let result = super.tryCall( "setMaxRecipients", "setMaxRecipients(uint256):(bool)", - [ethereum.Value.fromUnsignedBigInt(_maxRecipients)] + [ethereum.Value.fromUnsignedBigInt(_maxRecipients)], ); if (result.reverted) { return new ethereum.CallResult(); diff --git a/subgraph/generated/templates/Poll/FundingRound.ts b/subgraph/generated/templates/Poll/FundingRound.ts index ac1673f3a..b058ff52f 100644 --- a/subgraph/generated/templates/Poll/FundingRound.ts +++ b/subgraph/generated/templates/Poll/FundingRound.ts @@ -7,7 +7,7 @@ import { Entity, Bytes, Address, - BigInt + BigInt, } from "@graphprotocol/graph-ts"; export class Contribution extends ethereum.Event { @@ -258,7 +258,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.call( "MESSAGE_DATA_LENGTH", "MESSAGE_DATA_LENGTH():(uint8)", - [] + [], ); return result[0].toI32(); @@ -268,7 +268,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.tryCall( "MESSAGE_DATA_LENGTH", "MESSAGE_DATA_LENGTH():(uint8)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -310,7 +310,7 @@ export class FundingRound extends ethereum.SmartContract { calcAlpha( _budget: BigInt, _totalVotesSquares: BigInt, - _totalSpent: BigInt + _totalSpent: BigInt, ): BigInt { let result = super.call( "calcAlpha", @@ -318,8 +318,8 @@ export class FundingRound extends ethereum.SmartContract { [ ethereum.Value.fromUnsignedBigInt(_budget), ethereum.Value.fromUnsignedBigInt(_totalVotesSquares), - ethereum.Value.fromUnsignedBigInt(_totalSpent) - ] + ethereum.Value.fromUnsignedBigInt(_totalSpent), + ], ); return result[0].toBigInt(); @@ -328,7 +328,7 @@ export class FundingRound extends ethereum.SmartContract { try_calcAlpha( _budget: BigInt, _totalVotesSquares: BigInt, - _totalSpent: BigInt + _totalSpent: BigInt, ): ethereum.CallResult { let result = super.tryCall( "calcAlpha", @@ -336,8 +336,8 @@ export class FundingRound extends ethereum.SmartContract { [ ethereum.Value.fromUnsignedBigInt(_budget), ethereum.Value.fromUnsignedBigInt(_totalVotesSquares), - ethereum.Value.fromUnsignedBigInt(_totalSpent) - ] + ethereum.Value.fromUnsignedBigInt(_totalSpent), + ], ); if (result.reverted) { return new ethereum.CallResult(); @@ -350,7 +350,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.call( "contributorCount", "contributorCount():(uint256)", - [] + [], ); return result[0].toBigInt(); @@ -360,7 +360,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.tryCall( "contributorCount", "contributorCount():(uint256)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -373,22 +373,22 @@ export class FundingRound extends ethereum.SmartContract { let result = super.call( "contributors", "contributors(address):(uint256,bool)", - [ethereum.Value.fromAddress(param0)] + [ethereum.Value.fromAddress(param0)], ); return new FundingRound__contributorsResult( result[0].toBigInt(), - result[1].toBoolean() + result[1].toBoolean(), ); } try_contributors( - param0: Address + param0: Address, ): ethereum.CallResult { let result = super.tryCall( "contributors", "contributors(address):(uint256,bool)", - [ethereum.Value.fromAddress(param0)] + [ethereum.Value.fromAddress(param0)], ); if (result.reverted) { return new ethereum.CallResult(); @@ -397,8 +397,8 @@ export class FundingRound extends ethereum.SmartContract { return ethereum.CallResult.fromValue( new FundingRound__contributorsResult( value[0].toBigInt(), - value[1].toBoolean() - ) + value[1].toBoolean(), + ), ); } @@ -423,8 +423,8 @@ export class FundingRound extends ethereum.SmartContract { "getAllocatedAmount(uint256,uint256):(uint256)", [ ethereum.Value.fromUnsignedBigInt(_tallyResult), - ethereum.Value.fromUnsignedBigInt(_spent) - ] + ethereum.Value.fromUnsignedBigInt(_spent), + ], ); return result[0].toBigInt(); @@ -432,15 +432,15 @@ export class FundingRound extends ethereum.SmartContract { try_getAllocatedAmount( _tallyResult: BigInt, - _spent: BigInt + _spent: BigInt, ): ethereum.CallResult { let result = super.tryCall( "getAllocatedAmount", "getAllocatedAmount(uint256,uint256):(uint256)", [ ethereum.Value.fromUnsignedBigInt(_tallyResult), - ethereum.Value.fromUnsignedBigInt(_spent) - ] + ethereum.Value.fromUnsignedBigInt(_spent), + ], ); if (result.reverted) { return new ethereum.CallResult(); @@ -453,7 +453,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.call( "getVoiceCredits", "getVoiceCredits(address,bytes):(uint256)", - [ethereum.Value.fromAddress(param0), ethereum.Value.fromBytes(_data)] + [ethereum.Value.fromAddress(param0), ethereum.Value.fromBytes(_data)], ); return result[0].toBigInt(); @@ -461,12 +461,12 @@ export class FundingRound extends ethereum.SmartContract { try_getVoiceCredits( param0: Address, - _data: Bytes + _data: Bytes, ): ethereum.CallResult { let result = super.tryCall( "getVoiceCredits", "getVoiceCredits(address,bytes):(uint256)", - [ethereum.Value.fromAddress(param0), ethereum.Value.fromBytes(_data)] + [ethereum.Value.fromAddress(param0), ethereum.Value.fromBytes(_data)], ); if (result.reverted) { return new ethereum.CallResult(); @@ -477,7 +477,7 @@ export class FundingRound extends ethereum.SmartContract { isAddressZero(addressValue: Address): boolean { let result = super.call("isAddressZero", "isAddressZero(address):(bool)", [ - ethereum.Value.fromAddress(addressValue) + ethereum.Value.fromAddress(addressValue), ]); return result[0].toBoolean(); @@ -487,7 +487,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.tryCall( "isAddressZero", "isAddressZero(address):(bool)", - [ethereum.Value.fromAddress(addressValue)] + [ethereum.Value.fromAddress(addressValue)], ); if (result.reverted) { return new ethereum.CallResult(); @@ -545,7 +545,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.call( "matchingPoolSize", "matchingPoolSize():(uint256)", - [] + [], ); return result[0].toBigInt(); @@ -555,7 +555,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.tryCall( "matchingPoolSize", "matchingPoolSize():(uint256)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -628,7 +628,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.call( "recipientRegistry", "recipientRegistry():(address)", - [] + [], ); return result[0].toAddress(); @@ -638,7 +638,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.tryCall( "recipientRegistry", "recipientRegistry():(address)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -651,23 +651,23 @@ export class FundingRound extends ethereum.SmartContract { let result = super.call( "recipients", "recipients(uint256):(bool,bool,uint256)", - [ethereum.Value.fromUnsignedBigInt(param0)] + [ethereum.Value.fromUnsignedBigInt(param0)], ); return new FundingRound__recipientsResult( result[0].toBoolean(), result[1].toBoolean(), - result[2].toBigInt() + result[2].toBigInt(), ); } try_recipients( - param0: BigInt + param0: BigInt, ): ethereum.CallResult { let result = super.tryCall( "recipients", "recipients(uint256):(bool,bool,uint256)", - [ethereum.Value.fromUnsignedBigInt(param0)] + [ethereum.Value.fromUnsignedBigInt(param0)], ); if (result.reverted) { return new ethereum.CallResult(); @@ -677,8 +677,8 @@ export class FundingRound extends ethereum.SmartContract { new FundingRound__recipientsResult( value[0].toBoolean(), value[1].toBoolean(), - value[2].toBigInt() - ) + value[2].toBigInt(), + ), ); } @@ -746,7 +746,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.call( "totalTallyResults", "totalTallyResults():(uint256)", - [] + [], ); return result[0].toBigInt(); @@ -756,7 +756,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.tryCall( "totalTallyResults", "totalTallyResults():(uint256)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -784,7 +784,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.call( "totalVotesSquares", "totalVotesSquares():(uint256)", - [] + [], ); return result[0].toBigInt(); @@ -794,7 +794,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.tryCall( "totalVotesSquares", "totalVotesSquares():(uint256)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -822,7 +822,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.call( "voiceCreditFactor", "voiceCreditFactor():(uint256)", - [] + [], ); return result[0].toBigInt(); @@ -832,7 +832,7 @@ export class FundingRound extends ethereum.SmartContract { let result = super.tryCall( "voiceCreditFactor", "voiceCreditFactor():(uint256)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -845,19 +845,19 @@ export class FundingRound extends ethereum.SmartContract { let result = super.call( "withdrawContributions", "withdrawContributions(address[]):(bool[])", - [ethereum.Value.fromAddressArray(_contributors)] + [ethereum.Value.fromAddressArray(_contributors)], ); return result[0].toBooleanArray(); } try_withdrawContributions( - _contributors: Array
+ _contributors: Array
, ): ethereum.CallResult> { let result = super.tryCall( "withdrawContributions", "withdrawContributions(address[]):(bool[])", - [ethereum.Value.fromAddressArray(_contributors)] + [ethereum.Value.fromAddressArray(_contributors)], ); if (result.reverted) { return new ethereum.CallResult(); @@ -1004,7 +1004,7 @@ export class ContributeCall__Inputs { get pubKey(): ContributeCallPubKeyStruct { return changetype( - this._call.inputValues[0].value.toTuple() + this._call.inputValues[0].value.toTuple(), ); } @@ -1212,7 +1212,7 @@ export class SetMaciCall__Inputs { get _pollContracts(): SetMaciCall_pollContractsStruct { return changetype( - this._call.inputValues[1].value.toTuple() + this._call.inputValues[1].value.toTuple(), ); } } @@ -1291,15 +1291,11 @@ export class SubmitMessageBatchCall__Inputs { } get _messages(): Array { - return this._call.inputValues[0].value.toTupleArray< - SubmitMessageBatchCall_messagesStruct - >(); + return this._call.inputValues[0].value.toTupleArray(); } get _encPubKeys(): Array { - return this._call.inputValues[1].value.toTupleArray< - SubmitMessageBatchCall_encPubKeysStruct - >(); + return this._call.inputValues[1].value.toTupleArray(); } } diff --git a/subgraph/generated/templates/Poll/Poll.ts b/subgraph/generated/templates/Poll/Poll.ts index d1c676517..0ca5abbe7 100644 --- a/subgraph/generated/templates/Poll/Poll.ts +++ b/subgraph/generated/templates/Poll/Poll.ts @@ -7,7 +7,7 @@ import { Entity, Bytes, Address, - BigInt + BigInt, } from "@graphprotocol/graph-ts"; export class MergeMaciStateAq extends ethereum.Event { @@ -123,13 +123,13 @@ export class PublishMessage__Params { get _message(): PublishMessage_messageStruct { return changetype( - this._event.parameters[0].value.toTuple() + this._event.parameters[0].value.toTuple(), ); } get _encPubKey(): PublishMessage_encPubKeyStruct { return changetype( - this._event.parameters[1].value.toTuple() + this._event.parameters[1].value.toTuple(), ); } } @@ -169,7 +169,7 @@ export class TopupMessage__Params { get _message(): TopupMessage_messageStruct { return changetype( - this._event.parameters[0].value.toTuple() + this._event.parameters[0].value.toTuple(), ); } } @@ -289,7 +289,7 @@ export class Poll__hashMessageAndEncPubKeyInput_encPubKeyStruct extends ethereum export class Poll__hashStateLeafInput_stateLeafStruct extends ethereum.Tuple { get pubKey(): Poll__hashStateLeafInput_stateLeafPubKeyStruct { return changetype( - this[0].toTuple() + this[0].toTuple(), ); } @@ -390,7 +390,7 @@ export class Poll__padAndHashMessageResult { constructor( value0: Poll__padAndHashMessageResultMessageStruct, value1: Poll__padAndHashMessageResultPadKeyStruct, - value2: BigInt + value2: BigInt, ) { this.value0 = value0; this.value1 = value1; @@ -435,19 +435,19 @@ export class Poll__treeDepthsResult { let map = new TypedMap(); map.set( "value0", - ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(this.value0)) + ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(this.value0)), ); map.set( "value1", - ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(this.value1)) + ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(this.value1)), ); map.set( "value2", - ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(this.value2)) + ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(this.value2)), ); map.set( "value3", - ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(this.value3)) + ethereum.Value.fromUnsignedBigInt(BigInt.fromI32(this.value3)), ); return map; } @@ -478,7 +478,7 @@ export class Poll extends ethereum.SmartContract { let result = super.call( "MESSAGE_DATA_LENGTH", "MESSAGE_DATA_LENGTH():(uint8)", - [] + [], ); return result[0].toI32(); @@ -488,7 +488,7 @@ export class Poll extends ethereum.SmartContract { let result = super.tryCall( "MESSAGE_DATA_LENGTH", "MESSAGE_DATA_LENGTH():(uint8)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -501,12 +501,12 @@ export class Poll extends ethereum.SmartContract { let result = super.call( "coordinatorPubKey", "coordinatorPubKey():(uint256,uint256)", - [] + [], ); return new Poll__coordinatorPubKeyResult( result[0].toBigInt(), - result[1].toBigInt() + result[1].toBigInt(), ); } @@ -514,7 +514,7 @@ export class Poll extends ethereum.SmartContract { let result = super.tryCall( "coordinatorPubKey", "coordinatorPubKey():(uint256,uint256)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -523,8 +523,8 @@ export class Poll extends ethereum.SmartContract { return ethereum.CallResult.fromValue( new Poll__coordinatorPubKeyResult( value[0].toBigInt(), - value[1].toBigInt() - ) + value[1].toBigInt(), + ), ); } @@ -532,7 +532,7 @@ export class Poll extends ethereum.SmartContract { let result = super.call( "coordinatorPubKeyHash", "coordinatorPubKeyHash():(uint256)", - [] + [], ); return result[0].toBigInt(); @@ -542,7 +542,7 @@ export class Poll extends ethereum.SmartContract { let result = super.tryCall( "coordinatorPubKeyHash", "coordinatorPubKeyHash():(uint256)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -555,7 +555,7 @@ export class Poll extends ethereum.SmartContract { let result = super.call( "currentSbCommitment", "currentSbCommitment():(uint256)", - [] + [], ); return result[0].toBigInt(); @@ -565,7 +565,7 @@ export class Poll extends ethereum.SmartContract { let result = super.tryCall( "currentSbCommitment", "currentSbCommitment():(uint256)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -578,13 +578,13 @@ export class Poll extends ethereum.SmartContract { let result = super.call( "extContracts", "extContracts():(address,address,address)", - [] + [], ); return new Poll__extContractsResult( result[0].toAddress(), result[1].toAddress(), - result[2].toAddress() + result[2].toAddress(), ); } @@ -592,7 +592,7 @@ export class Poll extends ethereum.SmartContract { let result = super.tryCall( "extContracts", "extContracts():(address,address,address)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -602,8 +602,8 @@ export class Poll extends ethereum.SmartContract { new Poll__extContractsResult( value[0].toAddress(), value[1].toAddress(), - value[2].toAddress() - ) + value[2].toAddress(), + ), ); } @@ -611,22 +611,20 @@ export class Poll extends ethereum.SmartContract { let result = super.call( "getDeployTimeAndDuration", "getDeployTimeAndDuration():(uint256,uint256)", - [] + [], ); return new Poll__getDeployTimeAndDurationResult( result[0].toBigInt(), - result[1].toBigInt() + result[1].toBigInt(), ); } - try_getDeployTimeAndDuration(): ethereum.CallResult< - Poll__getDeployTimeAndDurationResult - > { + try_getDeployTimeAndDuration(): ethereum.CallResult { let result = super.tryCall( "getDeployTimeAndDuration", "getDeployTimeAndDuration():(uint256,uint256)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -635,14 +633,14 @@ export class Poll extends ethereum.SmartContract { return ethereum.CallResult.fromValue( new Poll__getDeployTimeAndDurationResult( value[0].toBigInt(), - value[1].toBigInt() - ) + value[1].toBigInt(), + ), ); } hash2(array: Array): BigInt { let result = super.call("hash2", "hash2(uint256[2]):(uint256)", [ - ethereum.Value.fromUnsignedBigIntArray(array) + ethereum.Value.fromUnsignedBigIntArray(array), ]); return result[0].toBigInt(); @@ -650,7 +648,7 @@ export class Poll extends ethereum.SmartContract { try_hash2(array: Array): ethereum.CallResult { let result = super.tryCall("hash2", "hash2(uint256[2]):(uint256)", [ - ethereum.Value.fromUnsignedBigIntArray(array) + ethereum.Value.fromUnsignedBigIntArray(array), ]); if (result.reverted) { return new ethereum.CallResult(); @@ -661,7 +659,7 @@ export class Poll extends ethereum.SmartContract { hash3(array: Array): BigInt { let result = super.call("hash3", "hash3(uint256[3]):(uint256)", [ - ethereum.Value.fromUnsignedBigIntArray(array) + ethereum.Value.fromUnsignedBigIntArray(array), ]); return result[0].toBigInt(); @@ -669,7 +667,7 @@ export class Poll extends ethereum.SmartContract { try_hash3(array: Array): ethereum.CallResult { let result = super.tryCall("hash3", "hash3(uint256[3]):(uint256)", [ - ethereum.Value.fromUnsignedBigIntArray(array) + ethereum.Value.fromUnsignedBigIntArray(array), ]); if (result.reverted) { return new ethereum.CallResult(); @@ -680,7 +678,7 @@ export class Poll extends ethereum.SmartContract { hash4(array: Array): BigInt { let result = super.call("hash4", "hash4(uint256[4]):(uint256)", [ - ethereum.Value.fromUnsignedBigIntArray(array) + ethereum.Value.fromUnsignedBigIntArray(array), ]); return result[0].toBigInt(); @@ -688,7 +686,7 @@ export class Poll extends ethereum.SmartContract { try_hash4(array: Array): ethereum.CallResult { let result = super.tryCall("hash4", "hash4(uint256[4]):(uint256)", [ - ethereum.Value.fromUnsignedBigIntArray(array) + ethereum.Value.fromUnsignedBigIntArray(array), ]); if (result.reverted) { return new ethereum.CallResult(); @@ -699,7 +697,7 @@ export class Poll extends ethereum.SmartContract { hash5(array: Array): BigInt { let result = super.call("hash5", "hash5(uint256[5]):(uint256)", [ - ethereum.Value.fromUnsignedBigIntArray(array) + ethereum.Value.fromUnsignedBigIntArray(array), ]); return result[0].toBigInt(); @@ -707,7 +705,7 @@ export class Poll extends ethereum.SmartContract { try_hash5(array: Array): ethereum.CallResult { let result = super.tryCall("hash5", "hash5(uint256[5]):(uint256)", [ - ethereum.Value.fromUnsignedBigIntArray(array) + ethereum.Value.fromUnsignedBigIntArray(array), ]); if (result.reverted) { return new ethereum.CallResult(); @@ -722,8 +720,8 @@ export class Poll extends ethereum.SmartContract { "hashLeftRight(uint256,uint256):(uint256)", [ ethereum.Value.fromUnsignedBigInt(left), - ethereum.Value.fromUnsignedBigInt(right) - ] + ethereum.Value.fromUnsignedBigInt(right), + ], ); return result[0].toBigInt(); @@ -735,8 +733,8 @@ export class Poll extends ethereum.SmartContract { "hashLeftRight(uint256,uint256):(uint256)", [ ethereum.Value.fromUnsignedBigInt(left), - ethereum.Value.fromUnsignedBigInt(right) - ] + ethereum.Value.fromUnsignedBigInt(right), + ], ); if (result.reverted) { return new ethereum.CallResult(); @@ -747,12 +745,15 @@ export class Poll extends ethereum.SmartContract { hashMessageAndEncPubKey( _message: Poll__hashMessageAndEncPubKeyInput_messageStruct, - _encPubKey: Poll__hashMessageAndEncPubKeyInput_encPubKeyStruct + _encPubKey: Poll__hashMessageAndEncPubKeyInput_encPubKeyStruct, ): BigInt { let result = super.call( "hashMessageAndEncPubKey", "hashMessageAndEncPubKey((uint256,uint256[10]),(uint256,uint256)):(uint256)", - [ethereum.Value.fromTuple(_message), ethereum.Value.fromTuple(_encPubKey)] + [ + ethereum.Value.fromTuple(_message), + ethereum.Value.fromTuple(_encPubKey), + ], ); return result[0].toBigInt(); @@ -760,12 +761,15 @@ export class Poll extends ethereum.SmartContract { try_hashMessageAndEncPubKey( _message: Poll__hashMessageAndEncPubKeyInput_messageStruct, - _encPubKey: Poll__hashMessageAndEncPubKeyInput_encPubKeyStruct + _encPubKey: Poll__hashMessageAndEncPubKeyInput_encPubKeyStruct, ): ethereum.CallResult { let result = super.tryCall( "hashMessageAndEncPubKey", "hashMessageAndEncPubKey((uint256,uint256[10]),(uint256,uint256)):(uint256)", - [ethereum.Value.fromTuple(_message), ethereum.Value.fromTuple(_encPubKey)] + [ + ethereum.Value.fromTuple(_message), + ethereum.Value.fromTuple(_encPubKey), + ], ); if (result.reverted) { return new ethereum.CallResult(); @@ -778,19 +782,19 @@ export class Poll extends ethereum.SmartContract { let result = super.call( "hashStateLeaf", "hashStateLeaf(((uint256,uint256),uint256,uint256)):(uint256)", - [ethereum.Value.fromTuple(_stateLeaf)] + [ethereum.Value.fromTuple(_stateLeaf)], ); return result[0].toBigInt(); } try_hashStateLeaf( - _stateLeaf: Poll__hashStateLeafInput_stateLeafStruct + _stateLeaf: Poll__hashStateLeafInput_stateLeafStruct, ): ethereum.CallResult { let result = super.tryCall( "hashStateLeaf", "hashStateLeaf(((uint256,uint256),uint256,uint256)):(uint256)", - [ethereum.Value.fromTuple(_stateLeaf)] + [ethereum.Value.fromTuple(_stateLeaf)], ); if (result.reverted) { return new ethereum.CallResult(); @@ -804,7 +808,7 @@ export class Poll extends ethereum.SmartContract { return new Poll__maxValuesResult( result[0].toBigInt(), - result[1].toBigInt() + result[1].toBigInt(), ); } @@ -812,14 +816,14 @@ export class Poll extends ethereum.SmartContract { let result = super.tryCall( "maxValues", "maxValues():(uint256,uint256)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); } let value = result.value; return ethereum.CallResult.fromValue( - new Poll__maxValuesResult(value[0].toBigInt(), value[1].toBigInt()) + new Poll__maxValuesResult(value[0].toBigInt(), value[1].toBigInt()), ); } @@ -827,7 +831,7 @@ export class Poll extends ethereum.SmartContract { let result = super.call( "mergedStateRoot", "mergedStateRoot():(uint256)", - [] + [], ); return result[0].toBigInt(); @@ -837,7 +841,7 @@ export class Poll extends ethereum.SmartContract { let result = super.tryCall( "mergedStateRoot", "mergedStateRoot():(uint256)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -865,22 +869,20 @@ export class Poll extends ethereum.SmartContract { let result = super.call( "numSignUpsAndMessages", "numSignUpsAndMessages():(uint256,uint256)", - [] + [], ); return new Poll__numSignUpsAndMessagesResult( result[0].toBigInt(), - result[1].toBigInt() + result[1].toBigInt(), ); } - try_numSignUpsAndMessages(): ethereum.CallResult< - Poll__numSignUpsAndMessagesResult - > { + try_numSignUpsAndMessages(): ethereum.CallResult { let result = super.tryCall( "numSignUpsAndMessages", "numSignUpsAndMessages():(uint256,uint256)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -889,8 +891,8 @@ export class Poll extends ethereum.SmartContract { return ethereum.CallResult.fromValue( new Poll__numSignUpsAndMessagesResult( value[0].toBigInt(), - value[1].toBigInt() - ) + value[1].toBigInt(), + ), ); } @@ -926,41 +928,41 @@ export class Poll extends ethereum.SmartContract { padAndHashMessage( dataToPad: Array, - msgType: BigInt + msgType: BigInt, ): Poll__padAndHashMessageResult { let result = super.call( "padAndHashMessage", "padAndHashMessage(uint256[2],uint256):((uint256,uint256[10]),(uint256,uint256),uint256)", [ ethereum.Value.fromUnsignedBigIntArray(dataToPad), - ethereum.Value.fromUnsignedBigInt(msgType) - ] + ethereum.Value.fromUnsignedBigInt(msgType), + ], ); return changetype( new Poll__padAndHashMessageResult( changetype( - result[0].toTuple() + result[0].toTuple(), ), changetype( - result[1].toTuple() + result[1].toTuple(), ), - result[2].toBigInt() - ) + result[2].toBigInt(), + ), ); } try_padAndHashMessage( dataToPad: Array, - msgType: BigInt + msgType: BigInt, ): ethereum.CallResult { let result = super.tryCall( "padAndHashMessage", "padAndHashMessage(uint256[2],uint256):((uint256,uint256[10]),(uint256,uint256),uint256)", [ ethereum.Value.fromUnsignedBigIntArray(dataToPad), - ethereum.Value.fromUnsignedBigInt(msgType) - ] + ethereum.Value.fromUnsignedBigInt(msgType), + ], ); if (result.reverted) { return new ethereum.CallResult(); @@ -970,20 +972,20 @@ export class Poll extends ethereum.SmartContract { changetype( new Poll__padAndHashMessageResult( changetype( - value[0].toTuple() + value[0].toTuple(), ), changetype( - value[1].toTuple() + value[1].toTuple(), ), - value[2].toBigInt() - ) - ) + value[2].toBigInt(), + ), + ), ); } sha256Hash(array: Array): BigInt { let result = super.call("sha256Hash", "sha256Hash(uint256[]):(uint256)", [ - ethereum.Value.fromUnsignedBigIntArray(array) + ethereum.Value.fromUnsignedBigIntArray(array), ]); return result[0].toBigInt(); @@ -993,7 +995,7 @@ export class Poll extends ethereum.SmartContract { let result = super.tryCall( "sha256Hash", "sha256Hash(uint256[]):(uint256)", - [ethereum.Value.fromUnsignedBigIntArray(array)] + [ethereum.Value.fromUnsignedBigIntArray(array)], ); if (result.reverted) { return new ethereum.CallResult(); @@ -1021,14 +1023,14 @@ export class Poll extends ethereum.SmartContract { let result = super.call( "treeDepths", "treeDepths():(uint8,uint8,uint8,uint8)", - [] + [], ); return new Poll__treeDepthsResult( result[0].toI32(), result[1].toI32(), result[2].toI32(), - result[3].toI32() + result[3].toI32(), ); } @@ -1036,7 +1038,7 @@ export class Poll extends ethereum.SmartContract { let result = super.tryCall( "treeDepths", "treeDepths():(uint8,uint8,uint8,uint8)", - [] + [], ); if (result.reverted) { return new ethereum.CallResult(); @@ -1047,8 +1049,8 @@ export class Poll extends ethereum.SmartContract { value[0].toI32(), value[1].toI32(), value[2].toI32(), - value[3].toI32() - ) + value[3].toI32(), + ), ); } } @@ -1076,25 +1078,25 @@ export class ConstructorCall__Inputs { get _maxValues(): ConstructorCall_maxValuesStruct { return changetype( - this._call.inputValues[1].value.toTuple() + this._call.inputValues[1].value.toTuple(), ); } get _treeDepths(): ConstructorCall_treeDepthsStruct { return changetype( - this._call.inputValues[2].value.toTuple() + this._call.inputValues[2].value.toTuple(), ); } get _coordinatorPubKey(): ConstructorCall_coordinatorPubKeyStruct { return changetype( - this._call.inputValues[3].value.toTuple() + this._call.inputValues[3].value.toTuple(), ); } get _extContracts(): ConstructorCall_extContractsStruct { return changetype( - this._call.inputValues[4].value.toTuple() + this._call.inputValues[4].value.toTuple(), ); } } @@ -1324,13 +1326,13 @@ export class PublishMessageCall__Inputs { get _message(): PublishMessageCall_messageStruct { return changetype( - this._call.inputValues[0].value.toTuple() + this._call.inputValues[0].value.toTuple(), ); } get _encPubKey(): PublishMessageCall_encPubKeyStruct { return changetype( - this._call.inputValues[1].value.toTuple() + this._call.inputValues[1].value.toTuple(), ); } } diff --git a/subgraph/package.json b/subgraph/package.json index 1efeb5db7..9d391ce19 100644 --- a/subgraph/package.json +++ b/subgraph/package.json @@ -30,8 +30,8 @@ "gen-uml": "graphqlviz https://api.thegraph.com/subgraphs/name/clrfund/clrfund | dot -Tpng -o subgraphUML.png" }, "dependencies": { - "@graphprotocol/graph-cli": "^0.46.1", - "@graphprotocol/graph-ts": "^0.29.3" + "@graphprotocol/graph-cli": "^0.68.1", + "@graphprotocol/graph-ts": "^0.33.0" }, "devDependencies": { "@typescript-eslint/eslint-plugin": "^5.44.0", diff --git a/vue-app/src/utils/chains.ts b/vue-app/src/utils/chains.ts index 83c78ccda..b84942d8b 100644 --- a/vue-app/src/utils/chains.ts +++ b/vue-app/src/utils/chains.ts @@ -7,6 +7,7 @@ export enum ChainId { ARBITRUM_GOERLI = 421613, ARBITRUM_SEPOLIA = 421614, OPTIMISM = 10, + OPTIMISM_SEPOLIA = 11155420, XDAI = 100, POLYGON = 137, } @@ -110,6 +111,17 @@ export const CHAIN_INFO: ChainInfo = { rpcUrl: 'https://mainnet.optimism.io', bridge: 'https://gateway.optimism.io', }, + [ChainId.OPTIMISM_SEPOLIA]: { + label: 'Optimism Sepolia', + currency: 'OETH', + logo: 'optimism.svg', + isLayer2: true, + explorer: 'https://sepolia-optimism.etherscan.io', + explorerLogo: 'optimism.svg', + explorerLabel: 'Etherscan', + rpcUrl: 'https://sepolia.optimism.io', + bridge: 'https://gateway.optimism.io', + }, [ChainId.XDAI]: { label: 'xDai', currency: 'xDai', diff --git a/yarn.lock b/yarn.lock index 6f1154d6c..a4fe2aaab 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1397,13 +1397,15 @@ resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.2.1.tgz#16308cea045f0fc777b6ff20a9f25474dd8293d2" integrity sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q== -"@graphprotocol/graph-cli@^0.46.1": - version "0.46.1" - resolved "https://registry.yarnpkg.com/@graphprotocol/graph-cli/-/graph-cli-0.46.1.tgz#9e63bcc1bc085abab804862ecb25e689ac2077fd" - integrity sha512-594BiH2m9gThP1xdvxguVzvVlOb1KzJyVdh2F4dV78NPfMRFY2fe1nakmadKcewc72VVLXNgfdBu/J4IPfo0eg== +"@graphprotocol/graph-cli@^0.68.1": + version "0.68.1" + resolved "https://registry.yarnpkg.com/@graphprotocol/graph-cli/-/graph-cli-0.68.1.tgz#bab47ffda5a81f8874bf0120fe831e80c3348b9a" + integrity sha512-4jE/wISHuRDcN/xlcXAKj6u2ABd4uy/iScmXndpsr4UKPRx13fFP7uL67U69lsm02t8WEY39TnPjsszR+GbyVA== dependencies: "@float-capital/float-subgraph-uncrashable" "^0.0.0-alpha.4" - "@oclif/core" "2.8.0" + "@oclif/core" "2.8.6" + "@oclif/plugin-autocomplete" "^2.3.6" + "@oclif/plugin-not-found" "^2.4.0" "@whatwg-node/fetch" "^0.8.4" assemblyscript "0.19.23" binary-install-raw "0.0.13" @@ -1413,26 +1415,25 @@ docker-compose "0.23.19" dockerode "2.5.8" fs-extra "9.1.0" - glob "9.3.4" - gluegun "https://github.com/edgeandnode/gluegun#v4.3.1-pin-colors-dep" + glob "9.3.5" + gluegun "5.1.6" graphql "15.5.0" immutable "4.2.1" ipfs-http-client "55.0.0" jayson "4.0.0" js-yaml "3.14.1" - prettier "1.19.1" - request "2.88.2" - semver "7.3.8" + prettier "3.0.3" + semver "7.4.0" sync-request "6.1.0" tmp-promise "3.0.3" web3-eth-abi "1.7.0" which "2.0.2" yaml "1.10.2" -"@graphprotocol/graph-ts@^0.29.3": - version "0.29.3" - resolved "https://registry.yarnpkg.com/@graphprotocol/graph-ts/-/graph-ts-0.29.3.tgz#f0a664790e966f5fb9bce317a8861e84ec1f3394" - integrity sha512-FXBLGlunOSwjiUXYEz1J9J/I2D/myldyib/9v0R+gn/NJaYqUkXD39UmIuRxqj9cBzB/FYojHzoHidIG5nYZDw== +"@graphprotocol/graph-ts@^0.33.0": + version "0.33.0" + resolved "https://registry.yarnpkg.com/@graphprotocol/graph-ts/-/graph-ts-0.33.0.tgz#b918e698f31b31eb1f419f97a595bb60c61e01fc" + integrity sha512-HBUVblHUdjQZ/MEjjYPzVgmh+SiuF9VV0D8KubYfFAtzkqpVJlvdyk+RZTAJUiu8hpyYy0EVIcAnLEPtKlwMGQ== dependencies: assemblyscript "0.19.10" @@ -3063,10 +3064,10 @@ ganache-core "^2.7.0" ts-interface-checker "^0.1.9" -"@oclif/core@2.8.0": - version "2.8.0" - resolved "https://registry.yarnpkg.com/@oclif/core/-/core-2.8.0.tgz#4948de3168804169fa68895af8ec4853f332b307" - integrity sha512-A2wHItFrD/WOw5bJ6Mtv9MD7If0bsKNR0pwEY0me+fo4HSXlJOtgYGqmzb8t8akX3DUUT7XsjPajsoHLkIJyvg== +"@oclif/core@2.8.6": + version "2.8.6" + resolved "https://registry.yarnpkg.com/@oclif/core/-/core-2.8.6.tgz#7eb6984108f471ad0d719d3c07cde14c47ab17c5" + integrity sha512-1QlPaHMhOORySCXkQyzjsIsy2GYTilOw3LkjeHkCgsPJQjAT4IclVytJusWktPbYNys9O+O4V23J44yomQvnBQ== dependencies: "@types/cli-progress" "^3.11.0" ansi-escapes "^4.3.2" @@ -3098,6 +3099,58 @@ wordwrap "^1.0.0" wrap-ansi "^7.0.0" +"@oclif/core@^2.15.0": + version "2.15.0" + resolved "https://registry.yarnpkg.com/@oclif/core/-/core-2.15.0.tgz#f27797b30a77d13279fba88c1698fc34a0bd0d2a" + integrity sha512-fNEMG5DzJHhYmI3MgpByTvltBOMyFcnRIUMxbiz2ai8rhaYgaTHMG3Q38HcosfIvtw9nCjxpcQtC8MN8QtVCcA== + dependencies: + "@types/cli-progress" "^3.11.0" + ansi-escapes "^4.3.2" + ansi-styles "^4.3.0" + cardinal "^2.1.1" + chalk "^4.1.2" + clean-stack "^3.0.1" + cli-progress "^3.12.0" + debug "^4.3.4" + ejs "^3.1.8" + get-package-type "^0.1.0" + globby "^11.1.0" + hyperlinker "^1.0.0" + indent-string "^4.0.0" + is-wsl "^2.2.0" + js-yaml "^3.14.1" + natural-orderby "^2.0.3" + object-treeify "^1.1.33" + password-prompt "^1.1.2" + slice-ansi "^4.0.0" + string-width "^4.2.3" + strip-ansi "^6.0.1" + supports-color "^8.1.1" + supports-hyperlinks "^2.2.0" + ts-node "^10.9.1" + tslib "^2.5.0" + widest-line "^3.1.0" + wordwrap "^1.0.0" + wrap-ansi "^7.0.0" + +"@oclif/plugin-autocomplete@^2.3.6": + version "2.3.10" + resolved "https://registry.yarnpkg.com/@oclif/plugin-autocomplete/-/plugin-autocomplete-2.3.10.tgz#787f6208cdfe10ffc68ad89e9e7f1a7ad0e8987f" + integrity sha512-Ow1AR8WtjzlyCtiWWPgzMyT8SbcDJFr47009riLioHa+MHX2BCDtVn2DVnN/E6b9JlPV5ptQpjefoRSNWBesmg== + dependencies: + "@oclif/core" "^2.15.0" + chalk "^4.1.0" + debug "^4.3.4" + +"@oclif/plugin-not-found@^2.4.0": + version "2.4.3" + resolved "https://registry.yarnpkg.com/@oclif/plugin-not-found/-/plugin-not-found-2.4.3.tgz#3d24095adb0f3876cb4bcfdfdcb775086cf6d4b5" + integrity sha512-nIyaR4y692frwh7wIHZ3fb+2L6XEecQwRDIb4zbEam0TvaVmBQWZoColQyWA84ljFBPZ8XWiQyTz+ixSwdRkqg== + dependencies: + "@oclif/core" "^2.15.0" + chalk "^4" + fast-levenshtein "^3.0.0" + "@octokit/auth-token@^3.0.0": version "3.0.4" resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-3.0.4.tgz#70e941ba742bdd2b49bdb7393e821dea8520a3db" @@ -5201,11 +5254,6 @@ ansi-colors@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.1: - version "3.2.4" - 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.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" @@ -5334,13 +5382,12 @@ anymatch@^3.1.3, anymatch@~3.1.2: normalize-path "^3.0.0" picomatch "^2.0.4" -apisauce@^1.0.1: - version "1.1.5" - resolved "https://registry.yarnpkg.com/apisauce/-/apisauce-1.1.5.tgz#31d41a5cf805e401266cec67faf1a50f4aeae234" - integrity sha512-gKC8qb/bDJsPsnEXLZnXJ7gVx7dh87CEVNeIwv1dvaffnXoh5GHwac5pWR1P2broLiVj/fqFMQvLDDt/RhjiqA== +apisauce@^2.1.5: + version "2.1.6" + resolved "https://registry.yarnpkg.com/apisauce/-/apisauce-2.1.6.tgz#94887f335bf3d735305fc895c8a191c9c2608a7f" + integrity sha512-MdxR391op/FucS2YQRfB/NMRyCnHEPDd4h17LRIuVYi0BpGmMhpxc0shbOpfs5ahABuBEffNCGal5EcsydbBWg== dependencies: - axios "^0.21.2" - ramda "^0.25.0" + axios "^0.21.4" app-module-path@^2.2.0: version "2.2.0" @@ -5741,7 +5788,7 @@ aws4@^1.8.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.12.0.tgz#ce1c9d143389679e253b314241ea9aa5cec980d3" integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg== -axios@^0.21.1, axios@^0.21.2, axios@^0.21.4: +axios@^0.21.1, axios@^0.21.4: version "0.21.4" resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575" integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg== @@ -7136,7 +7183,7 @@ chai@^4.2.0, chai@^4.3.6, chai@^4.3.7: pathval "^1.1.1" type-detect "^4.0.8" -chalk@3.0.0, chalk@^3.0.0: +chalk@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== @@ -7169,7 +7216,7 @@ chalk@^2.4.1, chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: +chalk@^4, chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -7493,7 +7540,17 @@ cli-spinners@^2.2.0, cli-spinners@^2.5.0, cli-spinners@^2.6.1: resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.2.tgz#1773a8f4b9c4d6ac31563df53b3fc1d79462fe41" integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg== -cli-table3@^0.5.0, cli-table3@~0.5.0: +cli-table3@0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.0.tgz#b7b1bc65ca8e7b5cef9124e13dc2b21e2ce4faee" + integrity sha512-gnB85c3MGC7Nm9I/FkiasNBOKjOiO1RNuXXarQms37q4QMpWdlbBgD/VnOStA2faG1dpXMv31RFApjX1/QdgWQ== + dependencies: + object-assign "^4.1.0" + string-width "^4.2.0" + optionalDependencies: + colors "^1.1.2" + +cli-table3@^0.5.0: version "0.5.1" resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.5.1.tgz#0252372d94dfc40dbd8df06005f48f31f656f202" integrity sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw== @@ -7699,11 +7756,6 @@ colors@1.0.x: resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" integrity sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw== -colors@1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.3.3.tgz#39e005d546afe01e01f9c4ca8fa50f686a01205d" - integrity sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg== - colors@1.4.0, colors@^1.1.2: version "1.4.0" resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" @@ -8020,16 +8072,16 @@ cors@^2.8.1: object-assign "^4" vary "^1" -cosmiconfig@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" - integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== +cosmiconfig@7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d" + integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ== dependencies: "@types/parse-json" "^4.0.0" - import-fresh "^3.1.0" + import-fresh "^3.2.1" parse-json "^5.0.0" path-type "^4.0.0" - yaml "^1.7.2" + yaml "^1.10.0" cosmiconfig@8.0.0: version "8.0.0" @@ -8163,6 +8215,15 @@ cross-fetch@^3.1.4, cross-fetch@^3.1.5: dependencies: node-fetch "^2.6.12" +cross-spawn@7.0.3, cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + cross-spawn@^6.0.5: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" @@ -8174,15 +8235,6 @@ cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - "crypt@>= 0.0.1": version "0.0.2" resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" @@ -8999,10 +9051,12 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== -ejs@^2.6.1: - version "2.7.4" - resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.7.4.tgz#48661287573dcc53e366c7a1ae52c3a120eec9ba" - integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA== +ejs@3.1.8: + version "3.1.8" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.8.tgz#758d32910c78047585c7ef1f92f9ee041c1c190b" + integrity sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ== + dependencies: + jake "^10.8.5" ejs@^3.1.6, ejs@^3.1.8: version "3.1.9" @@ -9101,12 +9155,12 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1: dependencies: once "^1.4.0" -enquirer@2.3.4: - version "2.3.4" - resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.4.tgz#c608f2e1134c7f68c1c9ee056de13f9b31076de9" - integrity sha512-pkYrrDZumL2VS6VBGDhqbajCM2xpkUNLuKfGPjfKaSIBKYopQbqEFyrOkRMIb2HDR/rO1kGhEt/5twBwtzKBXw== +enquirer@2.3.6: + version "2.3.6" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== dependencies: - ansi-colors "^3.2.1" + ansi-colors "^4.1.1" enquirer@^2.3.0, enquirer@^2.3.6: version "2.4.1" @@ -10195,22 +10249,6 @@ execa@5.1.1, execa@^5.1.1: signal-exit "^3.0.3" strip-final-newline "^2.0.0" -execa@^3.0.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-3.4.0.tgz#c08ed4550ef65d858fac269ffc8572446f37eb89" - integrity sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g== - dependencies: - cross-spawn "^7.0.0" - get-stream "^5.0.0" - human-signals "^1.1.1" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.0" - onetime "^5.1.0" - p-finally "^2.0.0" - signal-exit "^3.0.2" - strip-final-newline "^2.0.0" - execa@^6.0.0: version "6.1.0" resolved "https://registry.yarnpkg.com/execa/-/execa-6.1.0.tgz#cea16dee211ff011246556388effa0818394fb20" @@ -10475,6 +10513,13 @@ fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== +fast-levenshtein@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-3.0.0.tgz#37b899ae47e1090e40e3fd2318e4d5f0142ca912" + integrity sha512-hKKNajm46uNmTlhHSyZkmToAc56uZJwYq7yrciZjqOxnlfQwERDQJmHPUp7m1m9wx8vgOe8IaCKZ5Kv2k1DdCQ== + dependencies: + fastest-levenshtein "^1.0.7" + fast-querystring@^1.0.0, fast-querystring@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/fast-querystring/-/fast-querystring-1.1.2.tgz#a6d24937b4fc6f791b4ee31dcb6f53aeafb89f53" @@ -10514,7 +10559,7 @@ fast-write-atomic@~0.2.0: resolved "https://registry.yarnpkg.com/fast-write-atomic/-/fast-write-atomic-0.2.1.tgz#7ee8ef0ce3c1f531043c09ae8e5143361ab17ede" integrity sha512-WvJe06IfNYlr+6cO3uQkdKdy3Cb1LlCJSF8zRs2eT8yuhdbSlR9nIt+TgQ92RUxiRrQm+/S7RARnMfCs5iuAjw== -fastest-levenshtein@1.0.16: +fastest-levenshtein@1.0.16, fastest-levenshtein@^1.0.7: version "1.0.16" resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5" integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== @@ -11082,10 +11127,10 @@ fs-extra@^8.1.0: jsonfile "^4.0.0" universalify "^0.1.0" -fs-jetpack@^2.2.2: - version "2.4.0" - resolved "https://registry.yarnpkg.com/fs-jetpack/-/fs-jetpack-2.4.0.tgz#6080c4ab464a019d37a404baeb47f32af8835026" - integrity sha512-S/o9Dd7K9A7gicVU32eT8G0kHcmSu0rCVdP79P0MWInKFb8XpTc8Syhoo66k9no+HDshtlh4pUJTws8X+8fdFQ== +fs-jetpack@4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/fs-jetpack/-/fs-jetpack-4.3.1.tgz#cdfd4b64e6bfdec7c7dc55c76b39efaa7853bb20" + integrity sha512-dbeOK84F6BiQzk2yqqCVwCPWTxAvVGJ3fMQc6E2wuEohS28mR6yHngbrKuVCK1KHRx/ccByDylqu4H5PCP2urQ== dependencies: minimatch "^3.0.2" rimraf "^2.6.3" @@ -11300,7 +11345,7 @@ get-stream@^4.1.0: dependencies: pump "^3.0.0" -get-stream@^5.0.0, get-stream@^5.1.0: +get-stream@^5.1.0: version "5.2.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== @@ -11409,10 +11454,10 @@ glob@7.2.0: once "^1.3.0" path-is-absolute "^1.0.0" -glob@9.3.4: - version "9.3.4" - resolved "https://registry.yarnpkg.com/glob/-/glob-9.3.4.tgz#e75dee24891a80c25cc7ee1dd327e126b98679af" - integrity sha512-qaSc49hojMOv1EPM4EuyITjDSgSKI0rthoHnvE81tcOi1SCVndHko7auqxdQ14eiQG2NDBJBE86+2xIrbIvrbA== +glob@9.3.5: + version "9.3.5" + resolved "https://registry.yarnpkg.com/glob/-/glob-9.3.5.tgz#ca2ed8ca452781a3009685607fdf025a899dfe21" + integrity sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q== dependencies: fs.realpath "^1.0.0" minimatch "^8.0.2" @@ -11564,20 +11609,21 @@ globby@^13.0.0, globby@^13.1.1: merge2 "^1.4.1" slash "^4.0.0" -"gluegun@https://github.com/edgeandnode/gluegun#v4.3.1-pin-colors-dep": - version "4.3.1" - resolved "https://github.com/edgeandnode/gluegun#b34b9003d7bf556836da41b57ef36eb21570620a" +gluegun@5.1.6: + version "5.1.6" + resolved "https://registry.yarnpkg.com/gluegun/-/gluegun-5.1.6.tgz#74ec13193913dc610f5c1a4039972c70c96a7bad" + integrity sha512-9zbi4EQWIVvSOftJWquWzr9gLX2kaDgPkNR5dYWbM53eVvCI3iKuxLlnKoHC0v4uPoq+Kr/+F569tjoFbA4DSA== dependencies: - apisauce "^1.0.1" + apisauce "^2.1.5" app-module-path "^2.2.0" - cli-table3 "~0.5.0" - colors "1.3.3" - cosmiconfig "6.0.0" - cross-spawn "^7.0.0" - ejs "^2.6.1" - enquirer "2.3.4" - execa "^3.0.0" - fs-jetpack "^2.2.2" + cli-table3 "0.6.0" + colors "1.4.0" + cosmiconfig "7.0.1" + cross-spawn "7.0.3" + ejs "3.1.8" + enquirer "2.3.6" + execa "5.1.1" + fs-jetpack "4.3.1" lodash.camelcase "^4.3.0" lodash.kebabcase "^4.1.1" lodash.lowercase "^4.3.0" @@ -11593,12 +11639,11 @@ globby@^13.0.0, globby@^13.1.1: lodash.trimstart "^4.5.1" lodash.uppercase "^4.3.0" lodash.upperfirst "^4.3.1" - ora "^4.0.0" + ora "4.0.2" pluralize "^8.0.0" - ramdasauce "^2.1.0" - semver "^7.0.0" - which "^2.0.0" - yargs-parser "^16.1.0" + semver "7.3.5" + which "2.0.2" + yargs-parser "^21.0.0" gonzales-pe@^4.3.0: version "4.3.0" @@ -12320,11 +12365,6 @@ https-proxy-agent@^6.0.0: agent-base "^7.0.2" debug "4" -human-signals@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" - integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== - human-signals@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" @@ -12421,7 +12461,7 @@ immutable@~3.7.6: resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.7.6.tgz#13b4d3cb12befa15482a26fe1b2ebae640071e4b" integrity sha512-AizQPcaofEtO11RZhPPHBOJRdo/20MKQF9mBLnVkBoyHi1/zXK8fzVdnEpSV9gxqtnh6Qomfp3F0xT5qP/vThw== -import-fresh@^3.1.0, import-fresh@^3.2.1: +import-fresh@^3.2.1: version "3.3.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== @@ -16242,7 +16282,7 @@ normalize-url@^8.0.0: resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-8.0.0.tgz#593dbd284f743e8dcf6a5ddf8fadff149c82701a" integrity sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw== -npm-run-path@^4.0.0, npm-run-path@^4.0.1: +npm-run-path@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== @@ -16504,6 +16544,19 @@ optionator@^0.9.3: prelude-ls "^1.2.1" type-check "^0.4.0" +ora@4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/ora/-/ora-4.0.2.tgz#0e1e68fd45b135d28648b27cf08081fa6e8a297d" + integrity sha512-YUOZbamht5mfLxPmk4M35CD/5DuOkAacxlEUbStVXpBAt4fyhBf+vZHI/HRkI++QUp3sNoeA2Gw4C+hi4eGSig== + dependencies: + chalk "^2.4.2" + cli-cursor "^3.1.0" + cli-spinners "^2.2.0" + is-interactive "^1.0.0" + log-symbols "^3.0.0" + strip-ansi "^5.2.0" + wcwidth "^1.0.1" + ora@6.3.1: version "6.3.1" resolved "https://registry.yarnpkg.com/ora/-/ora-6.3.1.tgz#a4e9e5c2cf5ee73c259e8b410273e706a2ad3ed6" @@ -16519,20 +16572,6 @@ ora@6.3.1: strip-ansi "^7.0.1" wcwidth "^1.0.1" -ora@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ora/-/ora-4.1.1.tgz#566cc0348a15c36f5f0e979612842e02ba9dddbc" - integrity sha512-sjYP8QyVWBpBZWD6Vr1M/KwknSw6kJOz41tvGMlwWeClHBtYKTbHMki1PsLZnxKpXMPbTKv9b3pjQu3REib96A== - dependencies: - chalk "^3.0.0" - cli-cursor "^3.1.0" - cli-spinners "^2.2.0" - is-interactive "^1.0.0" - log-symbols "^3.0.0" - mute-stream "0.0.8" - strip-ansi "^6.0.0" - wcwidth "^1.0.1" - ora@^5.4.1: version "5.4.1" resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" @@ -16637,11 +16676,6 @@ p-finally@^1.0.0: resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== -p-finally@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561" - integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw== - p-limit@3.1.0, p-limit@^3.0.2, p-limit@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" @@ -17338,11 +17372,6 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier@1.19.1: - version "1.19.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" - integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== - prettier@3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.3.tgz#432a51f7ba422d1469096c0fdc28e235db8f9643" @@ -17761,23 +17790,6 @@ radix3@^1.1.0: resolved "https://registry.yarnpkg.com/radix3/-/radix3-1.1.0.tgz#9745df67a49c522e94a33d0a93cf743f104b6e0d" integrity sha512-pNsHDxbGORSvuSScqNJ+3Km6QAVqk8CfsCBIEoDgpqLrkD2f3QM4I7d1ozJJ172OmIcoUcerZaNWqtLkRXTV3A== -ramda@^0.24.1: - version "0.24.1" - resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.24.1.tgz#c3b7755197f35b8dc3502228262c4c91ddb6b857" - integrity sha512-HEm619G8PaZMfkqCa23qiOe7r3R0brPu7ZgOsgKUsnvLhd0qhc/vTjkUovomgPWa5ECBa08fJZixth9LaoBo5w== - -ramda@^0.25.0: - version "0.25.0" - resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.25.0.tgz#8fdf68231cffa90bc2f9460390a0cb74a29b29a9" - integrity sha512-GXpfrYVPwx3K7RQ6aYT8KPS8XViSXUVJT1ONhoKPE9VAleW42YE+U+8VEyGWt41EnEQW7gwecYJriTI0pKoecQ== - -ramdasauce@^2.1.0: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ramdasauce/-/ramdasauce-2.1.3.tgz#acb45ecc7e4fc4d6f39e19989b4a16dff383e9c2" - integrity sha512-Ml3CPim4SKwmg5g9UI77lnRSeKr/kQw7YhQ6rfdMcBYy6DMlwmkEwQqjygJ3OhxPR+NfFfpjKl3Tf8GXckaqqg== - dependencies: - ramda "^0.24.1" - random-bytes@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/random-bytes/-/random-bytes-1.0.0.tgz#4f68a1dc0ae58bd3fb95848c30324db75d64360b" @@ -18179,7 +18191,7 @@ req-from@^2.0.0: dependencies: resolve-from "^3.0.0" -request@2.88.2, request@^2.79.0, request@^2.85.0: +request@^2.79.0, request@^2.85.0: version "2.88.2" resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== @@ -18627,10 +18639,17 @@ semver-diff@^4.0.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== -semver@7.3.8: - version "7.3.8" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" - integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== +semver@7.3.5: + version "7.3.5" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" + integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== + dependencies: + lru-cache "^6.0.0" + +semver@7.4.0: + version "7.4.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.4.0.tgz#8481c92feffc531ab1e012a8ffc15bdd3a0f4318" + integrity sha512-RgOxM8Mw+7Zus0+zcLEUn8+JfoLpj/huFTItQy2hsM4khuC1HYRDp0cU482Ewn/Fcy6bCjufD8vAj7voC66KQw== dependencies: lru-cache "^6.0.0" @@ -21726,7 +21745,7 @@ which-typed-array@^1.1.11, which-typed-array@^1.1.13, which-typed-array@^1.1.2: gopd "^1.0.1" has-tostringtag "^1.0.0" -which@2.0.2, which@^2.0.0, which@^2.0.1: +which@2.0.2, which@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== @@ -22053,7 +22072,7 @@ yaml-eslint-parser@^0.3.2: lodash "^4.17.20" yaml "^1.10.0" -yaml@1.10.2, yaml@^1.10.0, yaml@^1.10.2, yaml@^1.7.2: +yaml@1.10.2, yaml@^1.10.0, yaml@^1.10.2: version "1.10.2" resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== @@ -22076,14 +22095,6 @@ yargs-parser@^15.0.1: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^16.1.0: - version "16.1.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-16.1.0.tgz#73747d53ae187e7b8dbe333f95714c76ea00ecf1" - integrity sha512-H/V41UNZQPkUMIT5h5hiwg4QKIY1RPvoBV4XcjUbRM8Bk2oKqqyZ0DIEbTFZB0XjbtSPG8SAa/0DxCQmiRgzKg== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - yargs-parser@^18.1.2: version "18.1.3" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" @@ -22097,7 +22108,7 @@ yargs-parser@^20.2.2, yargs-parser@^20.2.3: resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== -yargs-parser@^21.1.1: +yargs-parser@^21.0.0, yargs-parser@^21.1.1: version "21.1.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== From 7e516a1e2ffe66179f73973fb4190a74c742f394 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Wed, 21 Feb 2024 14:51:20 -0500 Subject: [PATCH 245/338] update github action checkout and setup node versions --- .github/workflows/test-contracts.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test-contracts.yml b/.github/workflows/test-contracts.yml index df1d17e7d..4f833f560 100644 --- a/.github/workflows/test-contracts.yml +++ b/.github/workflows/test-contracts.yml @@ -14,9 +14,9 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Use Node.js ${{ env.NODE_VERSION }} - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: ${{ env.NODE_VERSION }} - name: Install From c842f5c674d6e6f41285f2392206461327d95bff Mon Sep 17 00:00:00 2001 From: yuetloo Date: Wed, 21 Feb 2024 14:57:37 -0500 Subject: [PATCH 246/338] add instruction to download the zkeys --- contracts/README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/contracts/README.md b/contracts/README.md index ecee6c05b..f68042e4a 100644 --- a/contracts/README.md +++ b/contracts/README.md @@ -29,6 +29,13 @@ yarn deploy:local ### Run test round +Download the circuit zkeys: + +``` +# this script will download the zkeys in the params folder where the script is run +../.github/scripts/download-6-8-2-3.sh +``` + Run the script, the github action test-script.yml uses this script. ``` From cfaac4826f0d69bb0b665d2b5ce636cf7980d164 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Wed, 21 Feb 2024 15:15:38 -0500 Subject: [PATCH 247/338] add missing tweetnacl --- vue-app/package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/vue-app/package.json b/vue-app/package.json index 43b822754..299e57d7e 100644 --- a/vue-app/package.json +++ b/vue-app/package.json @@ -46,6 +46,7 @@ "markdown-it-link-attributes": "^4.0.1", "pinia": "^2.0.26", "qrcode": "^1.5.1", + "tweetnacl": "^1.0.3", "vue": "^3.2.45", "vue-final-modal": "^4.3.0", "vue-i18n": "9", From 108ead6562a232ea3d584acd66454de8a340ead3 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Wed, 21 Feb 2024 15:18:34 -0500 Subject: [PATCH 248/338] use CIRCUIT_DIRECTORY envionment variable to specify circuit zkeys location --- contracts/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/contracts/README.md b/contracts/README.md index f68042e4a..0f85a3290 100644 --- a/contracts/README.md +++ b/contracts/README.md @@ -36,6 +36,8 @@ Download the circuit zkeys: ../.github/scripts/download-6-8-2-3.sh ``` +If you have previously downloaded the zkeys, you can export the environment variable CIRCUIT_DIRECTORY to point to the directory. + Run the script, the github action test-script.yml uses this script. ``` From 8d797a97838b7faa0e93adba1961356bdd2bae7e Mon Sep 17 00:00:00 2001 From: yuetloo Date: Wed, 21 Feb 2024 15:41:00 -0500 Subject: [PATCH 249/338] add debug logging --- .github/workflows/finalize-round.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/finalize-round.yml b/.github/workflows/finalize-round.yml index eaa4e03f5..dd50ee54d 100644 --- a/.github/workflows/finalize-round.yml +++ b/.github/workflows/finalize-round.yml @@ -61,6 +61,7 @@ jobs: export SUBGRPAH_ID="${{ github.event.inputs.subgraph_id }}" export SUBGRAPH_QUERY=$(node -e 'console.log(`{"query":"{indexingStatuses(subgraphs: [\\\"${process.env.SUBGRAPH_ID}\\\"]) { chains { network }}}"}`)') export SUBGRAPH_STATUS=$(curl -s -X POST -d "$SUBGRAPH_QUERY" https://api.thegraph.com/index-node/graphql) + echo SUBGRAPH_STATUS=$SUBGRAPH_STATUS export NETWORK=$(node -e 'console.log(JSON.parse(process.env.SUBGRAPH_STATUS).data.indexingStatuses[0].chains[0].network)') echo $NETWORK export ROUND=$(curl -X POST -d '{"query":"{clrFunds {id currentRound {id maci maciTxHash}}}"}' $SUBGRPAH_URL) From b75774a6d8d29a6758d334031e4b1562e7c0adb5 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Wed, 21 Feb 2024 15:59:48 -0500 Subject: [PATCH 250/338] fix subgraph url and network --- .github/workflows/finalize-round.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/finalize-round.yml b/.github/workflows/finalize-round.yml index dd50ee54d..37f7ebe6f 100644 --- a/.github/workflows/finalize-round.yml +++ b/.github/workflows/finalize-round.yml @@ -3,10 +3,14 @@ name: Finalize a test round on: workflow_dispatch: inputs: - subgraph_id: - description: 'Clrfund subgraph id' + subgraph_url: + description: 'Clrfund subgraph url' required: true - default: 'QmfPjzSRsm7Lt665KaEEq6Tnr5QHLZt1SE3pxr2nix5pU2' + default: 'https://api.studio.thegraph.com/query/66324/clrfund-dev/version/latest' + network: + description: 'Network' + required: true + default: 'optimism-sepolia' env: NODE_VERSION: 20.x @@ -58,12 +62,8 @@ jobs: yarn && yarn build - name: Run finalize scripts run: | - export SUBGRPAH_ID="${{ github.event.inputs.subgraph_id }}" - export SUBGRAPH_QUERY=$(node -e 'console.log(`{"query":"{indexingStatuses(subgraphs: [\\\"${process.env.SUBGRAPH_ID}\\\"]) { chains { network }}}"}`)') - export SUBGRAPH_STATUS=$(curl -s -X POST -d "$SUBGRAPH_QUERY" https://api.thegraph.com/index-node/graphql) - echo SUBGRAPH_STATUS=$SUBGRAPH_STATUS - export NETWORK=$(node -e 'console.log(JSON.parse(process.env.SUBGRAPH_STATUS).data.indexingStatuses[0].chains[0].network)') - echo $NETWORK + export SUBGRPAH_URL=${{ github.event.inputs.subgraph_url }} + export NETWORK=${{ github.event.inputs.network }} export ROUND=$(curl -X POST -d '{"query":"{clrFunds {id currentRound {id maci maciTxHash}}}"}' $SUBGRPAH_URL) export CLRFUND_ADDRESS=$(node -e 'console.log(JSON.parse(process.env.ROUND).data.clrFunds[0].id)') export ROUND_ADDRESS=$(node -e 'console.log(JSON.parse(process.env.ROUND).data.clrFunds[0].currentRound.id)') From 70ce3e46ec7790dc1237fb83db6b43558bfe8ec4 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Wed, 21 Feb 2024 19:27:55 -0500 Subject: [PATCH 251/338] get input from user instead from subgraph --- .github/workflows/finalize-round.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/finalize-round.yml b/.github/workflows/finalize-round.yml index 37f7ebe6f..1465cbccf 100644 --- a/.github/workflows/finalize-round.yml +++ b/.github/workflows/finalize-round.yml @@ -3,10 +3,14 @@ name: Finalize a test round on: workflow_dispatch: inputs: - subgraph_url: - description: 'Clrfund subgraph url' + clrfund_address: + description: 'Clrfund contract address' required: true - default: 'https://api.studio.thegraph.com/query/66324/clrfund-dev/version/latest' + default: '0x87790498127ff044f43b9230506833ca89113757' + maci_tx_hash: + description: 'MACI creation transaction hash' + required: true + default: '0x1280527bdb23cbd4906c94e152722792fc59400bfccfc89709beb2531fc55365' network: description: 'Network' required: true @@ -62,13 +66,9 @@ jobs: yarn && yarn build - name: Run finalize scripts run: | - export SUBGRPAH_URL=${{ github.event.inputs.subgraph_url }} + export CLRFUND_ADDRESS=${{ github.event.inputs.clrfund_address }} + export MACI_TX_HASH=${{ github.event.inputs.maci_tx_hash }} export NETWORK=${{ github.event.inputs.network }} - export ROUND=$(curl -X POST -d '{"query":"{clrFunds {id currentRound {id maci maciTxHash}}}"}' $SUBGRPAH_URL) - export CLRFUND_ADDRESS=$(node -e 'console.log(JSON.parse(process.env.ROUND).data.clrFunds[0].id)') - export ROUND_ADDRESS=$(node -e 'console.log(JSON.parse(process.env.ROUND).data.clrFunds[0].currentRound.id)') - export MACI_ADDRESS=$(node -e 'console.log(JSON.parse(process.env.ROUND).data.clrFunds[0].currentRound.maci)') - export MACI_TX_HASH=$(node -e 'console.log(JSON.parse(process.env.ROUND).data.clrFunds[0].currentRound.maciTxHash)') export RAPID_SNARK="$GITHUB_WORKSPACE/rapidsnark/package/bin/prover" export CIRCUIT_DIRECTORY=$GITHUB_WORKSPACE/params # tally and finalize From a47aaa6b9c0e984ff06d5532220520ac270454ac Mon Sep 17 00:00:00 2001 From: yuetloo Date: Wed, 21 Feb 2024 19:39:29 -0500 Subject: [PATCH 252/338] add batch size option to fetch log --- .github/workflows/finalize-round.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/finalize-round.yml b/.github/workflows/finalize-round.yml index 1465cbccf..8ad28559e 100644 --- a/.github/workflows/finalize-round.yml +++ b/.github/workflows/finalize-round.yml @@ -11,6 +11,10 @@ on: description: 'MACI creation transaction hash' required: true default: '0x1280527bdb23cbd4906c94e152722792fc59400bfccfc89709beb2531fc55365' + blocks_per_batch: + description: 'Blocks of logs to fetch per batch' + required: true + default: '9000' network: description: 'Network' required: true @@ -69,6 +73,7 @@ jobs: export CLRFUND_ADDRESS=${{ github.event.inputs.clrfund_address }} export MACI_TX_HASH=${{ github.event.inputs.maci_tx_hash }} export NETWORK=${{ github.event.inputs.network }} + export BLOCKS_PER_BATCH=${{ github.event.inputs.blocks_per_batch }} export RAPID_SNARK="$GITHUB_WORKSPACE/rapidsnark/package/bin/prover" export CIRCUIT_DIRECTORY=$GITHUB_WORKSPACE/params # tally and finalize @@ -77,6 +82,7 @@ jobs: yarn hardhat clr-tally --clrfund "${CLRFUND_ADDRESS}" --network "${NETWORK}" \ --rapidsnark ${RAPID_SNARK} \ --circuit-directory ${CIRCUIT_DIRECTORY} \ + --blocks-per-batch ${BLOCKS_PER_BATCH} \ --maci-tx-hash "${MACI_TX_HASH}" --output-dir "./proof_output" curl --location --request POST 'https://api.pinata.cloud/pinning/pinFileToIPFS' \ --header "Authorization: Bearer ${{ secrets.PINATA_JWT }}" \ From 9ce23a25116b173b3d3fae638470cb414b35cda7 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Wed, 21 Feb 2024 20:33:53 -0500 Subject: [PATCH 253/338] add etherscan api url --- contracts/utils/providers/EtherscanProvider.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/contracts/utils/providers/EtherscanProvider.ts b/contracts/utils/providers/EtherscanProvider.ts index 73a6205c0..5a35ac557 100644 --- a/contracts/utils/providers/EtherscanProvider.ts +++ b/contracts/utils/providers/EtherscanProvider.ts @@ -6,6 +6,8 @@ const EtherscanApiUrl: Record = { arbitrum: 'https://api.arbiscan.io', 'arbitrum-goerli': 'https://api-goerli.arbiscan.io', 'arbitrum-sepolia': 'https://api-sepolia.arbiscan.io', + optimism: 'https://api-optimistic.etherscan.io', + 'optimism-sepolia': 'https://api-sepolia-optimistic.etherscan.io', } export class EtherscanProvider extends BaseProvider { From cb72b48352287320dca506f1a3e21a15885200a1 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Tue, 27 Feb 2024 22:18:54 -0700 Subject: [PATCH 254/338] upgrade to MACI 1.2.0 --- common/package.json | 4 +- contracts/package.json | 8 +-- subgraph/config/arbitrum-sepolia.json | 6 +- yarn.lock | 98 +++++++++++++-------------- 4 files changed, 58 insertions(+), 58 deletions(-) diff --git a/common/package.json b/common/package.json index 5b43899cf..ee496d949 100644 --- a/common/package.json +++ b/common/package.json @@ -23,8 +23,8 @@ "dependencies": { "@openzeppelin/merkle-tree": "^1.0.5", "ethers": "^6.11.1", - "maci-crypto": "0.0.0-ci.09b7fe7", - "maci-domainobjs": "0.0.0-ci.09b7fe7" + "maci-crypto": "^1.2.0", + "maci-domainobjs": "^1.2.0" }, "repository": { "type": "git", diff --git a/contracts/package.json b/contracts/package.json index 454dd644b..1ba90e415 100644 --- a/contracts/package.json +++ b/contracts/package.json @@ -17,7 +17,7 @@ "dependencies": { "@openzeppelin/contracts": "4.9.0", "dotenv": "^8.2.0", - "maci-contracts": "0.0.0-ci.09b7fe7", + "maci-contracts": "^1.2.0", "solidity-rlp": "2.0.8" }, "devDependencies": { @@ -38,9 +38,9 @@ "hardhat-contract-sizer": "^2.10.0", "hardhat-gas-reporter": "^1.0.8", "ipfs-only-hash": "^2.0.1", - "maci-circuits": "0.0.0-ci.09b7fe7", - "maci-cli": "0.0.0-ci.09b7fe7", - "maci-domainobjs": "0.0.0-ci.09b7fe7", + "maci-circuits": "^1.2.0", + "maci-cli": "^1.2.0", + "maci-domainobjs": "^1.2.0", "mocha": "^10.2.0", "solidity-coverage": "^0.8.1", "ts-node": "^10.9.2", diff --git a/subgraph/config/arbitrum-sepolia.json b/subgraph/config/arbitrum-sepolia.json index 9463093fc..3345fa072 100644 --- a/subgraph/config/arbitrum-sepolia.json +++ b/subgraph/config/arbitrum-sepolia.json @@ -1,6 +1,6 @@ { "network": "arbitrum-sepolia", - "address": "0x002EF001EEB4CcE3Ed1F46c5eeD1E08f080832F6", - "clrFundStartBlock": 10858870, - "recipientRegistryStartBlock": 10858870 + "address": "0x8461DF39EabC3dd4A0eb2C8101Fa906b94d6e6ad", + "clrFundStartBlock": 18158680, + "recipientRegistryStartBlock": 18158680 } diff --git a/yarn.lock b/yarn.lock index a4fe2aaab..11e8b7f78 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7411,10 +7411,10 @@ circom_tester@^0.0.19: tmp-promise "^3.0.3" util "^0.12.4" -circomkit@^0.0.22: - version "0.0.22" - resolved "https://registry.yarnpkg.com/circomkit/-/circomkit-0.0.22.tgz#0d1425fdece61972b002fd69a5b636515289c65a" - integrity sha512-rfNiDCBrg/c9JI4nbvpKa123eFyrBFHBHUUeJFjHpzuG7Zw3KMbIUs4dw9xoIeqtzLYL4Hs4jXTMKluStEMxKA== +circomkit@^0.0.24: + version "0.0.24" + resolved "https://registry.yarnpkg.com/circomkit/-/circomkit-0.0.24.tgz#11db0ba17da9f5bd3e58bc87d5b39bb8375e3bf8" + integrity sha512-lw5Kj6zAWS8NYZjlDCGEDeA1e0/Vpa6t6W3GT0AxfhswUoqK0Nu3sz5hu8ZQ+Efh0Ss3eLoD0y+9sOkySEwgEA== dependencies: chai "^4.3.7" circom_tester "^0.0.19" @@ -8989,10 +8989,10 @@ dotenv@^16.0.0, dotenv@^16.3.1: resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.3.1.tgz#369034de7d7e5b120972693352a3bf112172cc3e" integrity sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ== -dotenv@^16.4.4: - version "16.4.4" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.4.tgz#a26e7bb95ebd36272ebb56edb80b826aecf224c1" - integrity sha512-XvPXc8XAQThSjAbY6cQ/9PcBXmFoWuw1sQ3b8HqUCR6ziGXjkTi//kB9SWa2UwqlgdAIuRqAa/9hVljzPehbYg== +dotenv@^16.4.5: + version "16.4.5" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.5.tgz#cdd3b3b604cb327e286b4762e13502f717cb099f" + integrity sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg== dotenv@^8.2.0: version "8.6.0" @@ -14890,41 +14890,41 @@ luxon@^3.1.1, luxon@^3.2.1: resolved "https://registry.yarnpkg.com/luxon/-/luxon-3.4.4.tgz#cf20dc27dc532ba41a169c43fdcc0063601577af" integrity sha512-zobTr7akeGHnv7eBOXcRgMeCP6+uyYsczwmeRCauvpvaAltgNyTbLH/+VaEAPUeWBT+1GuNmz4wC/6jtQzbbVA== -maci-circuits@0.0.0-ci.09b7fe7: - version "0.0.0-ci.09b7fe7" - resolved "https://registry.yarnpkg.com/maci-circuits/-/maci-circuits-0.0.0-ci.09b7fe7.tgz#bd885a214e268f9449ce676cbc852f35590e0932" - integrity sha512-FI1EpOJDe6r6i6LCSx7XZhF9pbQV+92/FgUFgYYhUNEp+D7LhIWIzkPfa/+Hsq9zZ7LskojWQMZkuZakY88YZw== +maci-circuits@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/maci-circuits/-/maci-circuits-1.2.0.tgz#9b1f9c64d48e4dc3c3c7c8ffc4d0f254d60cce3e" + integrity sha512-51VMv7prUfRuko+PWDJOhwl9dLP82lAW2WHA39x+SFn1tkGAF3K3gw5TcIu7P6DQcwDblmbufn4OlrMc6jQXZg== dependencies: "@zk-kit/circuits" "^0.3.0" - circomkit "^0.0.22" + circomkit "^0.0.24" circomlib "^2.0.5" - maci-core "0.0.0-ci.09b7fe7" - maci-crypto "0.0.0-ci.09b7fe7" - maci-domainobjs "0.0.0-ci.09b7fe7" + maci-core "^1.2.0" + maci-crypto "^1.2.0" + maci-domainobjs "^1.2.0" snarkjs "^0.7.3" -maci-cli@0.0.0-ci.09b7fe7: - version "0.0.0-ci.09b7fe7" - resolved "https://registry.yarnpkg.com/maci-cli/-/maci-cli-0.0.0-ci.09b7fe7.tgz#8d9a326d4f8945ac9043b28e40026f69e107919e" - integrity sha512-SUGjFeLmG31VMFLLGvAdomERpLGrcSoN22slrX7l4fPEK6K8nG0wLbfa28vTMj+1S0yuH0dBfuoptK5WG0D6vQ== +maci-cli@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/maci-cli/-/maci-cli-1.2.0.tgz#caf8756d7e8dbfef61af6c7ac14068dfbc7d5db4" + integrity sha512-l3HYHvcafD6Z9ctPOBsYfZ5H/hdiS4rh0X3vEeLlncnsfKRPIpAej+2RHzsTooBH3ZvAp2f6wh+m2C9fRiU/7A== dependencies: "@commander-js/extra-typings" "^12.0.0" "@nomicfoundation/hardhat-toolbox" "^4.0.0" commander "^12.0.0" - dotenv "^16.4.4" + dotenv "^16.4.5" ethers "^6.11.1" hardhat "^2.20.1" - maci-circuits "0.0.0-ci.09b7fe7" - maci-contracts "0.0.0-ci.09b7fe7" - maci-core "0.0.0-ci.09b7fe7" - maci-crypto "0.0.0-ci.09b7fe7" - maci-domainobjs "0.0.0-ci.09b7fe7" + maci-circuits "^1.2.0" + maci-contracts "^1.2.0" + maci-core "^1.2.0" + maci-crypto "^1.2.0" + maci-domainobjs "^1.2.0" prompt "^1.3.0" -maci-contracts@0.0.0-ci.09b7fe7: - version "0.0.0-ci.09b7fe7" - resolved "https://registry.yarnpkg.com/maci-contracts/-/maci-contracts-0.0.0-ci.09b7fe7.tgz#f436872ff791b35ab4a14e42188a7bb273507da5" - integrity sha512-CWoXpdsN5l8SO+KAWOs4CgMXwVggy8lS7wdlXCIMl6XhBmJk5O8n0PMktjn4ZqIXq17CJjkKK5rXRpSGF3AUqg== +maci-contracts@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/maci-contracts/-/maci-contracts-1.2.0.tgz#a724b3e757d2402442d822c34a5221660ef43b94" + integrity sha512-zLYmGzBIBTygw7FiukK9nLNFnDdEWDmizuHruXFjpawCIwH+kzBsGImRy77Rn58SOe9XORdlGZOQckEGvaT4QQ== dependencies: "@nomicfoundation/hardhat-ethers" "^3.0.5" "@nomicfoundation/hardhat-toolbox" "^4.0.0" @@ -14932,36 +14932,36 @@ maci-contracts@0.0.0-ci.09b7fe7: circomlibjs "^0.1.7" ethers "^6.11.1" hardhat "^2.20.1" - maci-circuits "0.0.0-ci.09b7fe7" - maci-core "0.0.0-ci.09b7fe7" - maci-crypto "0.0.0-ci.09b7fe7" - maci-domainobjs "0.0.0-ci.09b7fe7" + maci-circuits "^1.2.0" + maci-core "^1.2.0" + maci-crypto "^1.2.0" + maci-domainobjs "^1.2.0" solidity-docgen "^0.6.0-beta.36" -maci-core@0.0.0-ci.09b7fe7: - version "0.0.0-ci.09b7fe7" - resolved "https://registry.yarnpkg.com/maci-core/-/maci-core-0.0.0-ci.09b7fe7.tgz#87206962b824e437394eba5b8f3b8f86408b759a" - integrity sha512-sf+ywJ9aD20TJTdJCsS3RA6jLvUSstf/hkt0vnKqOI9QpBKhH46fH35ERoIpWm28xUcrTKIQDNmCn3Nkk9aScg== +maci-core@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/maci-core/-/maci-core-1.2.0.tgz#57ff4b92c457f42a3043fe5b34cfef98a9ac1cf5" + integrity sha512-odqIpafdQmSN0VlvaPESyPQybVcQzxxg9Zvh/DEUSiPMNHBJfHd0ke+CIUVdBN0z2pLaN9VlAFyMDf/CYEuivw== dependencies: - maci-crypto "0.0.0-ci.09b7fe7" - maci-domainobjs "0.0.0-ci.09b7fe7" + maci-crypto "^1.2.0" + maci-domainobjs "^1.2.0" -maci-crypto@0.0.0-ci.09b7fe7: - version "0.0.0-ci.09b7fe7" - resolved "https://registry.yarnpkg.com/maci-crypto/-/maci-crypto-0.0.0-ci.09b7fe7.tgz#481ef9e2ea4e13438ee512728e4cb9f6b219b884" - integrity sha512-n4Ahs+nhTDDbzKnFVtp8nrUz38nrO2cJY5hzCAM9OfuyiTHx3FgJL8jsOlJMZq4tSSzRqNQ8/0B3DezhQnwsgQ== +maci-crypto@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/maci-crypto/-/maci-crypto-1.2.0.tgz#b894810fa2ab379d93f77a2518f55abfe2f22dbe" + integrity sha512-OOQvI+uDR0Q8wji9cbBqfDcwQgjoIIiv5r1pnne4ST15taxgMygep13rsA6UCU/A007rYBa93YAR3vnnBTnmrw== dependencies: "@zk-kit/baby-jubjub" "^0.1.1" "@zk-kit/eddsa-poseidon" "^0.5.1" "@zk-kit/poseidon-cipher" "^0.2.1" ethers "^6.11.1" -maci-domainobjs@0.0.0-ci.09b7fe7: - version "0.0.0-ci.09b7fe7" - resolved "https://registry.yarnpkg.com/maci-domainobjs/-/maci-domainobjs-0.0.0-ci.09b7fe7.tgz#e5cebd775159a7504420fa1aa41ef8fd55e44f06" - integrity sha512-KwclMe0aDLU9mCyuuSe4u34w82cFhXNVxCneXT/vzK+3DiFJX/SW2CoVVMQWheEAi34KLXypqeFq7BYKfu//Sg== +maci-domainobjs@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/maci-domainobjs/-/maci-domainobjs-1.2.0.tgz#27a6a9e05b3712e54c48dd080dcfc0c1d6035f93" + integrity sha512-9ItdA/EVSVqDMOD+Foe+OkDdj/LEfpwSAtXLCxG900TeAZpI486qiAbiJoI5sR8gnoRfSvwnZGJqiB+w0BPgSQ== dependencies: - maci-crypto "0.0.0-ci.09b7fe7" + maci-crypto "^1.2.0" macos-release@^3.1.0: version "3.2.0" From 99151f0048ff3f41d7ea26a2c1421b0c2a5b5af7 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Wed, 28 Feb 2024 10:14:42 -0700 Subject: [PATCH 255/338] add set coordinator script --- .github/workflows/finalize-round.yml | 2 +- contracts/tasks/configure/setCoordinator.ts | 36 +++++++++++++++++++++ contracts/tasks/index.ts | 1 + contracts/tasks/maciPubkey.ts | 3 ++ 4 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 contracts/tasks/configure/setCoordinator.ts diff --git a/.github/workflows/finalize-round.yml b/.github/workflows/finalize-round.yml index 8ad28559e..f8ff39b4b 100644 --- a/.github/workflows/finalize-round.yml +++ b/.github/workflows/finalize-round.yml @@ -22,7 +22,7 @@ on: env: NODE_VERSION: 20.x - COORDINATOR_MACISK: ${{ secrets.ARBITRUM_GOERLI_COORDINATOR_MACI_PRIVATE_KEY }} + COORDINATOR_MACISK: ${{ secrets.COORDINATOR_MACI_PRIVATE_KEY }} WALLET_PRIVATE_KEY: ${{ secrets.ARBITRUM_GOERLI_COORDINATOR_WALLET_PRIVATE_KEY }} CIRCUIT_TYPE: micro ZKEYS_DOWNLOAD_SCRIPT: "download-6-8-2-3.sh" diff --git a/contracts/tasks/configure/setCoordinator.ts b/contracts/tasks/configure/setCoordinator.ts new file mode 100644 index 000000000..1b0587e1b --- /dev/null +++ b/contracts/tasks/configure/setCoordinator.ts @@ -0,0 +1,36 @@ +/** + * Set the coordinator in clrfund + * Usage: + * hardhat set-coordinator \ + * --clrfund \ + * --coordinator \ + * --pubkey \ + * --network + */ +import { BaseContract } from 'ethers' +import { task } from 'hardhat/config' +import { ClrFund } from '../../typechain-types' +import { PubKey } from '@clrfund/common' + +task('set-coordinator', 'Set the Clrfund coordinator') + .addParam('clrfund', 'The ClrFund contract address') + .addParam('coordinator', 'The coordinator wallet address') + .addParam('pubkey', 'The coordinator MACI public key') + .setAction(async ({ clrfund, coordinator, pubkey }, { ethers }) => { + const clrfundContract = (await ethers.getContractAt( + 'ClrFund', + clrfund + )) as BaseContract as ClrFund + + const coordinatorPubkey = PubKey.deserialize(pubkey) + const tx = await clrfundContract.setCoordinator( + coordinator, + coordinatorPubkey.asContractParam() + ) + const receipt = await tx.wait() + if (receipt?.status !== 1) { + throw new Error('Failed to set coordinator') + } + + console.log('Set coordinator at tx', tx.hash) + }) diff --git a/contracts/tasks/index.ts b/contracts/tasks/index.ts index 21fdac621..5c599a882 100644 --- a/contracts/tasks/index.ts +++ b/contracts/tasks/index.ts @@ -17,6 +17,7 @@ import './configure/setPollFactory' import './configure/setRecipientRegistry' import './configure/setUserRegistry' import './configure/setStorageRoot' +import './configure/setCoordinator' import './configure/setToken' import './testutils/vote' import './testutils/contribute' diff --git a/contracts/tasks/maciPubkey.ts b/contracts/tasks/maciPubkey.ts index ed70a9389..c69ff002a 100644 --- a/contracts/tasks/maciPubkey.ts +++ b/contracts/tasks/maciPubkey.ts @@ -14,8 +14,11 @@ task('maci-pubkey', 'Get the serialized MACI public key') .addOptionalParam('macisk', 'MACI secret key') .setAction(async ({ x, y, macisk }) => { if (macisk) { + const isValid = PrivKey.isValidSerializedPrivKey(macisk) + console.log('isValid', isValid) const keypair = new Keypair(PrivKey.deserialize(macisk)) console.log(`Public Key: ${keypair.pubKey.serialize()}`) + console.log(keypair.pubKey.asContractParam()) } else { if (!x || !y) { console.error('Must provide either macisk or x y values') From 83f661e89a841d15f25f3cd9a63100fa5daef156 Mon Sep 17 00:00:00 2001 From: omahs <73983677+omahs@users.noreply.github.com> Date: Thu, 29 Feb 2024 09:13:47 +0100 Subject: [PATCH 256/338] fix link --- vue-app/src/views/AboutQuadraticFunding.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vue-app/src/views/AboutQuadraticFunding.vue b/vue-app/src/views/AboutQuadraticFunding.vue index f536b1047..d78d93319 100644 --- a/vue-app/src/views/AboutQuadraticFunding.vue +++ b/vue-app/src/views/AboutQuadraticFunding.vue @@ -79,7 +79,7 @@

{{ $t('quadratic_funding.resources.h2') }}

  • - {{ + {{ $t('quadratic_funding.resources.li1') }}
  • From e74830cf0e93cddf1be396a0c4f307004bf0449c Mon Sep 17 00:00:00 2001 From: yuetloo Date: Thu, 29 Feb 2024 13:23:30 -0700 Subject: [PATCH 257/338] add option to override default JSONRPC url --- .github/workflows/finalize-round.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/finalize-round.yml b/.github/workflows/finalize-round.yml index f8ff39b4b..f34619b5d 100644 --- a/.github/workflows/finalize-round.yml +++ b/.github/workflows/finalize-round.yml @@ -19,6 +19,9 @@ on: description: 'Network' required: true default: 'optimism-sepolia' + jsonrpc_url: + description: jsonrpc url to node + required: false env: NODE_VERSION: 20.x @@ -26,6 +29,7 @@ env: WALLET_PRIVATE_KEY: ${{ secrets.ARBITRUM_GOERLI_COORDINATOR_WALLET_PRIVATE_KEY }} CIRCUIT_TYPE: micro ZKEYS_DOWNLOAD_SCRIPT: "download-6-8-2-3.sh" + JSONRPC_HTTP_URL: ${{ github.event.inputs.jsonrpc_url }} jobs: finalize: From 5356ae7c783061975109a6dd55218e4adcfb6489 Mon Sep 17 00:00:00 2001 From: Crisgarner <@crisgarner> Date: Fri, 1 Mar 2024 18:24:18 -0600 Subject: [PATCH 258/338] added Zupass User Registry --- .../userRegistry/ZupassUserRegistry.sol | 76 +++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 contracts/contracts/userRegistry/ZupassUserRegistry.sol diff --git a/contracts/contracts/userRegistry/ZupassUserRegistry.sol b/contracts/contracts/userRegistry/ZupassUserRegistry.sol new file mode 100644 index 000000000..0d7165bc9 --- /dev/null +++ b/contracts/contracts/userRegistry/ZupassUserRegistry.sol @@ -0,0 +1,76 @@ +// SPDX-License-Identifier: GPL-3.0 + +pragma solidity ^0.6.12; + +import '@openzeppelin/contracts/access/Ownable.sol'; + +import './IUserRegistry.sol'; + +/** + * @dev A simple user registry managed by a trusted entity. + */ +contract ZupassUserRegistry is Ownable, IUserRegistry { + + mapping(address => bool) private users; + mapping(uint256 => bool) private semaphoreIds; + mapping(address => uint256) private userTosemaphoreId; + + // Events + event UserAdded(address indexed _user, uint256 _semaphoreId); + event UserRemoved(address indexed _user); + + /** + * @dev Add verified unique user to the registry. + */ + function addUser(address _user, uint256 _semaphoreId) + external + onlyOwner + { + require(_user != address(0), 'UserRegistry: User address is zero'); + require(!users[_user], 'UserRegistry: User already verified'); + users[_user] = true; + semaphoreIds[_semaphoreId] = true; + userTosemaphoreId[_user] = _semaphoreId; + emit UserAdded(_user, _semaphoreId); + } + + /** + * @dev Remove user from the registry. + */ + function removeUser(address _user) + external + onlyOwner + { + require(users[_user], 'UserRegistry: User is not in the registry'); + uint256 _semaphoreId = userTosemaphoreId[_user]; + delete users[_user]; + delete semaphoreIds[_semaphoreId]; + delete userTosemaphoreId[_user]; + emit UserRemoved(_user); + } + + /** + * @dev Check if the user is verified. + */ + function isVerifiedUser(address _user) + override + external + view + returns (bool) + { + return users[_user]; + } + + /** + * @dev Check if the semaphore Id is verified. + */ + function isVerifiedSemaphoreId(uint256 _semaphoreId) + override + external + view + returns (bool) + { + return semaphoreIds[_semaphoreId]; + } + +} From 23f5c481c223fd10541211a95b6561c1b46e85f5 Mon Sep 17 00:00:00 2001 From: Crisgarner <@crisgarner> Date: Fri, 1 Mar 2024 18:32:08 -0600 Subject: [PATCH 259/338] removed override --- contracts/contracts/userRegistry/ZupassUserRegistry.sol | 1 - 1 file changed, 1 deletion(-) diff --git a/contracts/contracts/userRegistry/ZupassUserRegistry.sol b/contracts/contracts/userRegistry/ZupassUserRegistry.sol index 0d7165bc9..05f07c863 100644 --- a/contracts/contracts/userRegistry/ZupassUserRegistry.sol +++ b/contracts/contracts/userRegistry/ZupassUserRegistry.sol @@ -65,7 +65,6 @@ contract ZupassUserRegistry is Ownable, IUserRegistry { * @dev Check if the semaphore Id is verified. */ function isVerifiedSemaphoreId(uint256 _semaphoreId) - override external view returns (bool) From c5a5afa79b0b596a1da2e7b2261e09755228b174 Mon Sep 17 00:00:00 2001 From: Crisgarner <@crisgarner> Date: Fri, 1 Mar 2024 18:44:59 -0600 Subject: [PATCH 260/338] added verification on addUser --- contracts/contracts/userRegistry/ZupassUserRegistry.sol | 1 + 1 file changed, 1 insertion(+) diff --git a/contracts/contracts/userRegistry/ZupassUserRegistry.sol b/contracts/contracts/userRegistry/ZupassUserRegistry.sol index 05f07c863..d15f21506 100644 --- a/contracts/contracts/userRegistry/ZupassUserRegistry.sol +++ b/contracts/contracts/userRegistry/ZupassUserRegistry.sol @@ -28,6 +28,7 @@ contract ZupassUserRegistry is Ownable, IUserRegistry { { require(_user != address(0), 'UserRegistry: User address is zero'); require(!users[_user], 'UserRegistry: User already verified'); + require(!semaphoreIds[_semaphoreId], 'UserRegistry: Semaphore Id already registred' ); users[_user] = true; semaphoreIds[_semaphoreId] = true; userTosemaphoreId[_user] = _semaphoreId; From 69a6919b58bb601a611850740a3fbdd9f7306be3 Mon Sep 17 00:00:00 2001 From: Crisgarner <@crisgarner> Date: Fri, 1 Mar 2024 18:59:36 -0600 Subject: [PATCH 261/338] fixed typo + check if semaphoreId not zero --- contracts/contracts/userRegistry/ZupassUserRegistry.sol | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/contracts/contracts/userRegistry/ZupassUserRegistry.sol b/contracts/contracts/userRegistry/ZupassUserRegistry.sol index d15f21506..7a3a8a9ef 100644 --- a/contracts/contracts/userRegistry/ZupassUserRegistry.sol +++ b/contracts/contracts/userRegistry/ZupassUserRegistry.sol @@ -27,8 +27,9 @@ contract ZupassUserRegistry is Ownable, IUserRegistry { onlyOwner { require(_user != address(0), 'UserRegistry: User address is zero'); + require(_semaphoreId != 0, 'UserRegistry: Semaphore Id is zero'); require(!users[_user], 'UserRegistry: User already verified'); - require(!semaphoreIds[_semaphoreId], 'UserRegistry: Semaphore Id already registred' ); + require(!semaphoreIds[_semaphoreId], 'UserRegistry: Semaphore Id already registered' ); users[_user] = true; semaphoreIds[_semaphoreId] = true; userTosemaphoreId[_user] = _semaphoreId; From 945deaa1a8988204e6ea839e72fe4837b2d9302d Mon Sep 17 00:00:00 2001 From: yuetloo Date: Sat, 2 Mar 2024 00:18:23 -0700 Subject: [PATCH 262/338] add zupassUserRegistry --- .../userRegistry/ZupassUserRegistry.sol | 2 +- contracts/tests/userRegistryZupass.ts | 110 ++++++++++++++++++ 2 files changed, 111 insertions(+), 1 deletion(-) create mode 100644 contracts/tests/userRegistryZupass.ts diff --git a/contracts/contracts/userRegistry/ZupassUserRegistry.sol b/contracts/contracts/userRegistry/ZupassUserRegistry.sol index 7a3a8a9ef..297f4b5da 100644 --- a/contracts/contracts/userRegistry/ZupassUserRegistry.sol +++ b/contracts/contracts/userRegistry/ZupassUserRegistry.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-3.0 -pragma solidity ^0.6.12; +pragma solidity ^0.8.10; import '@openzeppelin/contracts/access/Ownable.sol'; diff --git a/contracts/tests/userRegistryZupass.ts b/contracts/tests/userRegistryZupass.ts new file mode 100644 index 000000000..3f88f9fe1 --- /dev/null +++ b/contracts/tests/userRegistryZupass.ts @@ -0,0 +1,110 @@ +import { ethers } from 'hardhat' +import { expect } from 'chai' +import { Contract, Wallet } from 'ethers' + +import { ZERO_ADDRESS } from '../utils/constants' +import { HardhatEthersSigner } from '@nomicfoundation/hardhat-ethers/signers' + +describe('Zupass User Registry', () => { + let registry: Contract + let user: HardhatEthersSigner + + beforeEach(async () => { + let deployer: HardhatEthersSigner + ;[, deployer, user] = await ethers.getSigners() + + const ZupassUserRegistry = await ethers.getContractFactory( + 'ZupassUserRegistry', + deployer + ) + registry = await ZupassUserRegistry.deploy() + }) + + describe('managing verified users', () => { + it('allows owner to add user to the registry', async () => { + const semaphoreId = 1 + expect(await registry.isVerifiedUser(user.address)).to.equal(false) + await expect(registry.addUser(user.address, semaphoreId)) + .to.emit(registry, 'UserAdded') + .withArgs(user.address, semaphoreId) + expect(await registry.isVerifiedUser(user.address)).to.equal(true) + }) + + it('rejects zero-address', async () => { + const semaphoreId = 1 + await expect( + registry.addUser(ZERO_ADDRESS, semaphoreId) + ).to.be.revertedWith('UserRegistry: User address is zero') + }) + + it('rejects zero semphoreId', async () => { + const semaphoreId = 0 + await expect( + registry.addUser(user.address, semaphoreId) + ).to.be.revertedWith('UserRegistry: Semaphore Id is zero') + }) + + it('rejects user who is already in the registry', async () => { + const semaphoreId = 1 + await registry.addUser(user.address, semaphoreId) + await expect( + registry.addUser(user.address, semaphoreId) + ).to.be.revertedWith('UserRegistry: User already verified') + }) + + it('rejects semphoreId that is already in the registry', async () => { + const semaphoreId = 1 + const anotherUser = Wallet.createRandom() + await registry.addUser(user.address, semaphoreId) + await expect( + registry.addUser(anotherUser.address, semaphoreId) + ).to.be.revertedWith('UserRegistry: Semaphore Id already registered') + }) + + it('allows only owner to add users', async () => { + const semaphoreId = 1 + const registryAsUser = registry.connect(user) as Contract + await expect( + registryAsUser.addUser(user.address, semaphoreId) + ).to.be.revertedWith('Ownable: caller is not the owner') + }) + + it('allows owner to remove user', async () => { + const semaphoreId = 1 + await registry.addUser(user.address, semaphoreId) + await expect(registry.removeUser(user.address)) + .to.emit(registry, 'UserRemoved') + .withArgs(user.address) + expect(await registry.isVerifiedUser(user.address)).to.equal(false) + }) + + it('reverts when trying to remove user who is not in the registry', async () => { + await expect(registry.removeUser(user.address)).to.be.revertedWith( + 'UserRegistry: User is not in the registry' + ) + }) + + it('allows only owner to remove users', async () => { + const semaphoreId = 1 + await registry.addUser(user.address, semaphoreId) + const registryAsUser = registry.connect(user) as Contract + await expect(registryAsUser.removeUser(user.address)).to.be.revertedWith( + 'Ownable: caller is not the owner' + ) + }) + + it('checks valid semaphoreId', async () => { + const semaphoreId = 1 + await registry.addUser(user.address, semaphoreId) + const isVerified = await registry.isVerifiedSemaphoreId(semaphoreId) + expect(isVerified).to.be.true + }) + + it('checks invalid semaphoreId', async () => { + const semaphoreId = 1 + await registry.addUser(user.address, semaphoreId) + const isVerified = await registry.isVerifiedSemaphoreId(3) + expect(isVerified).to.be.false + }) + }) +}) From ee144f005bf47ee67d4f9c31c76ed0495bfbe56e Mon Sep 17 00:00:00 2001 From: yuetloo Date: Tue, 5 Mar 2024 13:39:46 -0500 Subject: [PATCH 263/338] use poll.publishMessageBatch in MACI v1 --- contracts/contracts/FundingRound.sol | 18 -- contracts/e2e/index.ts | 35 ++-- contracts/tasks/testutils/vote.ts | 10 +- contracts/tests/round.ts | 2 +- subgraph/abis/FundingRound.json | 42 ----- subgraph/abis/Poll.json | 47 +++++ subgraph/config/arbitrum-sepolia.json | 6 +- subgraph/generated/ClrFund/FundingRound.ts | 54 ------ subgraph/generated/ClrFund/Poll.ts | 54 ++++++ subgraph/generated/schema.ts | 130 ------------- .../templates/FundingRound/FundingRound.ts | 54 ------ .../generated/templates/MACI/FundingRound.ts | 54 ------ .../generated/templates/Poll/FundingRound.ts | 54 ------ subgraph/generated/templates/Poll/Poll.ts | 54 ++++++ subgraph/schema.graphql | 11 -- subgraph/src/FundingRoundMapping.ts | 31 ---- subgraph/subgraph.template.yaml | 2 - subgraph/subgraph.yaml | 2 - vue-app/src/api/contributions.ts | 11 -- vue-app/src/components/ContributionModal.vue | 11 +- vue-app/src/components/ReallocationModal.vue | 9 +- vue-app/src/graphql/API.ts | 171 +++--------------- .../queries/GetContributorVotes.graphql | 10 - vue-app/src/stores/app.ts | 1 + vue-app/src/stores/user.ts | 5 +- vue-app/src/utils/contracts.ts | 16 +- 26 files changed, 239 insertions(+), 655 deletions(-) delete mode 100644 vue-app/src/graphql/queries/GetContributorVotes.graphql diff --git a/contracts/contracts/FundingRound.sol b/contracts/contracts/FundingRound.sol index a2f839dc0..38bb4f1ee 100644 --- a/contracts/contracts/FundingRound.sol +++ b/contracts/contracts/FundingRound.sol @@ -350,24 +350,6 @@ contract FundingRound is return initialVoiceCredits; } - /** - * @dev Submit a batch of messages along with corresponding ephemeral public keys. - */ - function submitMessageBatch( - Message[] calldata _messages, - PubKey[] calldata _encPubKeys - ) - external - { - if (isAddressZero(address(poll))) revert PollNotSet(); - - uint256 batchSize = _messages.length; - for (uint8 i = 0; i < batchSize; i++) { - poll.publishMessage(_messages[i], _encPubKeys[i]); - } - emit Voted(msg.sender); - } - /** * @dev Withdraw contributed funds for a list of contributors if the round has been cancelled. */ diff --git a/contracts/e2e/index.ts b/contracts/e2e/index.ts index 7d886d6d2..9a9d881fb 100644 --- a/contracts/e2e/index.ts +++ b/contracts/e2e/index.ts @@ -132,6 +132,7 @@ describe('End-to-end Tests', function () { let clrfund: Contract let token: Contract let fundingRound: Contract + let pollContract: Contract let maci: Contract let pollId: bigint let coordinatorKeypair: Keypair @@ -268,6 +269,8 @@ describe('End-to-end Tests', function () { maci = await ethers.getContractAt('MACI', maciAddress) pollId = await fundingRound.pollId() + const pollAddress = await fundingRound.poll() + pollContract = await ethers.getContractAt('Poll', pollAddress) await mine() }) @@ -520,7 +523,7 @@ describe('End-to-end Tests', function () { nonce += 1 } - await (fundingRound.connect(contributor) as Contract).submitMessageBatch( + await (pollContract.connect(contributor) as Contract).publishMessageBatch( messages.reverse().map((msg) => msg.asContractParam()), encPubKeys.reverse().map((key) => key.asContractParam()) ) @@ -574,7 +577,7 @@ describe('End-to-end Tests', function () { encPubKeys.push(encPubKey) nonce += 1 } - await (fundingRound.connect(contributor) as Contract).submitMessageBatch( + await (pollContract.connect(contributor) as Contract).publishMessageBatch( messages.reverse().map((msg) => msg.asContractParam()), encPubKeys.reverse().map((key) => key.asContractParam()) ) @@ -628,7 +631,7 @@ describe('End-to-end Tests', function () { messages.push(message) encPubKeys.push(encPubKey) } - await (fundingRound.connect(contributor) as Contract).submitMessageBatch( + await (pollContract.connect(contributor) as Contract).publishMessageBatch( messages.reverse().map((msg) => msg.asContractParam()), encPubKeys.reverse().map((key) => key.asContractParam()) ) @@ -643,8 +646,8 @@ describe('End-to-end Tests', function () { pollId ) await ( - fundingRound.connect(contribution2.signer) as Contract - ).submitMessageBatch( + pollContract.connect(contribution2.signer) as Contract + ).publishMessageBatch( [message.asContractParam()], [encPubKey.asContractParam()] ) @@ -705,7 +708,7 @@ describe('End-to-end Tests', function () { messages.push(message) encPubKeys.push(encPubKey) } - await (fundingRound.connect(contributor) as Contract).submitMessageBatch( + await (pollContract.connect(contributor) as Contract).publishMessageBatch( messages.reverse().map((msg) => msg.asContractParam()), encPubKeys.reverse().map((key) => key.asContractParam()) ) @@ -722,8 +725,8 @@ describe('End-to-end Tests', function () { pollId ) await ( - fundingRound.connect(contribution2.signer) as Contract - ).submitMessageBatch( + pollContract.connect(contribution2.signer) as Contract + ).publishMessageBatch( [message.asContractParam()], [encPubKey.asContractParam()] ) @@ -789,7 +792,7 @@ describe('End-to-end Tests', function () { messages.push(message) encPubKeys.push(encPubKey) } - await (fundingRound.connect(contributor) as Contract).submitMessageBatch( + await (pollContract.connect(contributor) as Contract).publishMessageBatch( messages.reverse().map((msg) => msg.asContractParam()), encPubKeys.reverse().map((key) => key.asContractParam()) ) @@ -807,8 +810,8 @@ describe('End-to-end Tests', function () { pollId ) await ( - fundingRound.connect(contribution2.signer) as Contract - ).submitMessageBatch( + pollContract.connect(contribution2.signer) as Contract + ).publishMessageBatch( [message.asContractParam()], [encPubKey.asContractParam()] ) @@ -879,7 +882,7 @@ describe('End-to-end Tests', function () { ) messageBatch1.push(message) encPubKeyBatch1.push(encPubKey) - await (fundingRound.connect(contributor) as Contract).submitMessageBatch( + await (pollContract.connect(contributor) as Contract).publishMessageBatch( messageBatch1.reverse().map((msg) => msg.asContractParam()), encPubKeyBatch1.reverse().map((key) => key.asContractParam()) ) @@ -927,7 +930,7 @@ describe('End-to-end Tests', function () { ) messageBatch2.push(message) encPubKeyBatch2.push(encPubKey) - await (fundingRound.connect(contributor) as Contract).submitMessageBatch( + await (pollContract.connect(contributor) as Contract).publishMessageBatch( messageBatch2.reverse().map((msg) => msg.asContractParam()), encPubKeyBatch2.reverse().map((key) => key.asContractParam()) ) @@ -944,8 +947,8 @@ describe('End-to-end Tests', function () { pollId ) await ( - fundingRound.connect(contribution2.signer) as Contract - ).submitMessageBatch( + pollContract.connect(contribution2.signer) as Contract + ).publishMessageBatch( [message.asContractParam()], [encPubKey.asContractParam()] ) @@ -997,7 +1000,7 @@ describe('End-to-end Tests', function () { nonce += 1 } - await (fundingRound.connect(contributor) as Contract).submitMessageBatch( + await (pollContract.connect(contributor) as Contract).publishMessageBatch( messages.reverse().map((msg) => msg.asContractParam()), encPubKeys.reverse().map((key) => key.asContractParam()) ) diff --git a/contracts/tasks/testutils/vote.ts b/contracts/tasks/testutils/vote.ts index 1dd13bb4f..ade378cb8 100644 --- a/contracts/tasks/testutils/vote.ts +++ b/contracts/tasks/testutils/vote.ts @@ -87,12 +87,18 @@ async function main({ stateFile, ethers }: Args) { nonce += 1 } - const fundingRoundAsContributor = await ethers.getContractAt( + const fundingRound = await ethers.getContractAt( 'FundingRound', state.fundingRound, contributor ) - await fundingRoundAsContributor.submitMessageBatch( + const pollAddress = await fundingRound.poll() + const pollContract = await ethers.getContractAt( + 'Poll', + pollAddress, + contributor + ) + await pollContract.publishMessageBatch( messages.reverse().map((msg) => msg.asContractParam()), encPubKeys.reverse().map((key) => key.asContractParam()) ) diff --git a/contracts/tests/round.ts b/contracts/tests/round.ts index ecc51c7cb..c0fa4f813 100644 --- a/contracts/tests/round.ts +++ b/contracts/tests/round.ts @@ -434,7 +434,7 @@ describe('Funding Round', () => { messages.push(message.asContractParam()) encPubKeys.push(encPubKey.asContractParam()) } - const messageBatchSubmitted = await fundingRound.submitMessageBatch( + const messageBatchSubmitted = await poll.publishMessageBatch( messages, encPubKeys ) diff --git a/subgraph/abis/FundingRound.json b/subgraph/abis/FundingRound.json index 4c3cce974..7bfd15417 100644 --- a/subgraph/abis/FundingRound.json +++ b/subgraph/abis/FundingRound.json @@ -921,48 +921,6 @@ "stateMutability": "nonpayable", "type": "function" }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "msgType", - "type": "uint256" - }, - { - "internalType": "uint256[10]", - "name": "data", - "type": "uint256[10]" - } - ], - "internalType": "struct DomainObjs.Message[]", - "name": "_messages", - "type": "tuple[]" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "x", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "y", - "type": "uint256" - } - ], - "internalType": "struct DomainObjs.PubKey[]", - "name": "_encPubKeys", - "type": "tuple[]" - } - ], - "name": "submitMessageBatch", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, { "inputs": [], "name": "tally", diff --git a/subgraph/abis/Poll.json b/subgraph/abis/Poll.json index b5582ae6f..671177ba2 100644 --- a/subgraph/abis/Poll.json +++ b/subgraph/abis/Poll.json @@ -93,6 +93,11 @@ "stateMutability": "payable", "type": "constructor" }, + { + "inputs": [], + "name": "InvalidBatchLength", + "type": "error" + }, { "inputs": [], "name": "InvalidMessage", @@ -818,6 +823,48 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "msgType", + "type": "uint256" + }, + { + "internalType": "uint256[10]", + "name": "data", + "type": "uint256[10]" + } + ], + "internalType": "struct DomainObjs.Message[]", + "name": "_messages", + "type": "tuple[]" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "x", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "y", + "type": "uint256" + } + ], + "internalType": "struct DomainObjs.PubKey[]", + "name": "_encPubKeys", + "type": "tuple[]" + } + ], + "name": "publishMessageBatch", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [], "name": "renounceOwnership", diff --git a/subgraph/config/arbitrum-sepolia.json b/subgraph/config/arbitrum-sepolia.json index 3345fa072..53c80a2a6 100644 --- a/subgraph/config/arbitrum-sepolia.json +++ b/subgraph/config/arbitrum-sepolia.json @@ -1,6 +1,6 @@ { "network": "arbitrum-sepolia", - "address": "0x8461DF39EabC3dd4A0eb2C8101Fa906b94d6e6ad", - "clrFundStartBlock": 18158680, - "recipientRegistryStartBlock": 18158680 + "address": "0x9E43d48513FDe2701288bDCEd1057109E592f048", + "clrFundStartBlock": 20200250, + "recipientRegistryStartBlock": 20200250 } diff --git a/subgraph/generated/ClrFund/FundingRound.ts b/subgraph/generated/ClrFund/FundingRound.ts index b058ff52f..32be22df9 100644 --- a/subgraph/generated/ClrFund/FundingRound.ts +++ b/subgraph/generated/ClrFund/FundingRound.ts @@ -1273,60 +1273,6 @@ export class SetMaciInstanceCall__Outputs { } } -export class SubmitMessageBatchCall extends ethereum.Call { - get inputs(): SubmitMessageBatchCall__Inputs { - return new SubmitMessageBatchCall__Inputs(this); - } - - get outputs(): SubmitMessageBatchCall__Outputs { - return new SubmitMessageBatchCall__Outputs(this); - } -} - -export class SubmitMessageBatchCall__Inputs { - _call: SubmitMessageBatchCall; - - constructor(call: SubmitMessageBatchCall) { - this._call = call; - } - - get _messages(): Array { - return this._call.inputValues[0].value.toTupleArray(); - } - - get _encPubKeys(): Array { - return this._call.inputValues[1].value.toTupleArray(); - } -} - -export class SubmitMessageBatchCall__Outputs { - _call: SubmitMessageBatchCall; - - constructor(call: SubmitMessageBatchCall) { - this._call = call; - } -} - -export class SubmitMessageBatchCall_messagesStruct extends ethereum.Tuple { - get msgType(): BigInt { - return this[0].toBigInt(); - } - - get data(): Array { - return this[1].toBigIntArray(); - } -} - -export class SubmitMessageBatchCall_encPubKeysStruct extends ethereum.Tuple { - get x(): BigInt { - return this[0].toBigInt(); - } - - get y(): BigInt { - return this[1].toBigInt(); - } -} - export class TransferOwnershipCall extends ethereum.Call { get inputs(): TransferOwnershipCall__Inputs { return new TransferOwnershipCall__Inputs(this); diff --git a/subgraph/generated/ClrFund/Poll.ts b/subgraph/generated/ClrFund/Poll.ts index 0ca5abbe7..f8e20dff2 100644 --- a/subgraph/generated/ClrFund/Poll.ts +++ b/subgraph/generated/ClrFund/Poll.ts @@ -1365,6 +1365,60 @@ export class PublishMessageCall_encPubKeyStruct extends ethereum.Tuple { } } +export class PublishMessageBatchCall extends ethereum.Call { + get inputs(): PublishMessageBatchCall__Inputs { + return new PublishMessageBatchCall__Inputs(this); + } + + get outputs(): PublishMessageBatchCall__Outputs { + return new PublishMessageBatchCall__Outputs(this); + } +} + +export class PublishMessageBatchCall__Inputs { + _call: PublishMessageBatchCall; + + constructor(call: PublishMessageBatchCall) { + this._call = call; + } + + get _messages(): Array { + return this._call.inputValues[0].value.toTupleArray(); + } + + get _encPubKeys(): Array { + return this._call.inputValues[1].value.toTupleArray(); + } +} + +export class PublishMessageBatchCall__Outputs { + _call: PublishMessageBatchCall; + + constructor(call: PublishMessageBatchCall) { + this._call = call; + } +} + +export class PublishMessageBatchCall_messagesStruct extends ethereum.Tuple { + get msgType(): BigInt { + return this[0].toBigInt(); + } + + get data(): Array { + return this[1].toBigIntArray(); + } +} + +export class PublishMessageBatchCall_encPubKeysStruct extends ethereum.Tuple { + get x(): BigInt { + return this[0].toBigInt(); + } + + get y(): BigInt { + return this[1].toBigInt(); + } +} + export class RenounceOwnershipCall extends ethereum.Call { get inputs(): RenounceOwnershipCall__Inputs { return new RenounceOwnershipCall__Inputs(this); diff --git a/subgraph/generated/schema.ts b/subgraph/generated/schema.ts index 448578c66..0cc9e7c47 100644 --- a/subgraph/generated/schema.ts +++ b/subgraph/generated/schema.ts @@ -1158,10 +1158,6 @@ export class FundingRound extends Entity { ); } - get votes(): VoteLoader { - return new VoteLoader("FundingRound", this.get("id")!.toString(), "votes"); - } - get createdAt(): string | null { let value = this.get("createdAt"); if (!value || value.kind == ValueKind.NULL) { @@ -1876,10 +1872,6 @@ export class Contributor extends Entity { this.set("contributorRegistry", Value.fromString(value)); } - get votes(): VoteLoader { - return new VoteLoader("Contributor", this.get("id")!.toString(), "votes"); - } - get verifiedTimeStamp(): string | null { let value = this.get("verifiedTimeStamp"); if (!value || value.kind == ValueKind.NULL) { @@ -2194,110 +2186,6 @@ export class Contribution extends Entity { } } -export class Vote extends Entity { - constructor(id: string) { - super(); - this.set("id", Value.fromString(id)); - } - - save(): void { - let id = this.get("id"); - assert(id != null, "Cannot save Vote entity without an ID"); - if (id) { - assert( - id.kind == ValueKind.STRING, - `Entities of type Vote must have an ID of type String but the id '${id.displayData()}' is of type ${id.displayKind()}`, - ); - store.set("Vote", id.toString(), this); - } - } - - static loadInBlock(id: string): Vote | null { - return changetype(store.get_in_block("Vote", id)); - } - - static load(id: string): Vote | null { - return changetype(store.get("Vote", id)); - } - - get id(): string { - let value = this.get("id"); - if (!value || value.kind == ValueKind.NULL) { - throw new Error("Cannot return null for a required field."); - } else { - return value.toString(); - } - } - - set id(value: string) { - this.set("id", Value.fromString(value)); - } - - get contributor(): string | null { - let value = this.get("contributor"); - if (!value || value.kind == ValueKind.NULL) { - return null; - } else { - return value.toString(); - } - } - - set contributor(value: string | null) { - if (!value) { - this.unset("contributor"); - } else { - this.set("contributor", Value.fromString(value)); - } - } - - get fundingRound(): string | null { - let value = this.get("fundingRound"); - if (!value || value.kind == ValueKind.NULL) { - return null; - } else { - return value.toString(); - } - } - - set fundingRound(value: string | null) { - if (!value) { - this.unset("fundingRound"); - } else { - this.set("fundingRound", Value.fromString(value)); - } - } - - get voterAddress(): Bytes | null { - let value = this.get("voterAddress"); - if (!value || value.kind == ValueKind.NULL) { - return null; - } else { - return value.toBytes(); - } - } - - set voterAddress(value: Bytes | null) { - if (!value) { - this.unset("voterAddress"); - } else { - this.set("voterAddress", Value.fromBytes(value)); - } - } - - get secret(): boolean { - let value = this.get("secret"); - if (!value || value.kind == ValueKind.NULL) { - return false; - } else { - return value.toBoolean(); - } - } - - set secret(value: boolean) { - this.set("secret", Value.fromBoolean(value)); - } -} - export class Donation extends Entity { constructor(id: string) { super(); @@ -2637,21 +2525,3 @@ export class ContributionLoader extends Entity { return changetype(value); } } - -export class VoteLoader extends Entity { - _entity: string; - _field: string; - _id: string; - - constructor(entity: string, id: string, field: string) { - super(); - this._entity = entity; - this._id = id; - this._field = field; - } - - load(): Vote[] { - let value = store.loadRelated(this._entity, this._id, this._field); - return changetype(value); - } -} diff --git a/subgraph/generated/templates/FundingRound/FundingRound.ts b/subgraph/generated/templates/FundingRound/FundingRound.ts index b058ff52f..32be22df9 100644 --- a/subgraph/generated/templates/FundingRound/FundingRound.ts +++ b/subgraph/generated/templates/FundingRound/FundingRound.ts @@ -1273,60 +1273,6 @@ export class SetMaciInstanceCall__Outputs { } } -export class SubmitMessageBatchCall extends ethereum.Call { - get inputs(): SubmitMessageBatchCall__Inputs { - return new SubmitMessageBatchCall__Inputs(this); - } - - get outputs(): SubmitMessageBatchCall__Outputs { - return new SubmitMessageBatchCall__Outputs(this); - } -} - -export class SubmitMessageBatchCall__Inputs { - _call: SubmitMessageBatchCall; - - constructor(call: SubmitMessageBatchCall) { - this._call = call; - } - - get _messages(): Array { - return this._call.inputValues[0].value.toTupleArray(); - } - - get _encPubKeys(): Array { - return this._call.inputValues[1].value.toTupleArray(); - } -} - -export class SubmitMessageBatchCall__Outputs { - _call: SubmitMessageBatchCall; - - constructor(call: SubmitMessageBatchCall) { - this._call = call; - } -} - -export class SubmitMessageBatchCall_messagesStruct extends ethereum.Tuple { - get msgType(): BigInt { - return this[0].toBigInt(); - } - - get data(): Array { - return this[1].toBigIntArray(); - } -} - -export class SubmitMessageBatchCall_encPubKeysStruct extends ethereum.Tuple { - get x(): BigInt { - return this[0].toBigInt(); - } - - get y(): BigInt { - return this[1].toBigInt(); - } -} - export class TransferOwnershipCall extends ethereum.Call { get inputs(): TransferOwnershipCall__Inputs { return new TransferOwnershipCall__Inputs(this); diff --git a/subgraph/generated/templates/MACI/FundingRound.ts b/subgraph/generated/templates/MACI/FundingRound.ts index b058ff52f..32be22df9 100644 --- a/subgraph/generated/templates/MACI/FundingRound.ts +++ b/subgraph/generated/templates/MACI/FundingRound.ts @@ -1273,60 +1273,6 @@ export class SetMaciInstanceCall__Outputs { } } -export class SubmitMessageBatchCall extends ethereum.Call { - get inputs(): SubmitMessageBatchCall__Inputs { - return new SubmitMessageBatchCall__Inputs(this); - } - - get outputs(): SubmitMessageBatchCall__Outputs { - return new SubmitMessageBatchCall__Outputs(this); - } -} - -export class SubmitMessageBatchCall__Inputs { - _call: SubmitMessageBatchCall; - - constructor(call: SubmitMessageBatchCall) { - this._call = call; - } - - get _messages(): Array { - return this._call.inputValues[0].value.toTupleArray(); - } - - get _encPubKeys(): Array { - return this._call.inputValues[1].value.toTupleArray(); - } -} - -export class SubmitMessageBatchCall__Outputs { - _call: SubmitMessageBatchCall; - - constructor(call: SubmitMessageBatchCall) { - this._call = call; - } -} - -export class SubmitMessageBatchCall_messagesStruct extends ethereum.Tuple { - get msgType(): BigInt { - return this[0].toBigInt(); - } - - get data(): Array { - return this[1].toBigIntArray(); - } -} - -export class SubmitMessageBatchCall_encPubKeysStruct extends ethereum.Tuple { - get x(): BigInt { - return this[0].toBigInt(); - } - - get y(): BigInt { - return this[1].toBigInt(); - } -} - export class TransferOwnershipCall extends ethereum.Call { get inputs(): TransferOwnershipCall__Inputs { return new TransferOwnershipCall__Inputs(this); diff --git a/subgraph/generated/templates/Poll/FundingRound.ts b/subgraph/generated/templates/Poll/FundingRound.ts index b058ff52f..32be22df9 100644 --- a/subgraph/generated/templates/Poll/FundingRound.ts +++ b/subgraph/generated/templates/Poll/FundingRound.ts @@ -1273,60 +1273,6 @@ export class SetMaciInstanceCall__Outputs { } } -export class SubmitMessageBatchCall extends ethereum.Call { - get inputs(): SubmitMessageBatchCall__Inputs { - return new SubmitMessageBatchCall__Inputs(this); - } - - get outputs(): SubmitMessageBatchCall__Outputs { - return new SubmitMessageBatchCall__Outputs(this); - } -} - -export class SubmitMessageBatchCall__Inputs { - _call: SubmitMessageBatchCall; - - constructor(call: SubmitMessageBatchCall) { - this._call = call; - } - - get _messages(): Array { - return this._call.inputValues[0].value.toTupleArray(); - } - - get _encPubKeys(): Array { - return this._call.inputValues[1].value.toTupleArray(); - } -} - -export class SubmitMessageBatchCall__Outputs { - _call: SubmitMessageBatchCall; - - constructor(call: SubmitMessageBatchCall) { - this._call = call; - } -} - -export class SubmitMessageBatchCall_messagesStruct extends ethereum.Tuple { - get msgType(): BigInt { - return this[0].toBigInt(); - } - - get data(): Array { - return this[1].toBigIntArray(); - } -} - -export class SubmitMessageBatchCall_encPubKeysStruct extends ethereum.Tuple { - get x(): BigInt { - return this[0].toBigInt(); - } - - get y(): BigInt { - return this[1].toBigInt(); - } -} - export class TransferOwnershipCall extends ethereum.Call { get inputs(): TransferOwnershipCall__Inputs { return new TransferOwnershipCall__Inputs(this); diff --git a/subgraph/generated/templates/Poll/Poll.ts b/subgraph/generated/templates/Poll/Poll.ts index 0ca5abbe7..f8e20dff2 100644 --- a/subgraph/generated/templates/Poll/Poll.ts +++ b/subgraph/generated/templates/Poll/Poll.ts @@ -1365,6 +1365,60 @@ export class PublishMessageCall_encPubKeyStruct extends ethereum.Tuple { } } +export class PublishMessageBatchCall extends ethereum.Call { + get inputs(): PublishMessageBatchCall__Inputs { + return new PublishMessageBatchCall__Inputs(this); + } + + get outputs(): PublishMessageBatchCall__Outputs { + return new PublishMessageBatchCall__Outputs(this); + } +} + +export class PublishMessageBatchCall__Inputs { + _call: PublishMessageBatchCall; + + constructor(call: PublishMessageBatchCall) { + this._call = call; + } + + get _messages(): Array { + return this._call.inputValues[0].value.toTupleArray(); + } + + get _encPubKeys(): Array { + return this._call.inputValues[1].value.toTupleArray(); + } +} + +export class PublishMessageBatchCall__Outputs { + _call: PublishMessageBatchCall; + + constructor(call: PublishMessageBatchCall) { + this._call = call; + } +} + +export class PublishMessageBatchCall_messagesStruct extends ethereum.Tuple { + get msgType(): BigInt { + return this[0].toBigInt(); + } + + get data(): Array { + return this[1].toBigIntArray(); + } +} + +export class PublishMessageBatchCall_encPubKeysStruct extends ethereum.Tuple { + get x(): BigInt { + return this[0].toBigInt(); + } + + get y(): BigInt { + return this[1].toBigInt(); + } +} + export class RenounceOwnershipCall extends ethereum.Call { get inputs(): RenounceOwnershipCall__Inputs { return new RenounceOwnershipCall__Inputs(this); diff --git a/subgraph/schema.graphql b/subgraph/schema.graphql index d337cb90d..e6fae8d30 100644 --- a/subgraph/schema.graphql +++ b/subgraph/schema.graphql @@ -83,7 +83,6 @@ type FundingRound @entity { recipients: [Recipient!] @derivedFrom(field: "fundingRounds") contributors: [Contributor!] @derivedFrom(field: "fundingRounds") contributions: [Contribution!] @derivedFrom(field: "fundingRound") - votes: [Vote!] @derivedFrom(field: "fundingRound") createdAt: String lastUpdatedAt: String } @@ -138,7 +137,6 @@ type ContributorRegistry @entity { type Contributor @entity { id: ID! contributorRegistry: ContributorRegistry! - votes: [Vote!] @derivedFrom(field: "contributor") verifiedTimeStamp: String # sponsors: [Bytes] @@ -169,15 +167,6 @@ type Contribution @entity { createdAt: String } -type Vote @entity { - id: ID! - contributor: Contributor - fundingRound: FundingRound - voterAddress: Bytes - secret: Boolean - -} - type Donation @entity { id: ID! recipient: Bytes diff --git a/subgraph/src/FundingRoundMapping.ts b/subgraph/src/FundingRoundMapping.ts index 6cd951ed2..2a5feffa7 100644 --- a/subgraph/src/FundingRoundMapping.ts +++ b/subgraph/src/FundingRoundMapping.ts @@ -6,7 +6,6 @@ import { OwnershipTransferred, TallyPublished, RegisterCall, - Voted, FundingRound as FundingRoundContract, } from '../generated/templates/FundingRound/FundingRound' import { OptimisticRecipientRegistry as RecipientRegistryContract } from '../generated/templates/FundingRound/OptimisticRecipientRegistry' @@ -17,7 +16,6 @@ import { Contribution as FundingRoundContribution, Donation, FundingRound, - Vote, } from '../generated/schema' // The following functions can then be called on this contract to access // state variables and other data: @@ -194,32 +192,3 @@ export function handleTallyPublished(event: TallyPublished): void { export function handleOwnershipTransferred(event: OwnershipTransferred): void { log.info('handleOwnershipTransferred- Funding Round', []) } - -export function handleVoted(event: Voted): void { - log.info('handleVoted', []) - - let fundingRoundId = event.address.toHexString() - let fundingRound = FundingRound.load(fundingRoundId) - if (fundingRound == null) { - log.error('Error: handleContribution failed', []) - return - } - - //NOTE: voterAddress != contributor address is possible. This logic isn't necessarily correct since anyone can submit the encrypted message, we should give the option to vote annonymously from the UI by asking them to submi the message batch from another address - let voterAddress = event.params._contributor - let voterId = voterAddress.toHexString() - let voter = Contributor.load(voterId) - let voteId = fundingRoundId.concat('-vote-').concat(voterId) - let vote = new Vote(voteId) - - //NOTE: If the contracts aren't being tracked initialize them - if (voter == null) { - vote.voterAddress = voterAddress - vote.secret = true - } else { - vote.voterAddress = voterAddress - vote.contributor = voterId - vote.secret = false - } - vote.save() -} diff --git a/subgraph/subgraph.template.yaml b/subgraph/subgraph.template.yaml index 1b8bf245b..984cc41da 100644 --- a/subgraph/subgraph.template.yaml +++ b/subgraph/subgraph.template.yaml @@ -116,8 +116,6 @@ templates: handler: handleOwnershipTransferred - event: TallyPublished(string) handler: handleTallyPublished - - event: Voted(indexed address) - handler: handleVoted file: ./src/FundingRoundMapping.ts - name: OptimisticRecipientRegistry kind: ethereum/contract diff --git a/subgraph/subgraph.yaml b/subgraph/subgraph.yaml index 0a5b17677..ec0e082d4 100644 --- a/subgraph/subgraph.yaml +++ b/subgraph/subgraph.yaml @@ -116,8 +116,6 @@ templates: handler: handleOwnershipTransferred - event: TallyPublished(string) handler: handleTallyPublished - - event: Voted(indexed address) - handler: handleVoted file: ./src/FundingRoundMapping.ts - name: OptimisticRecipientRegistry kind: ethereum/contract diff --git a/vue-app/src/api/contributions.ts b/vue-app/src/api/contributions.ts index 24b47b49a..11d332544 100644 --- a/vue-app/src/api/contributions.ts +++ b/vue-app/src/api/contributions.ts @@ -117,17 +117,6 @@ export async function withdrawContribution(roundAddress: string, signer: Signer) return transaction } -export async function hasContributorVoted(fundingRoundAddress: string, contributorAddress: string): Promise { - if (!fundingRoundAddress) { - return false - } - const data = await sdk.GetContributorVotes({ - fundingRoundAddress: fundingRoundAddress.toLowerCase(), - contributorAddress: contributorAddress.toLowerCase(), - }) - return !!data.fundingRound?.contributors?.[0]?.votes?.length -} - export function isContributionAmountValid(value: string, currentRound: RoundInfo): boolean { // if (!currentRound) { // // Skip validation diff --git a/vue-app/src/components/ContributionModal.vue b/vue-app/src/components/ContributionModal.vue index c1ee702fb..eb864ea89 100644 --- a/vue-app/src/components/ContributionModal.vue +++ b/vue-app/src/components/ContributionModal.vue @@ -121,12 +121,12 @@ From 1de0fa8ccc161f94116977b2f578d13a16046046 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Mon, 25 Mar 2024 22:07:43 -0400 Subject: [PATCH 307/338] add ClrFundDeployer deployment guide --- docs/deploy-clrFundDeployer.md | 18 ++++++++++++++++++ docs/deployment.md | 20 ++++++++++++-------- 2 files changed, 30 insertions(+), 8 deletions(-) create mode 100644 docs/deploy-clrFundDeployer.md diff --git a/docs/deploy-clrFundDeployer.md b/docs/deploy-clrFundDeployer.md new file mode 100644 index 000000000..6d34df2dd --- /dev/null +++ b/docs/deploy-clrFundDeployer.md @@ -0,0 +1,18 @@ +# Deploy the ClrFundDeployer contract + +The ClrFundDeployer contract is used to deploy `ClrFund` instances from the [ClrFund Admin](https://github.com/clrfund/clrfund-admin). + +1. Follow the steps in the [deployment guide](./deployment.md) to install the dependencies, download the zkeys, setup BrightId (if applicable), and configure the `.env` and `deploy-config.json` files in the `contracts` folder + +2. Run the deployment script + +Run the following command in the contracts folder. Make sure you backup the `deployed-contracts.json` file (if exists) as the following command will overwrite the file. + +```sh +yarn hardhat new-deployer --verify --network {network} +``` + +Use the `--verify` flag to verify the newly deployed contracts. Make sure the `etherscan` API key is setup in the hardhat.config file +Use the `--incremental` flag to resume a deployment if it was interrupted due to error. +Use the `--manage-nonce` flag to let the script manually set the nonce (as opposed to getting the nonce from the node). This is useful if using testnet public node like `optimism-sepolia` where the node may occasionally give `nonce too low` error. + diff --git a/docs/deployment.md b/docs/deployment.md index d0c3f585d..4ddb0ccc1 100644 --- a/docs/deployment.md +++ b/docs/deployment.md @@ -73,9 +73,8 @@ cp deploy-config-example.json deploy-config.json Update the `VkRegistry.paramsDirectory` with the circuit parameter folder. If you ran the `monorepo/.github/scripts/download-6-9-2-3.sh` in the `contracts` folder, it should be `./params`. -### Run the deploy script -Use the `-h` switch to print the command line help menu for all the scripts in the `cli` folder. For hardhat help, use `yarn hardhat help`. - +### Run the deployment scripts +Use `yarn hardhat help` to print the command line help menu for all available commands. Note that the following steps are for deploying a standalone ClrFund instance. To deploy an instance of the ClrFundDeployer contract, please refer to the [ClrFundDeployer Deployment Guide](./deploy-clrFundDeployer.md) 1. Deploy an instance of ClrFund @@ -128,14 +127,19 @@ Currently, we are using the [Hosted Service](https://thegraph.com/docs/en/hosted Inside `/subgraph`: -1. Prepare the `subgraph.yaml` with the correct network data - - Update or create a new JSON file which you want to use, under `/config` +1. Prepare the config file + - Under the `/config` folder, create a new JSON file or update an existing one + - If you deployed a standalone ClrFund contract, use the `xdai.json` as a template to create your config file + - If you deployed a ClrFundDeployer contract, use the `deployer-arbitrum-sepolia.json` as a template +2. Prepare the `schema.graphql` file + - Run `npx mustache schema.template.graphql > schema.graphql` +2. Prepare the `subgraph.yaml` file - Run `npx mustache subgraph.template.yaml > subgraph.yaml` -2. Build: +3. Build: - `yarn codegen` - `yarn build` -3. Authenticate with `yarn graph auth --product hosted-service ` -4. Deploy it by running `yarn graph deploy --product hosted-service USERNAME/SUBGRAPH` +4. Authenticate with `yarn graph auth --product hosted-service ` +5. Deploy it by running `yarn graph deploy --product hosted-service USERNAME/SUBGRAPH` ### Deploy the user interface From c018df962049fad5cb9546aa031374107da732d7 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Wed, 27 Mar 2024 14:15:26 -0400 Subject: [PATCH 308/338] add etherscan api key for arbitrum and optimism --- contracts/hardhat.config.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/contracts/hardhat.config.ts b/contracts/hardhat.config.ts index f76961e96..e9fcb6931 100644 --- a/contracts/hardhat.config.ts +++ b/contracts/hardhat.config.ts @@ -82,11 +82,13 @@ export default { }, etherscan: { apiKey: { - arbitrum: process.env.ARBISCAN_API_KEY || 'YOUR_ARBISCAN_API_KEY', + arbitrumOne: process.env.ARBISCAN_API_KEY || 'YOUR_ARBISCAN_API_KEY', 'arbitrum-sepolia': process.env.ARBISCAN_API_KEY || 'YOUR_ARBISCAN_API_KEY', + optimisticEthereum: + process.env.OPTIMISMSCAN_API_KEY || 'YOUR_OPTIMISMSCAN_API_KEY', 'optimism-sepolia': - process.env.OPTIMISMSCAN_API_KEY || 'YOUR_ARBISCAN_API_KEY', + process.env.OPTIMISMSCAN_API_KEY || 'YOUR_OPTIMISMSCAN_API_KEY', }, customChains: [ { From 84e4867228b053d232617b46f3dc038b0c64aa14 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Wed, 27 Mar 2024 14:18:10 -0400 Subject: [PATCH 309/338] log transaction details after initialization of ClrFund --- contracts/tasks/subtasks/clrfund/11-initClrfund.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/contracts/tasks/subtasks/clrfund/11-initClrfund.ts b/contracts/tasks/subtasks/clrfund/11-initClrfund.ts index 415327f52..0e68f8773 100644 --- a/contracts/tasks/subtasks/clrfund/11-initClrfund.ts +++ b/contracts/tasks/subtasks/clrfund/11-initClrfund.ts @@ -47,4 +47,5 @@ subtask if (receipt?.status !== 1) { throw new Error('Failed to initialize ClrFund') } + subtask.logTransaction(tx) }) From 62680933f352bbfc4cb6ca3140847573cba19c2c Mon Sep 17 00:00:00 2001 From: yuetloo Date: Sat, 30 Mar 2024 13:57:40 -0400 Subject: [PATCH 310/338] do not wait for synchronization with subgraph --- vue-app/src/locales/cn.json | 4 ++-- vue-app/src/locales/en.json | 4 ++-- vue-app/src/locales/es.json | 4 ++-- vue-app/src/utils/contracts.ts | 33 ------------------------------ vue-app/src/views/JoinView.vue | 10 +++------ vue-app/src/views/ProjectAdded.vue | 22 ++++++++------------ 6 files changed, 17 insertions(+), 60 deletions(-) diff --git a/vue-app/src/locales/cn.json b/vue-app/src/locales/cn.json index 693ba2260..a95b93b08 100644 --- a/vue-app/src/locales/cn.json +++ b/vue-app/src/locales/cn.json @@ -728,8 +728,8 @@ "div1": "您快要参加这筹款活动了。", "li1": "您的项目只需要经过一些最终检查来确保它符合筹款标准。您可以在这里", "link1": "了解更多关于注册流程的信息。", - "li2": "完成后,您的项目页面将上线。", - "li3": " 如果您的项目未通过检查,我们将电邮通知您并退回您的押金。", + "li2": "完成后,您的项目页面将上线, 我们将退还您的押金。", + "li3": " 如果您的项目未通过检查,我们将退回您的押金。", "linkProjects": "查看项目", "link2": "查看项目", "link3": "回首页" diff --git a/vue-app/src/locales/en.json b/vue-app/src/locales/en.json index 89dd5781e..8db5b2e14 100644 --- a/vue-app/src/locales/en.json +++ b/vue-app/src/locales/en.json @@ -728,8 +728,8 @@ "div1": "You’re almost on board this funding round.", "li1": "Your project just needs to go through some final checks to ensure it meets round criteria. You can", "link1": "learn more about the registration process here.", - "li2": "Once that's complete, your project page will go live.", - "li3": " If your project fails any checks, we'll let you know by email and return your deposit.", + "li2": "Once that's complete, your project page will go live and we'll refund your deposit.", + "li3": " If your project fails any checks, we'll return your deposit.", "linkProjects": "View projects", "link2": "View project", "link3": "Go home" diff --git a/vue-app/src/locales/es.json b/vue-app/src/locales/es.json index 54b0f04dc..704996105 100644 --- a/vue-app/src/locales/es.json +++ b/vue-app/src/locales/es.json @@ -728,8 +728,8 @@ "div1": "Estás casi listo para unirte a esta ronda de financiamiento.", "li1": "Tu proyecto solo necesita pasar por algunas verificaciones finales para asegurarse de que cumpla con los criterios de la ronda. Puedes", "link1": "obtener más información sobre el proceso de registro aquí.", - "li2": "Una vez que se complete, la página de tu proyecto se publicará.", - "li3": "Si tu proyecto no pasa alguna verificación, te lo haremos saber por correo electrónico y te devolveremos tu depósito.", + "li2": "Una vez que se complete, la página de tu proyecto se publicará y te devolveremos tu depósito.", + "li3": "Si tu proyecto no pasa alguna verificación, te devolveremos tu depósito.", "linkProjects": "Ver proyectos", "link2": "Ver proyecto", "link3": "Ir a inicio" diff --git a/vue-app/src/utils/contracts.ts b/vue-app/src/utils/contracts.ts index 6df726b50..640152451 100644 --- a/vue-app/src/utils/contracts.ts +++ b/vue-app/src/utils/contracts.ts @@ -47,39 +47,6 @@ export async function waitForTransaction( return transactionReceipt } -/** - * Wait for transaction to be mined and available on the subgraph - * @param pendingTransaction transaction to wait and check for - * @param checkFn the check function - * @param onTransactionHash callback function with the transaction hash - * @returns transaction receipt - */ -export async function waitForTransactionAndCheck( - pendingTransaction: Promise, - checkFn: (receipt: TransactionReceipt) => Promise, - onTransactionHash?: (hash: string) => void, -): Promise { - const receipt = await waitForTransaction(pendingTransaction, onTransactionHash) - - return new Promise(resolve => { - async function checkAndWait(depth = 0) { - if (await checkFn(receipt)) { - resolve(receipt) - } else { - if (depth > MAX_WAIT_DEPTH) { - throw new Error('Time out waiting for transaction ' + receipt.hash) - } - - const timeoutMs = 2 ** depth * 10 - await new Promise(res => setTimeout(res, timeoutMs)) - checkAndWait(depth + 1) - } - } - - checkAndWait() - }) -} - export async function isTransactionMined(hash: string): Promise { const receipt = await provider.getTransactionReceipt(hash) return !!receipt diff --git a/vue-app/src/views/JoinView.vue b/vue-app/src/views/JoinView.vue index 547658557..d87736942 100644 --- a/vue-app/src/views/JoinView.vue +++ b/vue-app/src/views/JoinView.vue @@ -717,12 +717,11 @@ import { useVuelidate } from '@vuelidate/core' import { required, requiredIf, email, maxLength, url, helpers } from '@vuelidate/validators' import type { RecipientApplicationData } from '@/api/types' import type { Project } from '@/api/projects' -import { isTransactionInSubgraph } from '@/api/subgraph' import { formToProjectInterface } from '@/api/projects' -import { chain, showComplianceRequirement, isOptimisticRecipientRegistry } from '@/api/core' +import { chain, showComplianceRequirement } from '@/api/core' import { DateTime } from 'luxon' import { useRecipientStore, useAppStore, useUserStore } from '@/stores' -import { waitForTransactionAndCheck } from '@/utils/contracts' +import { waitForTransaction } from '@/utils/contracts' import { addRecipient as _addRecipient } from '@/api/recipient-registry' import { isValidEthAddress, resolveEns } from '@/utils/accounts' import { toReactive } from '@vueuse/core' @@ -942,11 +941,8 @@ async function addRecipient() { } const signer = await userStore.getSigner() - await waitForTransactionAndCheck( + await waitForTransaction( _addRecipient(recipientRegistryAddress.value, recipient.value, recipientRegistryInfo.value.deposit, signer), - receipt => { - return isOptimisticRecipientRegistry ? isTransactionInSubgraph(receipt) : Promise.resolve(true) - }, hash => (txHash.value = hash), ) diff --git a/vue-app/src/views/ProjectAdded.vue b/vue-app/src/views/ProjectAdded.vue index 59fe6290c..f59065d37 100644 --- a/vue-app/src/views/ProjectAdded.vue +++ b/vue-app/src/views/ProjectAdded.vue @@ -2,9 +2,9 @@
    - +
    - +
    🎉
    @@ -23,12 +23,6 @@
- - {{ $t('projectAdded.linkProjects') }} {{ $t('projectAdded.link3') }}
@@ -121,7 +115,7 @@ ul { height: calc(100vh - 113px); @media (max-width: $breakpoint-m) { padding: 2rem 0rem; - padding-bottom: 16rem; + flex-direction: column; } img { @@ -130,21 +124,21 @@ ul { right: 0; width: 66%; @media (max-width: $breakpoint-m) { + position: relative; right: 0; - width: 100%; + width: 90%; } } .content { position: relative; z-index: 1; - padding: $content-space; - width: min(100%, 512px); + width: min(80%, 512px); margin-left: 2rem; margin-top: 3rem; @media (max-width: $breakpoint-m) { - width: 100%; - margin: 0; + width: 90%; + padding: 0; } .flex-title { From 71b9fbdae26cd3cfebcda315addaa6a28dce267a Mon Sep 17 00:00:00 2001 From: yuetloo Date: Sat, 30 Mar 2024 14:00:42 -0400 Subject: [PATCH 311/338] remove unused translation --- vue-app/src/locales/cn.json | 2 -- vue-app/src/locales/en.json | 2 -- vue-app/src/locales/es.json | 2 -- 3 files changed, 6 deletions(-) diff --git a/vue-app/src/locales/cn.json b/vue-app/src/locales/cn.json index a95b93b08..dbc945f34 100644 --- a/vue-app/src/locales/cn.json +++ b/vue-app/src/locales/cn.json @@ -730,8 +730,6 @@ "link1": "了解更多关于注册流程的信息。", "li2": "完成后,您的项目页面将上线, 我们将退还您的押金。", "li3": " 如果您的项目未通过检查,我们将退回您的押金。", - "linkProjects": "查看项目", - "link2": "查看项目", "link3": "回首页" }, "projectList": { diff --git a/vue-app/src/locales/en.json b/vue-app/src/locales/en.json index 8db5b2e14..3811acfbc 100644 --- a/vue-app/src/locales/en.json +++ b/vue-app/src/locales/en.json @@ -730,8 +730,6 @@ "link1": "learn more about the registration process here.", "li2": "Once that's complete, your project page will go live and we'll refund your deposit.", "li3": " If your project fails any checks, we'll return your deposit.", - "linkProjects": "View projects", - "link2": "View project", "link3": "Go home" }, "projectList": { diff --git a/vue-app/src/locales/es.json b/vue-app/src/locales/es.json index 704996105..ae103f13e 100644 --- a/vue-app/src/locales/es.json +++ b/vue-app/src/locales/es.json @@ -730,8 +730,6 @@ "link1": "obtener más información sobre el proceso de registro aquí.", "li2": "Una vez que se complete, la página de tu proyecto se publicará y te devolveremos tu depósito.", "li3": "Si tu proyecto no pasa alguna verificación, te devolveremos tu depósito.", - "linkProjects": "Ver proyectos", - "link2": "Ver proyecto", "link3": "Ir a inicio" }, "projectList": { From d20877af26e06e719589a662a967d11e49e3cfda Mon Sep 17 00:00:00 2001 From: yuetloo Date: Tue, 2 Apr 2024 23:30:29 -0400 Subject: [PATCH 312/338] break the tally script into multiple smaller scripts --- contracts/tasks/index.ts | 4 + contracts/tasks/runners/genProofs.ts | 185 ++++++++++++++++++ contracts/tasks/runners/proveOnChain.ts | 99 ++++++++++ .../tasks/runners/publishTallyResults.ts | 163 +++++++++++++++ contracts/tasks/runners/resetTally.ts | 51 +++++ contracts/utils/contracts.ts | 29 ++- 6 files changed, 530 insertions(+), 1 deletion(-) create mode 100644 contracts/tasks/runners/genProofs.ts create mode 100644 contracts/tasks/runners/proveOnChain.ts create mode 100644 contracts/tasks/runners/publishTallyResults.ts create mode 100644 contracts/tasks/runners/resetTally.ts diff --git a/contracts/tasks/index.ts b/contracts/tasks/index.ts index 5bcc7e4fc..934d30612 100644 --- a/contracts/tasks/index.ts +++ b/contracts/tasks/index.ts @@ -23,3 +23,7 @@ import './runners/addRecipients' import './runners/findStorageSlot' import './runners/verifyTallyFile' import './runners/verifyAll' +import './runners/genProofs' +import './runners/proveOnChain' +import './runners/publishTallyResults' +import './runners/resetTally' diff --git a/contracts/tasks/runners/genProofs.ts b/contracts/tasks/runners/genProofs.ts new file mode 100644 index 000000000..55c9d5521 --- /dev/null +++ b/contracts/tasks/runners/genProofs.ts @@ -0,0 +1,185 @@ +/** + * Script for generating MACI proofs + * + * Pass --maci-tx-hash if this is the first time running the script and you + * want to get MACI logs starting from the block as recorded in the MACI creation + * transaction hash + * + * Pass --maci-state-file if you have previously ran the script and have + * the maci-state file (maci-state.json) + * + * Make sure to set the following environment variables in the .env file + * 1) WALLET_PRIVATE_KEY or WALLET_MNEMONIC + * - coordinator's wallet private key to interact with contracts + * 2) COORDINATOR_MACISK - coordinator's MACI private key to decrypt messages + * + * Sample usage: + * + * yarn hardhat tally --clrfund --proof-dir \ + * --maci-tx-hash --network + * + */ +import { getNumber, NonceManager } from 'ethers' +import { task, types } from 'hardhat/config' + +import { + DEFAULT_GET_LOG_BATCH_SIZE, + DEFAULT_SR_QUEUE_OPS, +} from '../../utils/constants' +import { + getGenProofArgs, + genProofs, + genLocalState, + mergeMaciSubtrees, +} from '../../utils/maci' +import { getMaciStateFilePath } from '../../utils/misc' +import { EContracts } from '../../utils/types' +import { Subtask } from '../helpers/Subtask' +import { getCurrentFundingRoundContract } from '../../utils/contracts' + +task('gen-proofs', 'Generate MACI proofs offchain') + .addParam('clrfund', 'FundingRound contract address') + .addParam('proofDir', 'The proof output directory') + .addOptionalParam('maciTxHash', 'MACI creation transaction hash') + .addOptionalParam( + 'maciStartBlock', + 'MACI creation block', + undefined, + types.int + ) + .addOptionalParam('maciStateFile', 'MACI state file') + .addFlag('manageNonce', 'Whether to manually manage transaction nonce') + .addOptionalParam('rapidsnark', 'The rapidsnark prover path') + .addOptionalParam( + 'blocksPerBatch', + 'The number of blocks per batch of logs to fetch on-chain', + DEFAULT_GET_LOG_BATCH_SIZE, + types.int + ) + .addOptionalParam( + 'numQueueOps', + 'The number of operations for MACI tree merging', + getNumber(DEFAULT_SR_QUEUE_OPS), + types.int + ) + .addOptionalParam('sleep', 'Number of seconds to sleep between log fetch') + .addOptionalParam( + 'quiet', + 'Whether to disable verbose logging', + false, + types.boolean + ) + .setAction( + async ( + { + clrfund, + maciStartBlock, + maciTxHash, + quiet, + maciStateFile, + proofDir, + blocksPerBatch, + rapidsnark, + numQueueOps, + sleep, + manageNonce, + }, + hre + ) => { + console.log('Verbose logging enabled:', !quiet) + + const { ethers, network } = hre + const subtask = Subtask.getInstance(hre) + subtask.setHre(hre) + + if (!maciStateFile && !maciTxHash && maciStartBlock == undefined) { + throw new Error('Please provide --maci-start-block or --maci-tx-hash') + } + + const [coordinatorSigner] = await ethers.getSigners() + if (!coordinatorSigner) { + throw new Error('Env. variable WALLET_PRIVATE_KEY not set') + } + const coordinator = manageNonce + ? new NonceManager(coordinatorSigner) + : coordinatorSigner + console.log('Coordinator address: ', await coordinator.getAddress()) + + const coordinatorMacisk = process.env.COORDINATOR_MACISK + if (!coordinatorMacisk) { + throw new Error('Env. variable COORDINATOR_MACISK not set') + } + + const circuit = subtask.getConfigField( + EContracts.VkRegistry, + 'circuit' + ) + const circuitDirectory = subtask.getConfigField( + EContracts.VkRegistry, + 'paramsDirectory' + ) + + await subtask.logStart() + + const fundingRoundContract = await getCurrentFundingRoundContract( + clrfund, + coordinator, + ethers + ) + console.log('Funding round contract', fundingRoundContract.target) + + const pollId = await fundingRoundContract.pollId() + console.log('PollId', pollId) + + const maciAddress = await fundingRoundContract.maci() + + const providerUrl = (network.config as any).url + + await mergeMaciSubtrees({ + maciAddress, + pollId, + numQueueOps, + signer: coordinator, + quiet, + }) + + const maciStateFilePath = maciStateFile + ? maciStateFile + : getMaciStateFilePath(proofDir) + + if (!maciStateFile) { + await genLocalState({ + quiet, + outputPath: maciStateFilePath, + pollId, + maciContractAddress: maciAddress, + coordinatorPrivateKey: coordinatorMacisk, + ethereumProvider: providerUrl, + transactionHash: maciTxHash, + startBlock: maciStartBlock, + blockPerBatch: blocksPerBatch, + signer: coordinator, + sleep, + }) + } + + const genProofArgs = getGenProofArgs({ + maciAddress, + pollId, + coordinatorMacisk, + rapidsnark, + circuitType: circuit, + circuitDirectory, + outputDir: proofDir, + blocksPerBatch: getNumber(blocksPerBatch), + maciTxHash, + maciStateFile: maciStateFilePath, + signer: coordinator, + quiet, + }) + await genProofs(genProofArgs) + + const success = true + await subtask.finish(success) + } + ) diff --git a/contracts/tasks/runners/proveOnChain.ts b/contracts/tasks/runners/proveOnChain.ts new file mode 100644 index 000000000..b1eb499de --- /dev/null +++ b/contracts/tasks/runners/proveOnChain.ts @@ -0,0 +1,99 @@ +/** + * Prove on chain the MACI proofs generated using genProofs + * + * Make sure to set the following environment variables in the .env file + * 1) WALLET_PRIVATE_KEY or WALLET_MNEMONIC + * - coordinator's wallet private key to interact with contracts + * + * Sample usage: + * + * yarn hardhat prove-on-chain --clrfund --proof-dir --network + * + */ +import { BaseContract, NonceManager } from 'ethers' +import { task, types } from 'hardhat/config' + +import { proveOnChain } from '../../utils/maci' +import { Tally } from '../../typechain-types' +import { HardhatEthersHelpers } from '@nomicfoundation/hardhat-ethers/types' +import { EContracts } from '../../utils/types' +import { Subtask } from '../helpers/Subtask' +import { getCurrentFundingRoundContract } from '../../utils/contracts' + +/** + * Get the message processor contract address from the tally contract + * @param tallyAddress Tally contract address + * @param ethers Hardhat ethers helper + * @returns Message processor contract address + */ +async function getMessageProcessorAddress( + tallyAddress: string, + ethers: HardhatEthersHelpers +): Promise { + const tallyContract = (await ethers.getContractAt( + EContracts.Tally, + tallyAddress + )) as BaseContract as Tally + + const messageProcessorAddress = await tallyContract.messageProcessor() + return messageProcessorAddress +} + +task('prove-on-chain', 'Prove on chain with the MACI proofs') + .addParam('clrfund', 'ClrFund contract address') + .addParam('proofDir', 'The proof output directory') + .addFlag('manageNonce', 'Whether to manually manage transaction nonce') + .addOptionalParam( + 'quiet', + 'Whether to disable verbose logging', + false, + types.boolean + ) + .setAction(async ({ clrfund, quiet, manageNonce, proofDir }, hre) => { + console.log('Verbose logging enabled:', !quiet) + + const { ethers } = hre + const subtask = Subtask.getInstance(hre) + subtask.setHre(hre) + + const [coordinatorSigner] = await ethers.getSigners() + if (!coordinatorSigner) { + throw new Error('Env. variable WALLET_PRIVATE_KEY not set') + } + const coordinator = manageNonce + ? new NonceManager(coordinatorSigner) + : coordinatorSigner + console.log('Coordinator address: ', await coordinator.getAddress()) + + await subtask.logStart() + + const fundingRoundContract = await getCurrentFundingRoundContract( + clrfund, + coordinator, + ethers + ) + console.log('Funding round contract', fundingRoundContract.target) + + const pollId = await fundingRoundContract.pollId() + const maciAddress = await fundingRoundContract.maci() + const tallyAddress = await fundingRoundContract.tally() + const messageProcessorAddress = await getMessageProcessorAddress( + tallyAddress, + ethers + ) + + // proveOnChain if not already processed + await proveOnChain({ + pollId, + proofDir, + subsidyEnabled: false, + maciAddress, + messageProcessorAddress, + tallyAddress, + signer: coordinator, + quiet, + }) + + const success = true + await subtask.finish(success) + }) diff --git a/contracts/tasks/runners/publishTallyResults.ts b/contracts/tasks/runners/publishTallyResults.ts new file mode 100644 index 000000000..46f535f8b --- /dev/null +++ b/contracts/tasks/runners/publishTallyResults.ts @@ -0,0 +1,163 @@ +/** + * Script for tallying votes which involves fetching MACI logs, generating proofs, + * and proving on chain + * + * Make sure to set the following environment variables in the .env file + * 1) WALLET_PRIVATE_KEY or WALLET_MNEMONIC + * - coordinator's wallet private key to interact with contracts + * + * Sample usage: + * + * yarn hardhat publish-tally-results --clrfund + * --proof-dir --network + * + */ +import { BaseContract, getNumber, NonceManager } from 'ethers' +import { task, types } from 'hardhat/config' + +import { getIpfsHash } from '../../utils/ipfs' +import { JSONFile } from '../../utils/JSONFile' +import { addTallyResultsBatch, TallyData, verify } from '../../utils/maci' +import { FundingRound, Poll } from '../../typechain-types' +import { HardhatEthersHelpers } from '@nomicfoundation/hardhat-ethers/types' +import { EContracts } from '../../utils/types' +import { Subtask } from '../helpers/Subtask' +import { getCurrentFundingRoundContract } from '../../utils/contracts' +import { getTalyFilePath } from '../../utils/misc' + +/** + * Publish the tally IPFS hash on chain if it's not already published + * @param fundingRoundContract Funding round contract + * @param tallyData Tally data + */ +async function publishTallyHash( + fundingRoundContract: FundingRound, + tallyData: TallyData +) { + const tallyHash = await getIpfsHash(tallyData) + console.log(`Tally hash is ${tallyHash}`) + + const tallyHashOnChain = await fundingRoundContract.tallyHash() + if (tallyHashOnChain !== tallyHash) { + const tx = await fundingRoundContract.publishTallyHash(tallyHash) + const receipt = await tx.wait() + if (receipt?.status !== 1) { + throw new Error('Failed to publish tally hash on chain') + } + + console.log('Published tally hash on chain') + } +} +/** + * Submit tally data to funding round contract + * @param fundingRoundContract Funding round contract + * @param batchSize Number of tally results per batch + * @param tallyData Tally file content + */ +async function submitTallyResults( + fundingRoundContract: FundingRound, + recipientTreeDepth: number, + tallyData: TallyData, + batchSize: number +) { + const startIndex = await fundingRoundContract.totalTallyResults() + const total = tallyData.results.tally.length + console.log('Uploading tally results in batches of', batchSize) + const addTallyGas = await addTallyResultsBatch( + fundingRoundContract, + recipientTreeDepth, + tallyData, + getNumber(batchSize), + getNumber(startIndex), + (processed: number) => { + console.log(`Processed ${processed} / ${total}`) + } + ) + console.log('Tally results uploaded. Gas used:', addTallyGas.toString()) +} + +/** + * Get the recipient tree depth (aka vote option tree depth) + * @param fundingRoundContract Funding round conract + * @param ethers Hardhat Ethers Helper + * @returns Recipient tree depth + */ +async function getRecipientTreeDepth( + fundingRoundContract: FundingRound, + ethers: HardhatEthersHelpers +): Promise { + const pollAddress = await fundingRoundContract.poll() + const pollContract = await ethers.getContractAt(EContracts.Poll, pollAddress) + const treeDepths = await (pollContract as BaseContract as Poll).treeDepths() + const voteOptionTreeDepth = treeDepths.voteOptionTreeDepth + return getNumber(voteOptionTreeDepth) +} + +task('publish-tally-results', 'Publish tally results') + .addParam('clrfund', 'ClrFund contract address') + .addParam('proofDir', 'The proof output directory') + .addOptionalParam( + 'batchSize', + 'The batch size to upload tally result on-chain', + 10, + types.int + ) + .addFlag('manageNonce', 'Whether to manually manage transaction nonce') + .addFlag('quiet', 'Whether to log on the console') + .setAction( + async ({ clrfund, proofDir, batchSize, manageNonce, quiet }, hre) => { + const { ethers } = hre + const subtask = Subtask.getInstance(hre) + subtask.setHre(hre) + + const [signer] = await ethers.getSigners() + if (!signer) { + throw new Error('Env. variable WALLET_PRIVATE_KEY not set') + } + const coordinator = manageNonce ? new NonceManager(signer) : signer + console.log('Coordinator address: ', await coordinator.getAddress()) + + await subtask.logStart() + + const fundingRoundContract = await getCurrentFundingRoundContract( + clrfund, + coordinator, + ethers + ) + console.log('Funding round contract', fundingRoundContract.target) + + const recipientTreeDepth = await getRecipientTreeDepth( + fundingRoundContract, + ethers + ) + + const tallyFile = getTalyFilePath(proofDir) + const tallyData = JSONFile.read(tallyFile) + const tallyAddress = await fundingRoundContract.tally() + + await verify({ + pollId: BigInt(tallyData.pollId), + subsidyEnabled: false, + tallyData, + maciAddress: tallyData.maci, + tallyAddress, + signer: coordinator, + quiet, + }) + + // Publish tally hash if it is not already published + await publishTallyHash(fundingRoundContract, tallyData) + + // Submit tally results to the funding round contract + // This function can be re-run from where it left off + await submitTallyResults( + fundingRoundContract, + recipientTreeDepth, + tallyData, + batchSize + ) + + const success = true + await subtask.finish(success) + } + ) diff --git a/contracts/tasks/runners/resetTally.ts b/contracts/tasks/runners/resetTally.ts new file mode 100644 index 000000000..e3283434d --- /dev/null +++ b/contracts/tasks/runners/resetTally.ts @@ -0,0 +1,51 @@ +/** + * WARNING: + * This script will create a new instance of the tally contract in the funding round contract + * + * Usage: + * hardhat resetTally --funding-round --network + * + * Note: + * 1) This script needs to be run by the coordinator + * 2) It can only be run if the funding round hasn't been finalized + */ +import { task } from 'hardhat/config' +import { getCurrentFundingRoundContract } from '../../utils/contracts' +import { Subtask } from '../helpers/Subtask' + +task('reset-tally', 'Reset the tally contract') + .addParam('clrfund', 'The clrfund contract address') + .setAction(async ({ clrfund }, hre) => { + const subtask = Subtask.getInstance(hre) + subtask.setHre(hre) + + let success = false + try { + const [coordinator] = await hre.ethers.getSigners() + console.log('Coordinator address: ', await coordinator.getAddress()) + + const fundingRoundContract = await getCurrentFundingRoundContract( + clrfund, + coordinator, + hre.ethers + ) + + const tx = await fundingRoundContract.resetTally() + const receipt = await tx.wait() + if (receipt?.status !== 1) { + throw new Error('Failed to reset the tally contract') + } + + subtask.logTransaction(tx) + success = true + } catch (err) { + console.error( + '\n=========================================================\nERROR:', + err, + '\n' + ) + success = false + } + + await subtask.finish(success) + }) diff --git a/contracts/utils/contracts.ts b/contracts/utils/contracts.ts index e60d11a76..45250e3fb 100644 --- a/contracts/utils/contracts.ts +++ b/contracts/utils/contracts.ts @@ -2,6 +2,7 @@ import { BaseContract, ContractTransactionResponse, TransactionResponse, + Signer, } from 'ethers' import { getEventArg } from '@clrfund/common' import { EContracts } from './types' @@ -9,7 +10,7 @@ import { DeployContractOptions, HardhatEthersHelpers, } from '@nomicfoundation/hardhat-ethers/types' -import { VkRegistry } from '../typechain-types' +import { VkRegistry, FundingRound } from '../typechain-types' import { MaciParameters } from './maciParameters' import { IVerifyingKeyStruct } from 'maci-contracts' @@ -89,4 +90,30 @@ export async function getTxFee( return receipt ? BigInt(receipt.gasUsed) * BigInt(receipt.gasPrice) : 0n } +/** + * Return the current funding round contract handle + * @param clrfund ClrFund contract address + * @param signer Signer who will interact with the funding round contract + * @param hre Hardhat runtime environment + */ +export async function getCurrentFundingRoundContract( + clrfund: string, + signer: Signer, + ethers: HardhatEthersHelpers +): Promise { + const clrfundContract = await ethers.getContractAt( + EContracts.ClrFund, + clrfund, + signer + ) + + const fundingRound = await clrfundContract.getCurrentRound() + const fundingRoundContract = await ethers.getContractAt( + EContracts.FundingRound, + fundingRound, + signer + ) + + return fundingRoundContract as BaseContract as FundingRound +} export { getEventArg } From 4b513e87de8590d26bf8a28cbd718cd37d4173cc Mon Sep 17 00:00:00 2001 From: yuetloo Date: Wed, 3 Apr 2024 00:34:31 -0400 Subject: [PATCH 313/338] adjust tally scripts for testing purposes --- contracts/sh/runScriptTests.sh | 10 ++++++---- contracts/tasks/runners/genProofs.ts | 10 +++++++--- contracts/tasks/runners/proveOnChain.ts | 10 +++++++--- contracts/tasks/runners/publishTallyResults.ts | 10 +++++++--- 4 files changed, 27 insertions(+), 13 deletions(-) diff --git a/contracts/sh/runScriptTests.sh b/contracts/sh/runScriptTests.sh index f03a47bf9..b17de7b2f 100755 --- a/contracts/sh/runScriptTests.sh +++ b/contracts/sh/runScriptTests.sh @@ -33,13 +33,15 @@ yarn hardhat contribute --network ${HARDHAT_NETWORK} yarn hardhat time-travel --seconds ${ROUND_DURATION} --network ${HARDHAT_NETWORK} -# run the tally script +# tally the votes NODE_OPTIONS="--max-old-space-size=4096" -yarn hardhat tally \ +yarn hardhat gen-proofs \ --rapidsnark ${RAPID_SNARK} \ - --batch-size 8 \ - --output-dir ${OUTPUT_DIR} \ + --proof-dir ${OUTPUT_DIR} \ + --maci-start-block 0 \ --network "${HARDHAT_NETWORK}" +yarn hardhat prove-on-chain --proof-dir ${OUTPUT_DIR} --network "${HARDHAT_NETWORK}" +yarn hardhat publish-tally-results --proof-dir ${OUTPUT_DIR} --network "${HARDHAT_NETWORK}" # finalize the round yarn hardhat finalize --tally-file ${TALLY_FILE} --network ${HARDHAT_NETWORK} diff --git a/contracts/tasks/runners/genProofs.ts b/contracts/tasks/runners/genProofs.ts index 55c9d5521..c9da580f3 100644 --- a/contracts/tasks/runners/genProofs.ts +++ b/contracts/tasks/runners/genProofs.ts @@ -15,7 +15,7 @@ * * Sample usage: * - * yarn hardhat tally --clrfund --proof-dir \ + * yarn hardhat gen-proofs --clrfund --proof-dir \ * --maci-tx-hash --network * */ @@ -36,9 +36,10 @@ import { getMaciStateFilePath } from '../../utils/misc' import { EContracts } from '../../utils/types' import { Subtask } from '../helpers/Subtask' import { getCurrentFundingRoundContract } from '../../utils/contracts' +import { ContractStorage } from '../helpers/ContractStorage' task('gen-proofs', 'Generate MACI proofs offchain') - .addParam('clrfund', 'FundingRound contract address') + .addOptionalParam('clrfund', 'FundingRound contract address') .addParam('proofDir', 'The proof output directory') .addOptionalParam('maciTxHash', 'MACI creation transaction hash') .addOptionalParam( @@ -89,6 +90,7 @@ task('gen-proofs', 'Generate MACI proofs offchain') console.log('Verbose logging enabled:', !quiet) const { ethers, network } = hre + const storage = ContractStorage.getInstance() const subtask = Subtask.getInstance(hre) subtask.setHre(hre) @@ -121,8 +123,10 @@ task('gen-proofs', 'Generate MACI proofs offchain') await subtask.logStart() + const clrfundContractAddress = + clrfund ?? storage.mustGetAddress(EContracts.ClrFund, network.name) const fundingRoundContract = await getCurrentFundingRoundContract( - clrfund, + clrfundContractAddress, coordinator, ethers ) diff --git a/contracts/tasks/runners/proveOnChain.ts b/contracts/tasks/runners/proveOnChain.ts index b1eb499de..af777ed12 100644 --- a/contracts/tasks/runners/proveOnChain.ts +++ b/contracts/tasks/runners/proveOnChain.ts @@ -19,6 +19,7 @@ import { HardhatEthersHelpers } from '@nomicfoundation/hardhat-ethers/types' import { EContracts } from '../../utils/types' import { Subtask } from '../helpers/Subtask' import { getCurrentFundingRoundContract } from '../../utils/contracts' +import { ContractStorage } from '../helpers/ContractStorage' /** * Get the message processor contract address from the tally contract @@ -40,7 +41,7 @@ async function getMessageProcessorAddress( } task('prove-on-chain', 'Prove on chain with the MACI proofs') - .addParam('clrfund', 'ClrFund contract address') + .addOptionalParam('clrfund', 'ClrFund contract address') .addParam('proofDir', 'The proof output directory') .addFlag('manageNonce', 'Whether to manually manage transaction nonce') .addOptionalParam( @@ -52,7 +53,8 @@ task('prove-on-chain', 'Prove on chain with the MACI proofs') .setAction(async ({ clrfund, quiet, manageNonce, proofDir }, hre) => { console.log('Verbose logging enabled:', !quiet) - const { ethers } = hre + const { ethers, network } = hre + const storage = ContractStorage.getInstance() const subtask = Subtask.getInstance(hre) subtask.setHre(hre) @@ -67,8 +69,10 @@ task('prove-on-chain', 'Prove on chain with the MACI proofs') await subtask.logStart() + const clrfundContractAddress = + clrfund ?? storage.mustGetAddress(EContracts.ClrFund, network.name) const fundingRoundContract = await getCurrentFundingRoundContract( - clrfund, + clrfundContractAddress, coordinator, ethers ) diff --git a/contracts/tasks/runners/publishTallyResults.ts b/contracts/tasks/runners/publishTallyResults.ts index 46f535f8b..d2fef14f1 100644 --- a/contracts/tasks/runners/publishTallyResults.ts +++ b/contracts/tasks/runners/publishTallyResults.ts @@ -24,6 +24,7 @@ import { EContracts } from '../../utils/types' import { Subtask } from '../helpers/Subtask' import { getCurrentFundingRoundContract } from '../../utils/contracts' import { getTalyFilePath } from '../../utils/misc' +import { ContractStorage } from '../helpers/ContractStorage' /** * Publish the tally IPFS hash on chain if it's not already published @@ -94,7 +95,7 @@ async function getRecipientTreeDepth( } task('publish-tally-results', 'Publish tally results') - .addParam('clrfund', 'ClrFund contract address') + .addOptionalParam('clrfund', 'ClrFund contract address') .addParam('proofDir', 'The proof output directory') .addOptionalParam( 'batchSize', @@ -106,7 +107,8 @@ task('publish-tally-results', 'Publish tally results') .addFlag('quiet', 'Whether to log on the console') .setAction( async ({ clrfund, proofDir, batchSize, manageNonce, quiet }, hre) => { - const { ethers } = hre + const { ethers, network } = hre + const storage = ContractStorage.getInstance() const subtask = Subtask.getInstance(hre) subtask.setHre(hre) @@ -119,8 +121,10 @@ task('publish-tally-results', 'Publish tally results') await subtask.logStart() + const clrfundContractAddress = + clrfund ?? storage.mustGetAddress(EContracts.ClrFund, network.name) const fundingRoundContract = await getCurrentFundingRoundContract( - clrfund, + clrfundContractAddress, coordinator, ethers ) From 2a8fa9097f2043c3063d6393c136ae4fbf163f9d Mon Sep 17 00:00:00 2001 From: yuetloo Date: Wed, 3 Apr 2024 00:52:18 -0400 Subject: [PATCH 314/338] add missing start --- contracts/tasks/runners/resetTally.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/contracts/tasks/runners/resetTally.ts b/contracts/tasks/runners/resetTally.ts index e3283434d..adc9ebb4e 100644 --- a/contracts/tasks/runners/resetTally.ts +++ b/contracts/tasks/runners/resetTally.ts @@ -21,6 +21,8 @@ task('reset-tally', 'Reset the tally contract') let success = false try { + await subtask.logStart() + const [coordinator] = await hre.ethers.getSigners() console.log('Coordinator address: ', await coordinator.getAddress()) From 83023b7c5a0a1429ed4c076fd92cc825c2219c49 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Wed, 3 Apr 2024 02:01:15 -0400 Subject: [PATCH 315/338] update documentation with new commands for votes tallying --- docs/tally-verify.md | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/docs/tally-verify.md b/docs/tally-verify.md index b2edd2a50..a2d2d66b0 100644 --- a/docs/tally-verify.md +++ b/docs/tally-verify.md @@ -20,22 +20,34 @@ WALLET_MNEMONIC= WALLET_PRIVATE_KEY ``` -Decrypt messages and tally the votes: +Decrypt messages, tally the votes and generate proofs: ``` -yarn hardhat tally --rapidsnark {RAPID_SNARK} --output-dir {OUTPUT_DIR} --network {network} +yarn hardhat gen-proofs --clrfund {CLRFUND_CONTRACT_ADDRESS} --maci-tx-hash {MACI_CREATION_TRANSACTION_HASH} --proof-dir {OUTPUT_DIR} --rapidsnark {RAPID_SNARK} --network {network} ``` You only need to provide `--rapidsnark` if you are running the `tally` command on an intel chip. +If `gen-proofs` failed, you can rerun the command with the same parameters. If the maci-state.json file has been created, you can skip fetching MACI logs by providing the MACI state file as follow: -If there's error and the tally task was stopped prematurely, it can be resumed by passing 2 additional parameters, '--tally-file' and/or '--maci-state-file', if the files were generated. +``` +yarn hardhat gen-proofs --clrfund {CLRFUND_CONTRACT_ADDRESS} --maci-state-file {MACI_STATE_FILE_PATH} --proof-dir {OUTPUT_DIR} --rapidsnark {RAPID_SNARK} --network {network} +``` + + +** Make a backup of the {OUTPUT_DIR} before continuing to the next step ** + +Upload the proofs on chain: ``` -# for rerun -yarn hardhat tally --maci-state-file {maci-state.json} --tally-file {tally.json} --output-dir {OUTPUT_DIR} --network {network} +yarn hardhat prove-on-chain --clrfund {CLRFUND_CONTRACT_ADDRESS} --proof-dir {OUTPUT_DIR} --network {network} +yarn hardhat publish-tally-results --clrfund {CLRFUND_CONTRACT_ADDRESS} --proof-dir {OUTPUT_DIR} --network localhost ``` -Result will be saved to `tally.json` file, which must then be published via IPFS. +If there's error running `prove-on-chain` or `publish-tally-resuls`, simply rerun the commands with the same parameters. + + + +Result will be saved to `{OUTPUT_DIR}/tally.json` file, which must then be published via IPFS. **Using [command line](https://docs.ipfs.tech/reference/kubo/cli/#ipfs)** From 214e3958ebbebdc1e274d1f59c8ebae6fbf6e389 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Wed, 3 Apr 2024 02:35:08 -0400 Subject: [PATCH 316/338] upload smaller batches to avoid socket error on linux --- contracts/tasks/runners/publishTallyResults.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/tasks/runners/publishTallyResults.ts b/contracts/tasks/runners/publishTallyResults.ts index d2fef14f1..91699fa94 100644 --- a/contracts/tasks/runners/publishTallyResults.ts +++ b/contracts/tasks/runners/publishTallyResults.ts @@ -100,7 +100,7 @@ task('publish-tally-results', 'Publish tally results') .addOptionalParam( 'batchSize', 'The batch size to upload tally result on-chain', - 10, + 8, types.int ) .addFlag('manageNonce', 'Whether to manually manage transaction nonce') From 8e3a1a25d179f9d9dae220dd1dbab0010d2b9e5a Mon Sep 17 00:00:00 2001 From: yuetloo Date: Wed, 3 Apr 2024 09:56:24 -0400 Subject: [PATCH 317/338] add --round-address optino --- contracts/tasks/runners/claim.ts | 86 +++++++++++++++++--------------- 1 file changed, 45 insertions(+), 41 deletions(-) diff --git a/contracts/tasks/runners/claim.ts b/contracts/tasks/runners/claim.ts index acce6d3a2..bf90576e2 100644 --- a/contracts/tasks/runners/claim.ts +++ b/contracts/tasks/runners/claim.ts @@ -18,6 +18,7 @@ import { EContracts } from '../../utils/types' import { ContractStorage } from '../helpers/ContractStorage' task('claim', 'Claim funnds for test recipients') + .addOptionalParam('roundAddress', 'Funding round contract address') .addParam( 'recipient', 'The recipient index in the tally file', @@ -25,52 +26,55 @@ task('claim', 'Claim funnds for test recipients') types.int ) .addParam('tallyFile', 'The tally file') - .setAction(async ({ tallyFile, recipient }, { ethers, network }) => { - if (!isPathExist(tallyFile)) { - throw new Error(`Path ${tallyFile} does not exist`) - } + .setAction( + async ({ tallyFile, recipient, roundAddress }, { ethers, network }) => { + if (!isPathExist(tallyFile)) { + throw new Error(`Path ${tallyFile} does not exist`) + } - if (recipient <= 0) { - throw new Error('Recipient must be greater than 0') - } + if (recipient <= 0) { + throw new Error('Recipient must be greater than 0') + } - const storage = ContractStorage.getInstance() - const fundingRound = storage.mustGetAddress( - EContracts.FundingRound, - network.name - ) + const storage = ContractStorage.getInstance() + const fundingRound = + roundAddress ?? + storage.mustGetAddress(EContracts.FundingRound, network.name) - const tally = JSONFile.read(tallyFile) + const tally = JSONFile.read(tallyFile) - const fundingRoundContract = await ethers.getContractAt( - EContracts.FundingRound, - fundingRound - ) + const fundingRoundContract = await ethers.getContractAt( + EContracts.FundingRound, + fundingRound + ) - const recipientStatus = await fundingRoundContract.recipients(recipient) - if (recipientStatus.fundsClaimed) { - throw new Error(`Recipient already claimed funds`) - } + const recipientStatus = await fundingRoundContract.recipients(recipient) + if (recipientStatus.fundsClaimed) { + throw new Error(`Recipient already claimed funds`) + } - const pollAddress = await fundingRoundContract.poll() - console.log('pollAddress', pollAddress) + const pollAddress = await fundingRoundContract.poll() + console.log('pollAddress', pollAddress) - const poll = await ethers.getContractAt(EContracts.Poll, pollAddress) - const treeDepths = await poll.treeDepths() - const recipientTreeDepth = getNumber(treeDepths.voteOptionTreeDepth) + const poll = await ethers.getContractAt(EContracts.Poll, pollAddress) + const treeDepths = await poll.treeDepths() + const recipientTreeDepth = getNumber(treeDepths.voteOptionTreeDepth) - // Claim funds - const recipientClaimData = getRecipientClaimData( - recipient, - recipientTreeDepth, - tally - ) - const claimTx = await fundingRoundContract.claimFunds(...recipientClaimData) - const claimedAmount = await getEventArg( - claimTx, - fundingRoundContract, - 'FundsClaimed', - '_amount' - ) - console.log(`Recipient ${recipient} claimed ${claimedAmount} tokens.`) - }) + // Claim funds + const recipientClaimData = getRecipientClaimData( + recipient, + recipientTreeDepth, + tally + ) + const claimTx = await fundingRoundContract.claimFunds( + ...recipientClaimData + ) + const claimedAmount = await getEventArg( + claimTx, + fundingRoundContract, + 'FundsClaimed', + '_amount' + ) + console.log(`Recipient ${recipient} claimed ${claimedAmount} tokens.`) + } + ) From 86eaa2665bd7abb0afff021d4e106e128fc576b6 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Wed, 3 Apr 2024 10:12:37 -0400 Subject: [PATCH 318/338] temporary remove snapshop user test --- contracts/tests/userRegistrySnapshot.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/contracts/tests/userRegistrySnapshot.ts b/contracts/tests/userRegistrySnapshot.ts index 3a52f0a26..7b5b37d14 100644 --- a/contracts/tests/userRegistrySnapshot.ts +++ b/contracts/tests/userRegistrySnapshot.ts @@ -65,7 +65,9 @@ async function addUser( return userRegistry.addUser(userAccount, proofRlpBytes) } -describe('SnapshotUserRegistry', function () { +// TODO: find a better way to test snapshot. Currently this test fails +// because snapshot too old, it becomes unable +describe.skip('SnapshotUserRegistry', function () { let userRegistry: Contract let block: Block From 7b705835da7c8e25b13cd7b3aa80e7de192d8ca5 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Wed, 3 Apr 2024 20:18:57 -0400 Subject: [PATCH 319/338] use consistent network name to get etherscan api key --- contracts/hardhat.config.ts | 2 +- contracts/utils/providers/EtherscanProvider.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/contracts/hardhat.config.ts b/contracts/hardhat.config.ts index e9fcb6931..0a30c06b2 100644 --- a/contracts/hardhat.config.ts +++ b/contracts/hardhat.config.ts @@ -59,7 +59,7 @@ export default { 'https://sepolia-rollup.arbitrum.io/rpc', accounts, }, - optimism: { + optimisticEthereum: { url: process.env.JSONRPC_HTTP_URL || 'https://mainnet.optimism.io', accounts, }, diff --git a/contracts/utils/providers/EtherscanProvider.ts b/contracts/utils/providers/EtherscanProvider.ts index 5a35ac557..efa0cadb0 100644 --- a/contracts/utils/providers/EtherscanProvider.ts +++ b/contracts/utils/providers/EtherscanProvider.ts @@ -6,7 +6,7 @@ const EtherscanApiUrl: Record = { arbitrum: 'https://api.arbiscan.io', 'arbitrum-goerli': 'https://api-goerli.arbiscan.io', 'arbitrum-sepolia': 'https://api-sepolia.arbiscan.io', - optimism: 'https://api-optimistic.etherscan.io', + optimisticEthereum: 'https://api-optimistic.etherscan.io', 'optimism-sepolia': 'https://api-sepolia-optimistic.etherscan.io', } From e7df7a8a0311f5853b567b13551f97945e7f246c Mon Sep 17 00:00:00 2001 From: yuetloo Date: Wed, 3 Apr 2024 20:56:38 -0400 Subject: [PATCH 320/338] map hardhat network name to etherscan name to retrieve the etherscan api key --- contracts/hardhat.config.ts | 2 +- contracts/tasks/runners/exportRound.ts | 12 +++++++++++- contracts/utils/providers/EtherscanProvider.ts | 2 +- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/contracts/hardhat.config.ts b/contracts/hardhat.config.ts index 0a30c06b2..e9fcb6931 100644 --- a/contracts/hardhat.config.ts +++ b/contracts/hardhat.config.ts @@ -59,7 +59,7 @@ export default { 'https://sepolia-rollup.arbitrum.io/rpc', accounts, }, - optimisticEthereum: { + optimism: { url: process.env.JSONRPC_HTTP_URL || 'https://mainnet.optimism.io', accounts, }, diff --git a/contracts/tasks/runners/exportRound.ts b/contracts/tasks/runners/exportRound.ts index 4eadf9818..da14269c1 100644 --- a/contracts/tasks/runners/exportRound.ts +++ b/contracts/tasks/runners/exportRound.ts @@ -29,6 +29,11 @@ type RoundListEntry = { isFinalized: boolean } +// Map hardhat network name to the etherscan api network name in the hardhat.config +const ETHERSCAN_NETWORKS: Record = { + optimism: 'optimisticEthereum', +} + const toUndefined = () => undefined const toString = (val: bigint) => BigInt(val).toString() const toZero = () => BigInt(0) @@ -41,13 +46,18 @@ function roundListFileName(directory: string): string { return path.join(directory, 'rounds.json') } +function toEtherscanNetworkName(network: string): string { + return ETHERSCAN_NETWORKS[network] ?? network +} + function getEtherscanApiKey(config: any, network: string): string { let etherscanApiKey = '' if (config.etherscan?.apiKey) { if (typeof config.etherscan.apiKey === 'string') { etherscanApiKey = config.etherscan.apiKey } else { - etherscanApiKey = config.etherscan.apiKey[network] + const etherscanNetwork = toEtherscanNetworkName(network) + etherscanApiKey = config.etherscan.apiKey[etherscanNetwork] } } diff --git a/contracts/utils/providers/EtherscanProvider.ts b/contracts/utils/providers/EtherscanProvider.ts index efa0cadb0..5a35ac557 100644 --- a/contracts/utils/providers/EtherscanProvider.ts +++ b/contracts/utils/providers/EtherscanProvider.ts @@ -6,7 +6,7 @@ const EtherscanApiUrl: Record = { arbitrum: 'https://api.arbiscan.io', 'arbitrum-goerli': 'https://api-goerli.arbiscan.io', 'arbitrum-sepolia': 'https://api-sepolia.arbiscan.io', - optimisticEthereum: 'https://api-optimistic.etherscan.io', + optimism: 'https://api-optimistic.etherscan.io', 'optimism-sepolia': 'https://api-sepolia-optimistic.etherscan.io', } From 3df43e0763d01224e86ce9376a7cc948ce1203b8 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Thu, 4 Apr 2024 14:03:12 -0400 Subject: [PATCH 321/338] remove tally script --- .github/workflows/finalize-round.yml | 18 +- contracts/.env.example | 2 +- contracts/tasks/index.ts | 1 - contracts/tasks/runners/tally.ts | 353 --------------------------- docs/tally-verify.md | 2 +- 5 files changed, 15 insertions(+), 361 deletions(-) delete mode 100644 contracts/tasks/runners/tally.ts diff --git a/.github/workflows/finalize-round.yml b/.github/workflows/finalize-round.yml index adfcdfdfc..a1d903269 100644 --- a/.github/workflows/finalize-round.yml +++ b/.github/workflows/finalize-round.yml @@ -79,14 +79,22 @@ jobs: export BLOCKS_PER_BATCH=${{ github.event.inputs.blocks_per_batch }} export RAPID_SNARK="$GITHUB_WORKSPACE/rapidsnark/package/bin/prover" export CIRCUIT_DIRECTORY=$GITHUB_WORKSPACE/params + export PROOF_OUTPUT_DIR=./proof_output # tally and finalize cd monorepo/contracts - mkdir -p proof_output - yarn hardhat tally --clrfund "${CLRFUND_ADDRESS}" --network "${NETWORK}" \ - --rapidsnark ${RAPID_SNARK} \ - --circuit-directory ${CIRCUIT_DIRECTORY} \ + mkdir -p ${PROOF_OUTPUT_DIR} + yarn gen-proofs --clrfund "${CLRFUND_ADDRESS}" \ --blocks-per-batch ${BLOCKS_PER_BATCH} \ - --maci-tx-hash "${MACI_TX_HASH}" --output-dir "./proof_output" + --rapidsnark ${RAPID_SNARK} \ + --maci-tx-hash "${MACI_TX_HASH}" \ + --proof-dir ${PROOF_OUTPUT_DIR} \ + --network "${NETWORK}" + yarn hardhat prove-on-chain --clrfund "${CLRFUND_ADDRESS}" \ + --proof-dir ${PROOF_OUTPUT_DIR} \ + --network "${NETWORK}" + yarn hardhat publish-tally-results --clrfund "${CLRFUND_ADDRESS}" \ + --proof-dir ${PROOF_OUTPUT_DIR} \ + --network "${NETWORK}" curl --location --request POST 'https://api.pinata.cloud/pinning/pinFileToIPFS' \ --header "Authorization: Bearer ${{ secrets.PINATA_JWT }}" \ --form 'file=@"./proof_output/tally.json"' diff --git a/contracts/.env.example b/contracts/.env.example index 5ace336a7..bdede7da1 100644 --- a/contracts/.env.example +++ b/contracts/.env.example @@ -6,7 +6,7 @@ JSONRPC_HTTP_URL=https://eth-goerli.alchemyapi.io/v2/ADD_API_KEY WALLET_MNEMONIC= WALLET_PRIVATE_KEY= -# The coordinator MACI private key, required by the tally script +# The coordinator MACI private key, required by the gen-proofs script COORDINATOR_MACISK= # API key used to verify contracts on arbitrum chain (including testnet) diff --git a/contracts/tasks/index.ts b/contracts/tasks/index.ts index 934d30612..227256785 100644 --- a/contracts/tasks/index.ts +++ b/contracts/tasks/index.ts @@ -10,7 +10,6 @@ import './runners/setMaciParameters' import './runners/setToken' import './runners/setUserRegistry' import './runners/setStorageRoot' -import './runners/tally' import './runners/finalize' import './runners/claim' import './runners/cancel' diff --git a/contracts/tasks/runners/tally.ts b/contracts/tasks/runners/tally.ts deleted file mode 100644 index eb135b3e8..000000000 --- a/contracts/tasks/runners/tally.ts +++ /dev/null @@ -1,353 +0,0 @@ -/** - * Script for tallying votes which involves fetching MACI logs, generating proofs, - * and proving on chain - * - * This script can be rerun by passing in --maci-state-file and --tally-file - * If the --maci-state-file is passed, it will skip MACI log fetching - * If the --tally-file is passed, it will skip MACI log fetching and proof generation - * - * Make sure to set the following environment variables in the .env file - * 1) WALLET_PRIVATE_KEY or WALLET_MNEMONIC - * - coordinator's wallet private key to interact with contracts - * 2) COORDINATOR_MACISK - coordinator's MACI private key to decrypt messages - * - * Sample usage: - * - * yarn hardhat tally --clrfund --maci-tx-hash --network - * - * To rerun: - * - * yarn hardhat tally --clrfund --maci-state-file \ - * --tally-file --network - */ -import { BaseContract, getNumber, Signer, NonceManager } from 'ethers' -import { task, types } from 'hardhat/config' - -import { - DEFAULT_SR_QUEUE_OPS, - DEFAULT_GET_LOG_BATCH_SIZE, -} from '../../utils/constants' -import { getIpfsHash } from '../../utils/ipfs' -import { JSONFile } from '../../utils/JSONFile' -import { - getGenProofArgs, - genProofs, - proveOnChain, - addTallyResultsBatch, - mergeMaciSubtrees, - genLocalState, - TallyData, -} from '../../utils/maci' -import { getMaciStateFilePath, getDirname } from '../../utils/misc' -import { FundingRound, Poll, Tally } from '../../typechain-types' -import { HardhatEthersHelpers } from '@nomicfoundation/hardhat-ethers/types' -import { EContracts } from '../../utils/types' -import { ContractStorage } from '../helpers/ContractStorage' -import { Subtask } from '../helpers/Subtask' - -/** - * Publish the tally IPFS hash on chain if it's not already published - * @param fundingRoundContract Funding round contract - * @param tallyData Tally data - */ -async function publishTallyHash( - fundingRoundContract: FundingRound, - tallyData: TallyData -) { - const tallyHash = await getIpfsHash(tallyData) - console.log(`Tally hash is ${tallyHash}`) - - const tallyHashOnChain = await fundingRoundContract.tallyHash() - if (tallyHashOnChain !== tallyHash) { - const tx = await fundingRoundContract.publishTallyHash(tallyHash) - const receipt = await tx.wait() - if (receipt?.status !== 1) { - throw new Error('Failed to publish tally hash on chain') - } - - console.log('Published tally hash on chain') - } -} -/** - * Submit tally data to funding round contract - * @param fundingRoundContract Funding round contract - * @param batchSize Number of tally results per batch - * @param tallyData Tally file content - */ -async function submitTallyResults( - fundingRoundContract: FundingRound, - recipientTreeDepth: number, - tallyData: TallyData, - batchSize: number -) { - const startIndex = await fundingRoundContract.totalTallyResults() - const total = tallyData.results.tally.length - console.log('Uploading tally results in batches of', batchSize) - const addTallyGas = await addTallyResultsBatch( - fundingRoundContract, - recipientTreeDepth, - tallyData, - getNumber(batchSize), - getNumber(startIndex), - (processed: number) => { - console.log(`Processed ${processed} / ${total}`) - } - ) - console.log('Tally results uploaded. Gas used:', addTallyGas.toString()) -} - -/** - * Return the current funding round contract handle - * @param clrfund ClrFund contract address - * @param coordinator Signer who will interact with the funding round contract - * @param hre Hardhat runtime environment - */ -async function getFundingRound( - clrfund: string, - coordinator: Signer, - ethers: HardhatEthersHelpers -): Promise { - const clrfundContract = await ethers.getContractAt( - EContracts.ClrFund, - clrfund, - coordinator - ) - - const fundingRound = await clrfundContract.getCurrentRound() - const fundingRoundContract = await ethers.getContractAt( - EContracts.FundingRound, - fundingRound, - coordinator - ) - - return fundingRoundContract as BaseContract as FundingRound -} - -/** - * Get the recipient tree depth (aka vote option tree depth) - * @param fundingRoundContract Funding round conract - * @param ethers Hardhat Ethers Helper - * @returns Recipient tree depth - */ -async function getRecipientTreeDepth( - fundingRoundContract: FundingRound, - ethers: HardhatEthersHelpers -): Promise { - const pollAddress = await fundingRoundContract.poll() - const pollContract = await ethers.getContractAt(EContracts.Poll, pollAddress) - const treeDepths = await (pollContract as BaseContract as Poll).treeDepths() - const voteOptionTreeDepth = treeDepths.voteOptionTreeDepth - return getNumber(voteOptionTreeDepth) -} - -/** - * Get the message processor contract address from the tally contract - * @param tallyAddress Tally contract address - * @param ethers Hardhat ethers helper - * @returns Message processor contract address - */ -async function getMessageProcessorAddress( - tallyAddress: string, - ethers: HardhatEthersHelpers -): Promise { - const tallyContract = (await ethers.getContractAt( - EContracts.Tally, - tallyAddress - )) as BaseContract as Tally - - const messageProcessorAddress = await tallyContract.messageProcessor() - return messageProcessorAddress -} - -task('tally', 'Tally votes') - .addOptionalParam('clrfund', 'ClrFund contract address') - .addOptionalParam('maciTxHash', 'MACI creation transaction hash') - .addOptionalParam('maciStateFile', 'MACI state file') - .addFlag('manageNonce', 'Whether to manually manage transaction nonce') - .addOptionalParam('tallyFile', 'The tally file path') - .addOptionalParam( - 'batchSize', - 'The batch size to upload tally result on-chain', - 10, - types.int - ) - .addParam('outputDir', 'The proof output directory', './proof_output') - .addOptionalParam('rapidsnark', 'The rapidsnark prover path') - .addOptionalParam( - 'numQueueOps', - 'The number of operations for MACI tree merging', - getNumber(DEFAULT_SR_QUEUE_OPS), - types.int - ) - .addOptionalParam( - 'blocksPerBatch', - 'The number of blocks per batch of logs to fetch on-chain', - DEFAULT_GET_LOG_BATCH_SIZE, - types.int - ) - .addOptionalParam('sleep', 'Number of seconds to sleep between log fetch') - .addOptionalParam( - 'quiet', - 'Whether to disable verbose logging', - false, - types.boolean - ) - .setAction( - async ( - { - clrfund, - maciTxHash, - quiet, - maciStateFile, - outputDir, - numQueueOps, - tallyFile, - blocksPerBatch, - rapidsnark, - sleep, - batchSize, - manageNonce, - }, - hre - ) => { - console.log('Verbose logging enabled:', !quiet) - - const { ethers, network } = hre - const storage = ContractStorage.getInstance() - const subtask = Subtask.getInstance(hre) - subtask.setHre(hre) - - const [coordinatorSigner] = await ethers.getSigners() - if (!coordinatorSigner) { - throw new Error('Env. variable WALLET_PRIVATE_KEY not set') - } - const coordinator = manageNonce - ? new NonceManager(coordinatorSigner) - : coordinatorSigner - console.log('Coordinator address: ', await coordinator.getAddress()) - - const coordinatorMacisk = process.env.COORDINATOR_MACISK - if (!coordinatorMacisk) { - throw new Error('Env. variable COORDINATOR_MACISK not set') - } - - const circuit = subtask.getConfigField( - EContracts.VkRegistry, - 'circuit' - ) - const circuitDirectory = subtask.getConfigField( - EContracts.VkRegistry, - 'paramsDirectory' - ) - - await subtask.logStart() - - const clrfundContractAddress = - clrfund ?? storage.mustGetAddress(EContracts.ClrFund, network.name) - const fundingRoundContract = await getFundingRound( - clrfundContractAddress, - coordinator, - ethers - ) - console.log('Funding round contract', fundingRoundContract.target) - - const recipientTreeDepth = await getRecipientTreeDepth( - fundingRoundContract, - ethers - ) - - const pollId = await fundingRoundContract.pollId() - console.log('PollId', pollId) - - const maciAddress = await fundingRoundContract.maci() - const maciTransactionHash = - maciTxHash ?? storage.getTxHash(maciAddress, network.name) - console.log('MACI address', maciAddress) - - const tallyAddress = await fundingRoundContract.tally() - const messageProcessorAddress = await getMessageProcessorAddress( - tallyAddress, - ethers - ) - - const providerUrl = (network.config as any).url - - const outputPath = maciStateFile - ? maciStateFile - : getMaciStateFilePath(outputDir) - - await mergeMaciSubtrees({ - maciAddress, - pollId, - numQueueOps, - signer: coordinator, - quiet, - }) - - let tallyFilePath: string = tallyFile || '' - if (!tallyFile) { - if (!maciStateFile) { - await genLocalState({ - quiet, - outputPath, - pollId, - maciContractAddress: maciAddress, - coordinatorPrivateKey: coordinatorMacisk, - ethereumProvider: providerUrl, - transactionHash: maciTransactionHash, - blockPerBatch: blocksPerBatch, - signer: coordinator, - sleep, - }) - } - - const genProofArgs = getGenProofArgs({ - maciAddress, - pollId, - coordinatorMacisk, - rapidsnark, - circuitType: circuit, - circuitDirectory, - outputDir, - blocksPerBatch: getNumber(blocksPerBatch), - maciTxHash: maciTransactionHash, - maciStateFile: outputPath, - signer: coordinator, - quiet, - }) - await genProofs(genProofArgs) - tallyFilePath = genProofArgs.tallyFile - } - - const tally = JSONFile.read(tallyFilePath) as TallyData - const proofDir = getDirname(tallyFilePath) - console.log('Proof directory', proofDir) - - // proveOnChain if not already processed - await proveOnChain({ - pollId, - proofDir, - subsidyEnabled: false, - maciAddress, - messageProcessorAddress, - tallyAddress, - signer: coordinator, - quiet, - }) - - // Publish tally hash if it is not already published - await publishTallyHash(fundingRoundContract, tally) - - // Submit tally results to the funding round contract - // This function can be re-run from where it left off - await submitTallyResults( - fundingRoundContract, - recipientTreeDepth, - tally, - batchSize - ) - - const success = true - await subtask.finish(success) - } - ) diff --git a/docs/tally-verify.md b/docs/tally-verify.md index a2d2d66b0..61139360e 100644 --- a/docs/tally-verify.md +++ b/docs/tally-verify.md @@ -34,7 +34,7 @@ yarn hardhat gen-proofs --clrfund {CLRFUND_CONTRACT_ADDRESS} --maci-state-file { ``` -** Make a backup of the {OUTPUT_DIR} before continuing to the next step ** +**Make a backup of the {OUTPUT_DIR} before continuing to the next step** Upload the proofs on chain: From ac777d71bafb6eb60573ee49909d97cff16e0498 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Fri, 5 Apr 2024 13:45:55 -0400 Subject: [PATCH 322/338] add tally script back --- .github/workflows/finalize-round.yml | 18 ++-- contracts/tasks/index.ts | 1 + contracts/tasks/runners/genProofs.ts | 115 +++++++++++++------------ contracts/tasks/runners/tally.ts | 122 +++++++++++++++++++++++++++ contracts/utils/maci.ts | 5 +- contracts/utils/misc.ts | 9 +- 6 files changed, 195 insertions(+), 75 deletions(-) create mode 100644 contracts/tasks/runners/tally.ts diff --git a/.github/workflows/finalize-round.yml b/.github/workflows/finalize-round.yml index a1d903269..d0af1ab9f 100644 --- a/.github/workflows/finalize-round.yml +++ b/.github/workflows/finalize-round.yml @@ -79,22 +79,14 @@ jobs: export BLOCKS_PER_BATCH=${{ github.event.inputs.blocks_per_batch }} export RAPID_SNARK="$GITHUB_WORKSPACE/rapidsnark/package/bin/prover" export CIRCUIT_DIRECTORY=$GITHUB_WORKSPACE/params - export PROOF_OUTPUT_DIR=./proof_output # tally and finalize cd monorepo/contracts - mkdir -p ${PROOF_OUTPUT_DIR} - yarn gen-proofs --clrfund "${CLRFUND_ADDRESS}" \ - --blocks-per-batch ${BLOCKS_PER_BATCH} \ + mkdir -p proof_output + yarn hardhat tally --clrfund "${CLRFUND_ADDRESS}" --network "${NETWORK}" \ --rapidsnark ${RAPID_SNARK} \ - --maci-tx-hash "${MACI_TX_HASH}" \ - --proof-dir ${PROOF_OUTPUT_DIR} \ - --network "${NETWORK}" - yarn hardhat prove-on-chain --clrfund "${CLRFUND_ADDRESS}" \ - --proof-dir ${PROOF_OUTPUT_DIR} \ - --network "${NETWORK}" - yarn hardhat publish-tally-results --clrfund "${CLRFUND_ADDRESS}" \ - --proof-dir ${PROOF_OUTPUT_DIR} \ - --network "${NETWORK}" + --params-dir ${CIRCUIT_DIRECTORY} \ + --blocks-per-batch ${BLOCKS_PER_BATCH} \ + --maci-tx-hash "${MACI_TX_HASH}" --output-dir "./proof_output" curl --location --request POST 'https://api.pinata.cloud/pinning/pinFileToIPFS' \ --header "Authorization: Bearer ${{ secrets.PINATA_JWT }}" \ --form 'file=@"./proof_output/tally.json"' diff --git a/contracts/tasks/index.ts b/contracts/tasks/index.ts index 227256785..934d30612 100644 --- a/contracts/tasks/index.ts +++ b/contracts/tasks/index.ts @@ -10,6 +10,7 @@ import './runners/setMaciParameters' import './runners/setToken' import './runners/setUserRegistry' import './runners/setStorageRoot' +import './runners/tally' import './runners/finalize' import './runners/claim' import './runners/cancel' diff --git a/contracts/tasks/runners/genProofs.ts b/contracts/tasks/runners/genProofs.ts index c9da580f3..a0656e650 100644 --- a/contracts/tasks/runners/genProofs.ts +++ b/contracts/tasks/runners/genProofs.ts @@ -1,13 +1,6 @@ /** * Script for generating MACI proofs * - * Pass --maci-tx-hash if this is the first time running the script and you - * want to get MACI logs starting from the block as recorded in the MACI creation - * transaction hash - * - * Pass --maci-state-file if you have previously ran the script and have - * the maci-state file (maci-state.json) - * * Make sure to set the following environment variables in the .env file * 1) WALLET_PRIVATE_KEY or WALLET_MNEMONIC * - coordinator's wallet private key to interact with contracts @@ -32,11 +25,17 @@ import { genLocalState, mergeMaciSubtrees, } from '../../utils/maci' -import { getMaciStateFilePath } from '../../utils/misc' +import { + getMaciStateFilePath, + getTalyFilePath, + isPathExist, + makeDirectory, +} from '../../utils/misc' import { EContracts } from '../../utils/types' import { Subtask } from '../helpers/Subtask' import { getCurrentFundingRoundContract } from '../../utils/contracts' import { ContractStorage } from '../helpers/ContractStorage' +import { DEFAULT_CIRCUIT } from '../../utils/circuits' task('gen-proofs', 'Generate MACI proofs offchain') .addOptionalParam('clrfund', 'FundingRound contract address') @@ -48,9 +47,9 @@ task('gen-proofs', 'Generate MACI proofs offchain') undefined, types.int ) - .addOptionalParam('maciStateFile', 'MACI state file') .addFlag('manageNonce', 'Whether to manually manage transaction nonce') .addOptionalParam('rapidsnark', 'The rapidsnark prover path') + .addParam('paramsDir', 'The circuit zkeys directory', './params') .addOptionalParam( 'blocksPerBatch', 'The number of blocks per batch of logs to fetch on-chain', @@ -77,8 +76,8 @@ task('gen-proofs', 'Generate MACI proofs offchain') maciStartBlock, maciTxHash, quiet, - maciStateFile, proofDir, + paramsDir, blocksPerBatch, rapidsnark, numQueueOps, @@ -94,10 +93,6 @@ task('gen-proofs', 'Generate MACI proofs offchain') const subtask = Subtask.getInstance(hre) subtask.setHre(hre) - if (!maciStateFile && !maciTxHash && maciStartBlock == undefined) { - throw new Error('Please provide --maci-start-block or --maci-tx-hash') - } - const [coordinatorSigner] = await ethers.getSigners() if (!coordinatorSigner) { throw new Error('Env. variable WALLET_PRIVATE_KEY not set') @@ -112,14 +107,15 @@ task('gen-proofs', 'Generate MACI proofs offchain') throw new Error('Env. variable COORDINATOR_MACISK not set') } - const circuit = subtask.getConfigField( - EContracts.VkRegistry, - 'circuit' - ) - const circuitDirectory = subtask.getConfigField( - EContracts.VkRegistry, - 'paramsDirectory' - ) + const circuit = + subtask.tryGetConfigField(EContracts.VkRegistry, 'circuit') || + DEFAULT_CIRCUIT + + const circuitDirectory = + subtask.tryGetConfigField( + EContracts.VkRegistry, + 'paramsDirectory' + ) || paramsDir await subtask.logStart() @@ -136,9 +132,6 @@ task('gen-proofs', 'Generate MACI proofs offchain') console.log('PollId', pollId) const maciAddress = await fundingRoundContract.maci() - - const providerUrl = (network.config as any).url - await mergeMaciSubtrees({ maciAddress, pollId, @@ -147,42 +140,54 @@ task('gen-proofs', 'Generate MACI proofs offchain') quiet, }) - const maciStateFilePath = maciStateFile - ? maciStateFile - : getMaciStateFilePath(proofDir) + if (!isPathExist(proofDir)) { + makeDirectory(proofDir) + } + + const tallyFile = getTalyFilePath(proofDir) + const maciStateFile = getMaciStateFilePath(proofDir) + const providerUrl = (network.config as any).url - if (!maciStateFile) { - await genLocalState({ - quiet, - outputPath: maciStateFilePath, + if (!isPathExist(tallyFile)) { + if (!isPathExist(maciStateFile)) { + if (!maciTxHash && maciStartBlock == null) { + throw new Error( + 'Please provide a value for --maci-tx-hash or --maci-start-block' + ) + } + + await genLocalState({ + quiet, + outputPath: maciStateFile, + pollId, + maciContractAddress: maciAddress, + coordinatorPrivateKey: coordinatorMacisk, + ethereumProvider: providerUrl, + transactionHash: maciTxHash, + startBlock: maciStartBlock, + blockPerBatch: blocksPerBatch, + signer: coordinator, + sleep, + }) + } + + const genProofArgs = getGenProofArgs({ + maciAddress, pollId, - maciContractAddress: maciAddress, - coordinatorPrivateKey: coordinatorMacisk, - ethereumProvider: providerUrl, - transactionHash: maciTxHash, - startBlock: maciStartBlock, - blockPerBatch: blocksPerBatch, + coordinatorMacisk, + rapidsnark, + circuitType: circuit, + circuitDirectory, + outputDir: proofDir, + blocksPerBatch: getNumber(blocksPerBatch), + maciStateFile, + tallyFile, signer: coordinator, - sleep, + quiet, }) + await genProofs(genProofArgs) } - const genProofArgs = getGenProofArgs({ - maciAddress, - pollId, - coordinatorMacisk, - rapidsnark, - circuitType: circuit, - circuitDirectory, - outputDir: proofDir, - blocksPerBatch: getNumber(blocksPerBatch), - maciTxHash, - maciStateFile: maciStateFilePath, - signer: coordinator, - quiet, - }) - await genProofs(genProofArgs) - const success = true await subtask.finish(success) } diff --git a/contracts/tasks/runners/tally.ts b/contracts/tasks/runners/tally.ts new file mode 100644 index 000000000..f524dda72 --- /dev/null +++ b/contracts/tasks/runners/tally.ts @@ -0,0 +1,122 @@ +/** + * Script for tallying votes which involves fetching MACI logs, generating proofs, + * proving on chain, and uploading tally results on chain + * + * Sample usage: + * yarn hardhat tally --clrfund --maci-tx-hash --network + * + * This script can be re-run with the same input parameters + */ +import { getNumber } from 'ethers' +import { task, types } from 'hardhat/config' + +import { + DEFAULT_SR_QUEUE_OPS, + DEFAULT_GET_LOG_BATCH_SIZE, +} from '../../utils/constants' +import { EContracts } from '../../utils/types' +import { ContractStorage } from '../helpers/ContractStorage' +import { Subtask } from '../helpers/Subtask' + +task('tally', 'Tally votes') + .addOptionalParam('clrfund', 'ClrFund contract address') + .addOptionalParam('maciTxHash', 'MACI creation transaction hash') + .addOptionalParam( + 'maciStartBlock', + 'MACI creation block', + undefined, + types.int + ) + .addFlag('manageNonce', 'Whether to manually manage transaction nonce') + .addOptionalParam( + 'batchSize', + 'The batch size to upload tally result on-chain', + 8, + types.int + ) + .addParam('proofDir', 'The proof output directory', './proof_output') + .addParam('paramsDir', 'The circuit zkeys directory', './params') + .addOptionalParam('rapidsnark', 'The rapidsnark prover path') + .addOptionalParam( + 'numQueueOps', + 'The number of operations for MACI tree merging', + getNumber(DEFAULT_SR_QUEUE_OPS), + types.int + ) + .addOptionalParam( + 'blocksPerBatch', + 'The number of blocks per batch of logs to fetch on-chain', + DEFAULT_GET_LOG_BATCH_SIZE, + types.int + ) + .addOptionalParam('sleep', 'Number of seconds to sleep between log fetch') + .addOptionalParam( + 'quiet', + 'Whether to disable verbose logging', + false, + types.boolean + ) + .setAction( + async ( + { + clrfund, + maciTxHash, + maciStartBlock, + quiet, + proofDir, + paramsDir, + numQueueOps, + blocksPerBatch, + rapidsnark, + sleep, + batchSize, + manageNonce, + }, + hre + ) => { + console.log('Verbose logging enabled:', !quiet) + + const storage = ContractStorage.getInstance() + const subtask = Subtask.getInstance(hre) + subtask.setHre(hre) + + await subtask.logStart() + + const clrfundContractAddress = + clrfund ?? storage.mustGetAddress(EContracts.ClrFund, hre.network.name) + + await hre.run('gen-proofs', { + clrfund: clrfundContractAddress, + maciStartBlock, + maciTxHash, + numQueueOps, + blocksPerBatch, + rapidsnark, + sleep, + proofDir, + paramsDir, + manageNonce, + quiet, + }) + + // proveOnChain if not already processed + await hre.run('prove-on-chain', { + clrfund: clrfundContractAddress, + proofDir, + manageNonce, + quiet, + }) + + // Publish tally hash if it is not already published + await hre.run('publish-tally-results', { + clrfund: clrfundContractAddress, + proofDir, + batchSize, + manageNonce, + quiet, + }) + + const success = true + await subtask.finish(success) + } + ) diff --git a/contracts/utils/maci.ts b/contracts/utils/maci.ts index 6065f383d..bb3e3bb0b 100644 --- a/contracts/utils/maci.ts +++ b/contracts/utils/maci.ts @@ -183,6 +183,8 @@ type getGenProofArgsInput = { endBlock?: number // MACI state file maciStateFile?: string + // Tally output file + tallyFile: string // transaction signer signer: Signer // flag to turn on verbose logging in MACI cli @@ -206,12 +208,11 @@ export function getGenProofArgs(args: getGenProofArgsInput): GenProofsArgs { startBlock, endBlock, maciStateFile, + tallyFile, signer, quiet, } = args - const tallyFile = getTalyFilePath(outputDir) - const { processZkFile, tallyZkFile, diff --git a/contracts/utils/misc.ts b/contracts/utils/misc.ts index 34bb53482..029a455de 100644 --- a/contracts/utils/misc.ts +++ b/contracts/utils/misc.ts @@ -29,10 +29,9 @@ export function isPathExist(path: string): boolean { } /** - * Returns the directory of the path - * @param file The file path - * @returns The directory of the file + * Create a directory + * @param directory The directory to create */ -export function getDirname(file: string): string { - return path.dirname(file) +export function makeDirectory(directory: string): void { + fs.mkdirSync(directory) } From d70d4147285420f06706168907ee34bc6f6df684 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Fri, 5 Apr 2024 22:06:02 -0400 Subject: [PATCH 323/338] refactor the tally script to re-run without extra inputs --- .github/workflows/finalize-round.yml | 9 +- contracts/.env.example | 4 + contracts/e2e/index.ts | 4 + contracts/package.json | 1 + contracts/sh/runScriptTests.sh | 10 +- contracts/tasks/runners/claim.ts | 30 +++--- contracts/tasks/runners/finalize.ts | 26 +++--- contracts/tasks/runners/genProofs.ts | 92 ++++++++++++------- .../tasks/runners/publishTallyResults.ts | 28 ++++-- contracts/tasks/runners/tally.ts | 33 ++++++- contracts/utils/ipfs.ts | 28 +++++- contracts/utils/misc.ts | 25 ++++- docs/tally-verify.md | 41 ++------- yarn.lock | 69 +++++++++++++- 14 files changed, 287 insertions(+), 113 deletions(-) diff --git a/.github/workflows/finalize-round.yml b/.github/workflows/finalize-round.yml index d0af1ab9f..fd972749f 100644 --- a/.github/workflows/finalize-round.yml +++ b/.github/workflows/finalize-round.yml @@ -86,8 +86,7 @@ jobs: --rapidsnark ${RAPID_SNARK} \ --params-dir ${CIRCUIT_DIRECTORY} \ --blocks-per-batch ${BLOCKS_PER_BATCH} \ - --maci-tx-hash "${MACI_TX_HASH}" --output-dir "./proof_output" - curl --location --request POST 'https://api.pinata.cloud/pinning/pinFileToIPFS' \ - --header "Authorization: Bearer ${{ secrets.PINATA_JWT }}" \ - --form 'file=@"./proof_output/tally.json"' - yarn hardhat --network "${NETWORK}" finalize --clrfund "${CLRFUND_ADDRESS}" + --maci-tx-hash "${MACI_TX_HASH}" \ + --proof-dir "./proof_output" + yarn hardhat --network "${NETWORK}" finalize --clrfund "${CLRFUND_ADDRESS}" \ + --proof-dir "./proof_output" diff --git a/contracts/.env.example b/contracts/.env.example index bdede7da1..2db7006e4 100644 --- a/contracts/.env.example +++ b/contracts/.env.example @@ -13,6 +13,10 @@ COORDINATOR_MACISK= # Update the etherscan section in hardhat.config to add API key for other chains ARBISCAN_API_KEY= +# PINATE credentials to upload tally.json file to IPFS; used by the tally script +PINATA_API_KEY= +PINATA_SECRET_API_KEY= + # these are used in the e2e testing CIRCUIT_TYPE= CIRCUIT_DIRECTORY= diff --git a/contracts/e2e/index.ts b/contracts/e2e/index.ts index 5a22205dd..76e21525c 100644 --- a/contracts/e2e/index.ts +++ b/contracts/e2e/index.ts @@ -36,6 +36,7 @@ import path from 'path' import { FundingRound } from '../typechain-types' import { JSONFile } from '../utils/JSONFile' import { EContracts } from '../utils/types' +import { getTalyFilePath } from '../utils/misc' type VoteData = { recipientIndex: number; voiceCredits: bigint } type ClaimData = { [index: number]: bigint } @@ -359,6 +360,8 @@ describe('End-to-end Tests', function () { mkdirSync(outputDir, { recursive: true }) } + const tallyFile = getTalyFilePath(outputDir) + // past an end block that's later than the MACI start block const genProofArgs = getGenProofArgs({ maciAddress, @@ -368,6 +371,7 @@ describe('End-to-end Tests', function () { circuitType: circuit, circuitDirectory, outputDir, + tallyFile, blocksPerBatch: DEFAULT_GET_LOG_BATCH_SIZE, maciTxHash: maciTransactionHash, signer: coordinator, diff --git a/contracts/package.json b/contracts/package.json index 7bbbb8133..a52b79d4f 100644 --- a/contracts/package.json +++ b/contracts/package.json @@ -16,6 +16,7 @@ }, "dependencies": { "@openzeppelin/contracts": "4.9.0", + "@pinata/sdk": "^2.1.0", "dotenv": "^8.2.0", "maci-contracts": "^1.2.0", "solidity-rlp": "2.0.8" diff --git a/contracts/sh/runScriptTests.sh b/contracts/sh/runScriptTests.sh index b17de7b2f..11cde09a2 100755 --- a/contracts/sh/runScriptTests.sh +++ b/contracts/sh/runScriptTests.sh @@ -35,17 +35,15 @@ yarn hardhat time-travel --seconds ${ROUND_DURATION} --network ${HARDHAT_NETWORK # tally the votes NODE_OPTIONS="--max-old-space-size=4096" -yarn hardhat gen-proofs \ +yarn hardhat tally \ --rapidsnark ${RAPID_SNARK} \ --proof-dir ${OUTPUT_DIR} \ --maci-start-block 0 \ --network "${HARDHAT_NETWORK}" -yarn hardhat prove-on-chain --proof-dir ${OUTPUT_DIR} --network "${HARDHAT_NETWORK}" -yarn hardhat publish-tally-results --proof-dir ${OUTPUT_DIR} --network "${HARDHAT_NETWORK}" # finalize the round -yarn hardhat finalize --tally-file ${TALLY_FILE} --network ${HARDHAT_NETWORK} +yarn hardhat finalize --proof-dir ${OUTPUT_DIR} --network ${HARDHAT_NETWORK} # claim funds -yarn hardhat claim --recipient 1 --tally-file ${TALLY_FILE} --network ${HARDHAT_NETWORK} -yarn hardhat claim --recipient 2 --tally-file ${TALLY_FILE} --network ${HARDHAT_NETWORK} +yarn hardhat claim --recipient 1 --proof-dir ${OUTPUT_DIR} --network ${HARDHAT_NETWORK} +yarn hardhat claim --recipient 2 --proof-dir ${OUTPUT_DIR} --network ${HARDHAT_NETWORK} diff --git a/contracts/tasks/runners/claim.ts b/contracts/tasks/runners/claim.ts index bf90576e2..e5135aa24 100644 --- a/contracts/tasks/runners/claim.ts +++ b/contracts/tasks/runners/claim.ts @@ -2,16 +2,17 @@ * Claim funds. This script is mainly used by e2e testing * * Sample usage: - * yarn hardhat claim \ - * --tally-file \ - * --recipient \ - * --network + * yarn hardhat claim --recipient --network */ import { getEventArg } from '../../utils/contracts' import { getRecipientClaimData } from '@clrfund/common' import { JSONFile } from '../../utils/JSONFile' -import { isPathExist } from '../../utils/misc' +import { + getProofDirForRound, + getTalyFilePath, + isPathExist, +} from '../../utils/misc' import { getNumber } from 'ethers' import { task, types } from 'hardhat/config' import { EContracts } from '../../utils/types' @@ -25,13 +26,9 @@ task('claim', 'Claim funnds for test recipients') undefined, types.int ) - .addParam('tallyFile', 'The tally file') + .addParam('proofDir', 'The proof output directory', './proof_output') .setAction( - async ({ tallyFile, recipient, roundAddress }, { ethers, network }) => { - if (!isPathExist(tallyFile)) { - throw new Error(`Path ${tallyFile} does not exist`) - } - + async ({ proofDir, recipient, roundAddress }, { ethers, network }) => { if (recipient <= 0) { throw new Error('Recipient must be greater than 0') } @@ -41,6 +38,17 @@ task('claim', 'Claim funnds for test recipients') roundAddress ?? storage.mustGetAddress(EContracts.FundingRound, network.name) + const proofDirForRound = getProofDirForRound( + proofDir, + network.name, + fundingRound + ) + + const tallyFile = getTalyFilePath(proofDirForRound) + if (!isPathExist(tallyFile)) { + throw new Error(`Path ${tallyFile} does not exist`) + } + const tally = JSONFile.read(tallyFile) const fundingRoundContract = await ethers.getContractAt( diff --git a/contracts/tasks/runners/finalize.ts b/contracts/tasks/runners/finalize.ts index 0240ba16b..e48a6c2b6 100644 --- a/contracts/tasks/runners/finalize.ts +++ b/contracts/tasks/runners/finalize.ts @@ -6,7 +6,7 @@ * - clrfund owner's wallet private key to interact with the contract * * Sample usage: - * yarn hardhat finalize --clrfund --tally-file --network + * yarn hardhat finalize --clrfund --network */ import { JSONFile } from '../../utils/JSONFile' @@ -16,20 +16,13 @@ import { task } from 'hardhat/config' import { EContracts } from '../../utils/types' import { ContractStorage } from '../helpers/ContractStorage' import { Subtask } from '../helpers/Subtask' +import { getProofDirForRound, getTalyFilePath } from '../../utils/misc' task('finalize', 'Finalize a funding round') .addOptionalParam('clrfund', 'The ClrFund contract address') - .addOptionalParam( - 'tallyFile', - 'The tally file path', - './proof_output/tally.json' - ) - .setAction(async ({ clrfund, tallyFile }, hre) => { + .addParam('proofDir', 'The proof output directory', './proof_output') + .setAction(async ({ clrfund, proofDir }, hre) => { const { ethers, network } = hre - const tally = JSONFile.read(tallyFile) - if (!tally.maci) { - throw Error('Bad tally file ' + tallyFile) - } const storage = ContractStorage.getInstance() const subtask = Subtask.getInstance(hre) @@ -63,6 +56,17 @@ task('finalize', 'Finalize a funding round') const treeDepths = await pollContract.treeDepths() console.log('voteOptionTreeDepth', treeDepths.voteOptionTreeDepth) + const currentRoundProofDir = getProofDirForRound( + proofDir, + network.name, + currentRoundAddress + ) + const tallyFile = getTalyFilePath(currentRoundProofDir) + const tally = JSONFile.read(tallyFile) + if (!tally.maci) { + throw Error('Bad tally file ' + tallyFile) + } + const totalSpent = tally.totalSpentVoiceCredits.spent const totalSpentSalt = tally.totalSpentVoiceCredits.salt diff --git a/contracts/tasks/runners/genProofs.ts b/contracts/tasks/runners/genProofs.ts index a0656e650..ed3061edb 100644 --- a/contracts/tasks/runners/genProofs.ts +++ b/contracts/tasks/runners/genProofs.ts @@ -36,6 +36,29 @@ import { Subtask } from '../helpers/Subtask' import { getCurrentFundingRoundContract } from '../../utils/contracts' import { ContractStorage } from '../helpers/ContractStorage' import { DEFAULT_CIRCUIT } from '../../utils/circuits' +import { JSONFile } from '../../utils/JSONFile' + +/** + * Check if the tally file with the maci contract address exists + * @param tallyFile The tally file path + * @param maciAddress The MACI contract address + * @returns true if the file exists and it contains the MACI contract address + */ +function tallyFileExists(tallyFile: string, maciAddress: string): boolean { + if (!isPathExist(tallyFile)) { + return false + } + try { + const tallyData = JSONFile.read(tallyFile) + return ( + tallyData.maci && + tallyData.maci.toLowerCase() === maciAddress.toLowerCase() + ) + } catch { + // in case the file does not have the expected format/field + return false + } +} task('gen-proofs', 'Generate MACI proofs offchain') .addOptionalParam('clrfund', 'FundingRound contract address') @@ -148,46 +171,49 @@ task('gen-proofs', 'Generate MACI proofs offchain') const maciStateFile = getMaciStateFilePath(proofDir) const providerUrl = (network.config as any).url - if (!isPathExist(tallyFile)) { - if (!isPathExist(maciStateFile)) { - if (!maciTxHash && maciStartBlock == null) { - throw new Error( - 'Please provide a value for --maci-tx-hash or --maci-start-block' - ) - } - - await genLocalState({ - quiet, - outputPath: maciStateFile, - pollId, - maciContractAddress: maciAddress, - coordinatorPrivateKey: coordinatorMacisk, - ethereumProvider: providerUrl, - transactionHash: maciTxHash, - startBlock: maciStartBlock, - blockPerBatch: blocksPerBatch, - signer: coordinator, - sleep, - }) + if (tallyFileExists(tallyFile, maciAddress)) { + console.log('The tally file has already been generated.') + return + } + + if (!isPathExist(maciStateFile)) { + if (!maciTxHash && maciStartBlock == null) { + throw new Error( + 'Please provide a value for --maci-tx-hash or --maci-start-block' + ) } - const genProofArgs = getGenProofArgs({ - maciAddress, + await genLocalState({ + quiet, + outputPath: maciStateFile, pollId, - coordinatorMacisk, - rapidsnark, - circuitType: circuit, - circuitDirectory, - outputDir: proofDir, - blocksPerBatch: getNumber(blocksPerBatch), - maciStateFile, - tallyFile, + maciContractAddress: maciAddress, + coordinatorPrivateKey: coordinatorMacisk, + ethereumProvider: providerUrl, + transactionHash: maciTxHash, + startBlock: maciStartBlock, + blockPerBatch: blocksPerBatch, signer: coordinator, - quiet, + sleep, }) - await genProofs(genProofArgs) } + const genProofArgs = getGenProofArgs({ + maciAddress, + pollId, + coordinatorMacisk, + rapidsnark, + circuitType: circuit, + circuitDirectory, + outputDir: proofDir, + blocksPerBatch: getNumber(blocksPerBatch), + maciStateFile, + tallyFile, + signer: coordinator, + quiet, + }) + await genProofs(genProofArgs) + const success = true await subtask.finish(success) } diff --git a/contracts/tasks/runners/publishTallyResults.ts b/contracts/tasks/runners/publishTallyResults.ts index 91699fa94..5651ac353 100644 --- a/contracts/tasks/runners/publishTallyResults.ts +++ b/contracts/tasks/runners/publishTallyResults.ts @@ -5,6 +5,8 @@ * Make sure to set the following environment variables in the .env file * 1) WALLET_PRIVATE_KEY or WALLET_MNEMONIC * - coordinator's wallet private key to interact with contracts + * 2) PINATA_API_KEY - The Pinata api key for pinning file to IPFS + * 3) PINATA_SECRET_API_KEY - The Pinata secret api key for pinning file to IPFS * * Sample usage: * @@ -15,7 +17,7 @@ import { BaseContract, getNumber, NonceManager } from 'ethers' import { task, types } from 'hardhat/config' -import { getIpfsHash } from '../../utils/ipfs' +import { Ipfs } from '../../utils/ipfs' import { JSONFile } from '../../utils/JSONFile' import { addTallyResultsBatch, TallyData, verify } from '../../utils/maci' import { FundingRound, Poll } from '../../typechain-types' @@ -25,17 +27,17 @@ import { Subtask } from '../helpers/Subtask' import { getCurrentFundingRoundContract } from '../../utils/contracts' import { getTalyFilePath } from '../../utils/misc' import { ContractStorage } from '../helpers/ContractStorage' +import { PINATA_PINNING_URL } from '../../utils/constants' /** * Publish the tally IPFS hash on chain if it's not already published * @param fundingRoundContract Funding round contract - * @param tallyData Tally data + * @param tallyHash Tally hash */ async function publishTallyHash( fundingRoundContract: FundingRound, - tallyData: TallyData + tallyHash: string ) { - const tallyHash = await getIpfsHash(tallyData) console.log(`Tally hash is ${tallyHash}`) const tallyHashOnChain = await fundingRoundContract.tallyHash() @@ -63,7 +65,9 @@ async function submitTallyResults( ) { const startIndex = await fundingRoundContract.totalTallyResults() const total = tallyData.results.tally.length - console.log('Uploading tally results in batches of', batchSize) + if (startIndex < total) { + console.log('Uploading tally results in batches of', batchSize) + } const addTallyGas = await addTallyResultsBatch( fundingRoundContract, recipientTreeDepth, @@ -119,6 +123,16 @@ task('publish-tally-results', 'Publish tally results') const coordinator = manageNonce ? new NonceManager(signer) : signer console.log('Coordinator address: ', await coordinator.getAddress()) + const apiKey = process.env.PINATA_API_KEY + if (!apiKey) { + throw new Error('Env. variable PINATA_API_KEY not set') + } + + const secretApiKey = process.env.PINATA_SECRET_API_KEY + if (!secretApiKey) { + throw new Error('Env. variable PINATA_SECRET_API_KEY not set') + } + await subtask.logStart() const clrfundContractAddress = @@ -149,8 +163,10 @@ task('publish-tally-results', 'Publish tally results') quiet, }) + const tallyHash = await Ipfs.pinFile(tallyFile, apiKey, secretApiKey) + // Publish tally hash if it is not already published - await publishTallyHash(fundingRoundContract, tallyData) + await publishTallyHash(fundingRoundContract, tallyHash) // Submit tally results to the funding round contract // This function can be re-run from where it left off diff --git a/contracts/tasks/runners/tally.ts b/contracts/tasks/runners/tally.ts index f524dda72..94482b679 100644 --- a/contracts/tasks/runners/tally.ts +++ b/contracts/tasks/runners/tally.ts @@ -9,11 +9,13 @@ */ import { getNumber } from 'ethers' import { task, types } from 'hardhat/config' +import { ClrFund } from '../../typechain-types' import { DEFAULT_SR_QUEUE_OPS, DEFAULT_GET_LOG_BATCH_SIZE, } from '../../utils/constants' +import { getProofDirForRound } from '../../utils/misc' import { EContracts } from '../../utils/types' import { ContractStorage } from '../helpers/ContractStorage' import { Subtask } from '../helpers/Subtask' @@ -76,6 +78,16 @@ task('tally', 'Tally votes') ) => { console.log('Verbose logging enabled:', !quiet) + const apiKey = process.env.PINATA_API_KEY + if (!apiKey) { + throw new Error('Env. variable PINATA_API_KEY not set') + } + + const secretApiKey = process.env.PINATA_SECRET_API_KEY + if (!secretApiKey) { + throw new Error('Env. variable PINATA_SECRET_API_KEY not set') + } + const storage = ContractStorage.getInstance() const subtask = Subtask.getInstance(hre) subtask.setHre(hre) @@ -85,6 +97,21 @@ task('tally', 'Tally votes') const clrfundContractAddress = clrfund ?? storage.mustGetAddress(EContracts.ClrFund, hre.network.name) + const clrfundContract = subtask.getContract({ + name: EContracts.ClrFund, + address: clrfundContractAddress, + }) + + const fundingRoundContractAddress = await ( + await clrfundContract + ).getCurrentRound() + + const outputDir = getProofDirForRound( + proofDir, + hre.network.name, + fundingRoundContractAddress + ) + await hre.run('gen-proofs', { clrfund: clrfundContractAddress, maciStartBlock, @@ -93,7 +120,7 @@ task('tally', 'Tally votes') blocksPerBatch, rapidsnark, sleep, - proofDir, + proofDir: outputDir, paramsDir, manageNonce, quiet, @@ -102,7 +129,7 @@ task('tally', 'Tally votes') // proveOnChain if not already processed await hre.run('prove-on-chain', { clrfund: clrfundContractAddress, - proofDir, + proofDir: outputDir, manageNonce, quiet, }) @@ -110,7 +137,7 @@ task('tally', 'Tally votes') // Publish tally hash if it is not already published await hre.run('publish-tally-results', { clrfund: clrfundContractAddress, - proofDir, + proofDir: outputDir, batchSize, manageNonce, quiet, diff --git a/contracts/utils/ipfs.ts b/contracts/utils/ipfs.ts index 8fc5de275..092d9a876 100644 --- a/contracts/utils/ipfs.ts +++ b/contracts/utils/ipfs.ts @@ -2,7 +2,9 @@ const Hash = require('ipfs-only-hash') import { FetchRequest } from 'ethers' import { DEFAULT_IPFS_GATEWAY } from './constants' - +import fs from 'fs' +import path from 'path' +import pinataSDK from '@pinata/sdk' /** * Get the ipfs hash for the input object * @param object a json object to get the ipfs hash for @@ -26,4 +28,28 @@ export class Ipfs { const resp = await req.send() return resp.bodyJson } + + /** + * Pin a file to IPFS + * @param file The file path to be uploaded to IPFS + * @param apiKey Pinata api key + * @param secretApiKey Pinata secret api key + * @returns IPFS hash + */ + static async pinFile( + file: string, + apiKey: string, + secretApiKey: string + ): Promise { + const pinata = new pinataSDK(apiKey, secretApiKey) + const data = fs.createReadStream(file) + const name = path.basename(file) + const options = { + pinataMetadata: { + name, + }, + } + const res = await pinata.pinFileToIPFS(data, options) + return res.IpfsHash + } } diff --git a/contracts/utils/misc.ts b/contracts/utils/misc.ts index 029a455de..9f7a34297 100644 --- a/contracts/utils/misc.ts +++ b/contracts/utils/misc.ts @@ -19,6 +19,29 @@ export function getMaciStateFilePath(directory: string) { return path.join(directory, 'maci-state.json') } +/** + * Return the proof output directory + * @param directory The root directory + * @param network The network + * @param roundAddress The funding round contract address + * @returns The proofs output directory + */ +export function getProofDirForRound( + directory: string, + network: string, + roundAddress: string +) { + try { + return path.join( + directory, + network.toLowerCase(), + roundAddress.toLowerCase() + ) + } catch { + return directory + } +} + /** * Check if the path exist * @param path The path to check for existence @@ -33,5 +56,5 @@ export function isPathExist(path: string): boolean { * @param directory The directory to create */ export function makeDirectory(directory: string): void { - fs.mkdirSync(directory) + fs.mkdirSync(directory, { recursive: true }) } diff --git a/docs/tally-verify.md b/docs/tally-verify.md index 61139360e..9ce6bc7dd 100644 --- a/docs/tally-verify.md +++ b/docs/tally-verify.md @@ -18,46 +18,23 @@ COORDINATOR_MACISK= # private key for interacting with contracts WALLET_MNEMONIC= WALLET_PRIVATE_KEY -``` - -Decrypt messages, tally the votes and generate proofs: -``` -yarn hardhat gen-proofs --clrfund {CLRFUND_CONTRACT_ADDRESS} --maci-tx-hash {MACI_CREATION_TRANSACTION_HASH} --proof-dir {OUTPUT_DIR} --rapidsnark {RAPID_SNARK} --network {network} +# credential to upload tally result to IPFS +PINATA_API_KEY= +PINATA_SECRET_API_KEY= ``` -You only need to provide `--rapidsnark` if you are running the `tally` command on an intel chip. -If `gen-proofs` failed, you can rerun the command with the same parameters. If the maci-state.json file has been created, you can skip fetching MACI logs by providing the MACI state file as follow: +Decrypt messages, tally the votes: ``` -yarn hardhat gen-proofs --clrfund {CLRFUND_CONTRACT_ADDRESS} --maci-state-file {MACI_STATE_FILE_PATH} --proof-dir {OUTPUT_DIR} --rapidsnark {RAPID_SNARK} --network {network} +yarn hardhat tally --clrfund {CLRFUND_CONTRACT_ADDRESS} --maci-tx-hash {MACI_CREATION_TRANSACTION_HASH} --proof-dir {OUTPUT_DIR} --rapidsnark {RAPID_SNARK} --network {network} ``` - -**Make a backup of the {OUTPUT_DIR} before continuing to the next step** - - -Upload the proofs on chain: -``` -yarn hardhat prove-on-chain --clrfund {CLRFUND_CONTRACT_ADDRESS} --proof-dir {OUTPUT_DIR} --network {network} -yarn hardhat publish-tally-results --clrfund {CLRFUND_CONTRACT_ADDRESS} --proof-dir {OUTPUT_DIR} --network localhost -``` - -If there's error running `prove-on-chain` or `publish-tally-resuls`, simply rerun the commands with the same parameters. - - - -Result will be saved to `{OUTPUT_DIR}/tally.json` file, which must then be published via IPFS. - -**Using [command line](https://docs.ipfs.tech/reference/kubo/cli/#ipfs)** - +You only need to provide `--rapidsnark` if you are running the `tally` command on an intel chip. +If the `tally` script failed, you can rerun the command with the same parameters. ``` -# start ipfs daemon in one terminal -ipfs daemon -# in a diff terminal, go to `/contracts` (or where you have the file) and publish the file -ipfs add tally.json -``` +Result will be saved to `{OUTPUT_DIR}/{network}-{fundingRoundAddress}/tally.json` file, which is also available on IPFS at `https://{ipfs-gateway-host}/ipfs/{tally-hash}`. ### Finalize round @@ -72,7 +49,7 @@ WALLET_PRIVATE_KEY= Once you have the `tally.json` from the tally script, run: ``` -yarn hardhat finalize --tally-file {tally.json} --network {network} +yarn hardhat finalize --clrfund {CLRFUND_CONTRACT_ADDRESS} --proof-dir {OUTPUT_DIR} --network {network} ``` # How to verify the tally results diff --git a/yarn.lock b/yarn.lock index 11e8b7f78..86e13a1f9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3409,6 +3409,16 @@ tslib "^2.5.0" webcrypto-core "^1.7.7" +"@pinata/sdk@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@pinata/sdk/-/sdk-2.1.0.tgz#d61aa8f21ec1206e867f4b65996db52b70316945" + integrity sha512-hkS0tcKtsjf9xhsEBs2Nbey5s+Db7x5rlOH9TaWHBXkJ7IwwOs2xnEDigNaxAHKjYAwcw+m2hzpO5QgOfeF7Zw== + dependencies: + axios "^0.21.1" + form-data "^2.3.3" + is-ipfs "^0.6.0" + path "^0.12.7" + "@pkgjs/parseargs@^0.11.0": version "0.11.0" resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" @@ -6830,7 +6840,7 @@ browserslist@^4.21.10, browserslist@^4.22.2: node-releases "^2.0.14" update-browserslist-db "^1.0.13" -bs58@^4.0.0: +bs58@^4.0.0, bs58@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" integrity sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw== @@ -10984,7 +10994,7 @@ form-data-encoder@^2.1.2: resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-2.1.4.tgz#261ea35d2a70d48d30ec7a9603130fa5515e9cd5" integrity sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw== -form-data@^2.2.0: +form-data@^2.2.0, form-data@^2.3.3: version "2.5.1" resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.1.tgz#f2cbec57b5e59e23716e128fe44d4e5dd23895f4" integrity sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA== @@ -12507,6 +12517,11 @@ inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, i resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== + ini@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" @@ -13200,6 +13215,18 @@ is-ip@^3.1.0: dependencies: ip-regex "^4.0.0" +is-ipfs@^0.6.0: + version "0.6.3" + resolved "https://registry.yarnpkg.com/is-ipfs/-/is-ipfs-0.6.3.tgz#82a5350e0a42d01441c40b369f8791e91404c497" + integrity sha512-HyRot1dvLcxImtDqPxAaY1miO6WsiP/z7Yxpg2qpaLWv5UdhAPtLvHJ4kMLM0w8GSl8AFsVF23PHe1LzuWrUlQ== + dependencies: + bs58 "^4.0.1" + cids "~0.7.0" + mafmt "^7.0.0" + multiaddr "^7.2.1" + multibase "~0.6.0" + multihashes "~0.4.13" + is-lower-case@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/is-lower-case/-/is-lower-case-2.0.2.tgz#1c0884d3012c841556243483aa5d522f47396d2a" @@ -14968,6 +14995,13 @@ macos-release@^3.1.0: resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-3.2.0.tgz#dcee82b6a4932971b1538dbf6f3aabc4a903b613" integrity sha512-fSErXALFNsnowREYZ49XCdOHF8wOPWuFOGQrAhP7x5J/BqQv+B02cNsTykGpDgRVx43EKg++6ANmTaGTtW+hUA== +mafmt@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/mafmt/-/mafmt-7.1.0.tgz#4126f6d0eded070ace7dbbb6fb04977412d380b5" + integrity sha512-vpeo9S+hepT3k2h5iFxzEHvvR0GPBx9uKaErmnRzYNcaKb03DgOArjEMlgG4a9LcuZZ89a3I8xbeto487n26eA== + dependencies: + multiaddr "^7.3.0" + magic-string@^0.26.7: version "0.26.7" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.26.7.tgz#caf7daf61b34e9982f8228c4527474dac8981d6f" @@ -15646,6 +15680,18 @@ multiaddr@^10.0.0: uint8arrays "^3.0.0" varint "^6.0.0" +multiaddr@^7.2.1, multiaddr@^7.3.0: + version "7.5.0" + resolved "https://registry.yarnpkg.com/multiaddr/-/multiaddr-7.5.0.tgz#976c88e256e512263445ab03b3b68c003d5f485e" + integrity sha512-GvhHsIGDULh06jyb6ev+VfREH9evJCFIRnh3jUt9iEZ6XDbyoisZRFEI9bMvK/AiR6y66y6P+eoBw9mBYMhMvw== + dependencies: + buffer "^5.5.0" + cids "~0.8.0" + class-is "^1.1.0" + is-ip "^3.1.0" + multibase "^0.7.0" + varint "^5.0.0" + multibase@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.7.0.tgz#1adfc1c50abe05eefeb5091ac0c2728d6b84581b" @@ -15690,7 +15736,7 @@ multiformats@^9.4.13, multiformats@^9.4.2, multiformats@^9.4.5, multiformats@^9. resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-9.9.0.tgz#c68354e7d21037a8f1f8833c8ccd68618e8f1d37" integrity sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg== -multihashes@^0.4.15, multihashes@~0.4.15: +multihashes@^0.4.15, multihashes@~0.4.13, multihashes@~0.4.15: version "0.4.21" resolved "https://registry.yarnpkg.com/multihashes/-/multihashes-0.4.21.tgz#dc02d525579f334a7909ade8a122dabb58ccfcb5" integrity sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw== @@ -17063,6 +17109,14 @@ path-type@^5.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-5.0.0.tgz#14b01ed7aea7ddf9c7c3f46181d4d04f9c785bb8" integrity sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg== +path@^0.12.7: + version "0.12.7" + resolved "https://registry.yarnpkg.com/path/-/path-0.12.7.tgz#d4dc2a506c4ce2197eb481ebfcd5b36c0140b10f" + integrity sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q== + dependencies: + process "^0.11.1" + util "^0.10.3" + pathe@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/pathe/-/pathe-0.2.0.tgz#30fd7bbe0a0d91f0e60bae621f5d19e9e225c339" @@ -17431,7 +17485,7 @@ process-warning@^3.0.0: resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-3.0.0.tgz#96e5b88884187a1dce6f5c3166d611132058710b" integrity sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ== -process@^0.11.10: +process@^0.11.1, process@^0.11.10: version "0.11.10" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== @@ -21003,6 +21057,13 @@ util.promisify@^1.0.0: object.getownpropertydescriptors "^2.1.6" safe-array-concat "^1.0.0" +util@^0.10.3: + version "0.10.4" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901" + integrity sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A== + dependencies: + inherits "2.0.3" + util@^0.12.4, util@^0.12.5: version "0.12.5" resolved "https://registry.yarnpkg.com/util/-/util-0.12.5.tgz#5f17a6059b73db61a875668781a1c2b136bd6fbc" From 88f8898c1666a33a310a0600070e69cfa3d82ec8 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Fri, 5 Apr 2024 22:32:36 -0400 Subject: [PATCH 324/338] add PINATA env variables --- .github/workflows/finalize-round.yml | 2 ++ .github/workflows/test-scripts.yml | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.github/workflows/finalize-round.yml b/.github/workflows/finalize-round.yml index fd972749f..0109651d5 100644 --- a/.github/workflows/finalize-round.yml +++ b/.github/workflows/finalize-round.yml @@ -29,6 +29,8 @@ env: CIRCUIT_TYPE: micro ZKEYS_DOWNLOAD_SCRIPT: "download-6-9-2-3.sh" JSONRPC_HTTP_URL: ${{ github.event.inputs.jsonrpc_url }} + PINATA_API_KEY: ${{ secrets.PINATA_API_KEY }} + PINATA_SECRET_API_KEY: ${{ secrets.PINATA_SECRET_API_KEY }} jobs: finalize: diff --git a/.github/workflows/test-scripts.yml b/.github/workflows/test-scripts.yml index 5ebe7d346..05082aa5e 100644 --- a/.github/workflows/test-scripts.yml +++ b/.github/workflows/test-scripts.yml @@ -10,6 +10,8 @@ on: env: NODE_VERSION: 20.x ZKEYS_DOWNLOAD_SCRIPT: "download-6-9-2-3.sh" + PINATA_API_KEY: ${{ secrets.PINATA_API_KEY }} + PINATA_SECRET_API_KEY: ${{ secrets.PINATA_SECRET_API_KEY }} jobs: script-tests: From 00cb623dd17c29cb102080a3f5f34d5ea38e3a42 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Fri, 12 Apr 2024 17:33:45 -0400 Subject: [PATCH 325/338] verify ClrFund contract by address --- .../tasks/helpers/ConstructorArguments.ts | 339 ++++++++++++++++ contracts/tasks/helpers/ContractStorage.ts | 20 + contracts/tasks/helpers/ContractVerifier.ts | 6 +- contracts/tasks/index.ts | 1 + contracts/tasks/runners/newClrFund.ts | 12 +- contracts/tasks/runners/newDeployer.ts | 11 +- contracts/tasks/runners/setToken.ts | 8 +- contracts/tasks/runners/verifyAll.ts | 368 ++++++++++++++---- contracts/tasks/runners/verifyDeployer.ts | 34 ++ contracts/tests/maciFactory.ts | 2 +- contracts/utils/testutils.ts | 2 +- contracts/utils/types.ts | 2 + 12 files changed, 715 insertions(+), 90 deletions(-) create mode 100644 contracts/tasks/helpers/ConstructorArguments.ts create mode 100644 contracts/tasks/runners/verifyDeployer.ts diff --git a/contracts/tasks/helpers/ConstructorArguments.ts b/contracts/tasks/helpers/ConstructorArguments.ts new file mode 100644 index 000000000..6f9f3d5b4 --- /dev/null +++ b/contracts/tasks/helpers/ConstructorArguments.ts @@ -0,0 +1,339 @@ +import type { HardhatRuntimeEnvironment } from 'hardhat/types' +import { BaseContract, Interface } from 'ethers' +import { ContractStorage } from './ContractStorage' +import { EContracts } from './types' +import { HardhatEthersHelpers } from '@nomicfoundation/hardhat-ethers/types' +import { + BrightIdUserRegistry, + ClrFundDeployer, + MACIFactory, + MessageProcessor, + OptimisticRecipientRegistry, + Poll, + Tally, +} from '../../typechain-types' + +/** A list of functions to get contract constructor arguments from the contract */ +const ConstructorArgumentsGetters: Record< + string, + (address: string, ethers: HardhatEthersHelpers) => Promise> +> = { + [EContracts.FundingRound]: getFundingRoundConstructorArguments, + [EContracts.MACI]: getMaciConstructorArguments, + [EContracts.Poll]: getPollConstructorArguments, + [EContracts.Tally]: getTallyConstructorArguments, + [EContracts.MessageProcessor]: getMessageProcessorConstructorArguments, + [EContracts.BrightIdUserRegistry]: + getBrightIdUserRegistryConstructorArguments, + [EContracts.OptimisticRecipientRegistry]: + getOptimisticRecipientRegistryConstructorArguments, + [EContracts.ClrFundDeployer]: getClrFundDeployerConstructorArguments, + [EContracts.MACIFactory]: getMACIFactoryConstructorArguments, +} + +/** + * Get the constructor arguments for FundingRound + * @param address The funding round contract address + * @param ethers The Hardhat Ethers helper + * @returns The funding round constructor arguments + */ +async function getFundingRoundConstructorArguments( + address: string, + ethers: HardhatEthersHelpers +): Promise> { + const round = await ethers.getContractAt(EContracts.FundingRound, address) + + const args = await Promise.all([ + round.nativeToken(), + round.userRegistry(), + round.recipientRegistry(), + round.coordinator(), + ]) + + return args +} + +/** + * Get the constructor arguments for MACI + * @param address The MACI contract address + * @param ethers The Hardhat Ethers helper + * @returns The constructor arguments + */ +async function getMaciConstructorArguments( + address: string, + ethers: HardhatEthersHelpers +): Promise> { + const maci = await ethers.getContractAt(EContracts.MACI, address) + + const args = await Promise.all([ + maci.pollFactory(), + maci.messageProcessorFactory(), + maci.tallyFactory(), + maci.subsidyFactory(), + maci.signUpGatekeeper(), + maci.initialVoiceCreditProxy(), + maci.topupCredit(), + maci.stateTreeDepth(), + ]) + + return args +} + +/** + * Get the constructor arguments for Poll + * @param address The Poll contract address + * @param ethers The Hardhat Ethers helper + * @returns The constructor arguments + */ +async function getPollConstructorArguments( + address: string, + ethers: HardhatEthersHelpers +): Promise> { + const pollContract = (await ethers.getContractAt( + EContracts.Poll, + address + )) as BaseContract as Poll + + const [, duration] = await pollContract.getDeployTimeAndDuration() + const [maxValues, treeDepths, coordinatorPubKey, extContracts] = + await Promise.all([ + pollContract.maxValues(), + pollContract.treeDepths(), + pollContract.coordinatorPubKey(), + pollContract.extContracts(), + ]) + + const args = [ + duration, + { + maxMessages: maxValues.maxMessages, + maxVoteOptions: maxValues.maxVoteOptions, + }, + { + intStateTreeDepth: treeDepths.intStateTreeDepth, + messageTreeSubDepth: treeDepths.messageTreeSubDepth, + messageTreeDepth: treeDepths.messageTreeDepth, + voteOptionTreeDepth: treeDepths.voteOptionTreeDepth, + }, + { + x: coordinatorPubKey.x, + y: coordinatorPubKey.y, + }, + { + maci: extContracts.maci, + messageAq: extContracts.messageAq, + topupCredit: extContracts.topupCredit, + }, + ] + + return args +} + +/** + * Get the constructor arguments for Tally + * @param address The Tally contract address + * @param ethers The Hardhat Ethers helper + * @returns The constructor arguments + */ +async function getTallyConstructorArguments( + address: string, + ethers: HardhatEthersHelpers +): Promise> { + const tallyContract = (await ethers.getContractAt( + EContracts.Tally, + address + )) as BaseContract as Tally + + const args = await Promise.all([ + tallyContract.verifier(), + tallyContract.vkRegistry(), + tallyContract.poll(), + tallyContract.messageProcessor(), + ]) + + return args +} + +/** + * Get the constructor arguments for MessageProcessor + * @param address The MessageProcessor contract address + * @param ethers The Hardhat Ethers helper + * @returns The constructor arguments + */ +async function getMessageProcessorConstructorArguments( + address: string, + ethers: HardhatEthersHelpers +): Promise> { + const messageProcesor = (await ethers.getContractAt( + EContracts.MessageProcessor, + address + )) as BaseContract as MessageProcessor + + const args = await Promise.all([ + messageProcesor.verifier(), + messageProcesor.vkRegistry(), + messageProcesor.poll(), + ]) + + return args +} + +/** + * Get the constructor arguments for BrightIdUserRegistry + * @param address The BrightIdUserRegistry contract address + * @param ethers The Hardhat Ethers helper + * @returns The constructor arguments + */ +async function getBrightIdUserRegistryConstructorArguments( + address: string, + ethers: HardhatEthersHelpers +): Promise> { + const registry = (await ethers.getContractAt( + EContracts.BrightIdUserRegistry, + address + )) as BaseContract as BrightIdUserRegistry + + const args = await Promise.all([ + registry.context(), + registry.verifier(), + registry.brightIdSponsor(), + ]) + + return args +} + +/** + * Get the constructor arguments for OptimisticRecipientRegistry + * @param address The OptimisticRecipientRegistry contract address + * @param ethers The Hardhat Ethers helper + * @returns The constructor arguments + */ +async function getOptimisticRecipientRegistryConstructorArguments( + address: string, + ethers: HardhatEthersHelpers +): Promise> { + const registry = (await ethers.getContractAt( + EContracts.OptimisticRecipientRegistry, + address + )) as BaseContract as OptimisticRecipientRegistry + + const args = await Promise.all([ + registry.baseDeposit(), + registry.challengePeriodDuration(), + registry.controller(), + ]) + + return args +} + +/** + * Get the constructor arguments for ClrFundDeployer + * @param address The ClrFundDeployer contract address + * @param ethers The Hardhat Ethers helper + * @returns The constructor arguments + */ +async function getClrFundDeployerConstructorArguments( + address: string, + ethers: HardhatEthersHelpers +): Promise> { + const registry = (await ethers.getContractAt( + EContracts.ClrFundDeployer, + address + )) as BaseContract as ClrFundDeployer + + const args = await Promise.all([ + registry.clrfundTemplate(), + registry.maciFactory(), + registry.roundFactory(), + ]) + + return args +} + +/** + * Get the constructor arguments for MACIFactory + * @param address The MACIFactory contract address + * @param ethers The Hardhat Ethers helper + * @returns The constructor arguments + */ +async function getMACIFactoryConstructorArguments( + address: string, + ethers: HardhatEthersHelpers +): Promise> { + const registry = (await ethers.getContractAt( + EContracts.MACIFactory, + address + )) as BaseContract as MACIFactory + + const args = await Promise.all([ + registry.vkRegistry(), + registry.factories(), + registry.verifier(), + ]) + + return args +} + +/** + * @notice A helper to retrieve contract constructor arguments + */ +export class ConstructorArguments { + /** + * Hardhat runtime environment + */ + private hre: HardhatRuntimeEnvironment + + /** + * Local contract deployment information + */ + private storage: ContractStorage + + /** + * Initialize class properties + * + * @param hre - Hardhat runtime environment + */ + constructor(hre: HardhatRuntimeEnvironment) { + this.hre = hre + this.storage = ContractStorage.getInstance() + } + + /** + * Get the contract constructor arguments + * @param name - contract name + * @param address - contract address + * @param ethers = Hardhat Ethers helper + * @returns - stringified constructor arguments + */ + async get( + name: string, + address: string, + ethers: HardhatEthersHelpers + ): Promise> { + const contractArtifact = this.hre.artifacts.readArtifactSync(name) + const contractInterface = new Interface(contractArtifact.abi) + if (contractInterface.deploy.inputs.length === 0) { + // no argument + return [] + } + + // try to get arguments from deployed-contract.json file + const constructorArguments = this.storage.getConstructorArguments( + address, + this.hre.network.name + ) + if (constructorArguments) { + return constructorArguments + } + + // try to get custom constructor arguments from contract + let args: Array = [] + + const getConstructorArguments = ConstructorArgumentsGetters[name] + if (getConstructorArguments) { + args = await getConstructorArguments(address, ethers) + } + + return args + } +} diff --git a/contracts/tasks/helpers/ContractStorage.ts b/contracts/tasks/helpers/ContractStorage.ts index 9c092bd24..56db46e6e 100644 --- a/contracts/tasks/helpers/ContractStorage.ts +++ b/contracts/tasks/helpers/ContractStorage.ts @@ -204,6 +204,26 @@ export class ContractStorage { return instance?.txHash } + /** + * Get contract constructor argument by address from the json file + * + * @param address - contract address + * @param network - selected network + * @returns contract constructor arguments + */ + getConstructorArguments( + address: string, + network: string + ): Array | undefined { + if (!this.db[network]) { + return undefined + } + + const instance = this.db[network].instance?.[address] + const args = instance?.verify?.args + return args ? JSON.parse(args) : undefined + } + /** * Get contract address by name from the json file * diff --git a/contracts/tasks/helpers/ContractVerifier.ts b/contracts/tasks/helpers/ContractVerifier.ts index 6d71952bc..3a517373f 100644 --- a/contracts/tasks/helpers/ContractVerifier.ts +++ b/contracts/tasks/helpers/ContractVerifier.ts @@ -31,13 +31,13 @@ export class ContractVerifier { */ async verify( address: string, - constructorArguments: string, + constructorArguments: unknown[], libraries?: string, contract?: string ): Promise<[boolean, string]> { const params: IVerificationSubtaskArgs = { address, - constructorArguments: JSON.parse(constructorArguments) as unknown[], + constructorArguments, contract, } @@ -50,7 +50,7 @@ export class ContractVerifier { .run('verify:verify', params) .then(() => '') .catch((err: Error) => { - if (err.message === 'Contract source code already verified') { + if (err.message && err.message.match(/already verified/i)) { return '' } diff --git a/contracts/tasks/index.ts b/contracts/tasks/index.ts index 5bcc7e4fc..297320679 100644 --- a/contracts/tasks/index.ts +++ b/contracts/tasks/index.ts @@ -23,3 +23,4 @@ import './runners/addRecipients' import './runners/findStorageSlot' import './runners/verifyTallyFile' import './runners/verifyAll' +import './runners/verifyDeployer' diff --git a/contracts/tasks/runners/newClrFund.ts b/contracts/tasks/runners/newClrFund.ts index 31ff081a0..9986ca223 100644 --- a/contracts/tasks/runners/newClrFund.ts +++ b/contracts/tasks/runners/newClrFund.ts @@ -13,9 +13,9 @@ * where `nonce too low` errors occur occasionally */ import { task, types } from 'hardhat/config' - +import { ContractStorage } from '../helpers/ContractStorage' import { Subtask } from '../helpers/Subtask' -import { type ISubtaskParams } from '../helpers/types' +import { EContracts, type ISubtaskParams } from '../helpers/types' task('new-clrfund', 'Deploy a new instance of ClrFund') .addFlag('incremental', 'Incremental deployment') @@ -26,6 +26,7 @@ task('new-clrfund', 'Deploy a new instance of ClrFund') .setAction(async (params: ISubtaskParams, hre) => { const { verify, manageNonce } = params const subtask = Subtask.getInstance(hre) + const storage = ContractStorage.getInstance() subtask.setHre(hre) const deployer = await subtask.getDeployer() @@ -62,7 +63,10 @@ task('new-clrfund', 'Deploy a new instance of ClrFund') await subtask.finish(success) if (verify) { - console.log('Verify all contracts') - await hre.run('verify-all') + const clrfund = storage.getAddress(EContracts.ClrFund, hre.network.name) + if (clrfund) { + console.log('Verify all contracts') + await hre.run('verify-all', { clrfund }) + } } }) diff --git a/contracts/tasks/runners/newDeployer.ts b/contracts/tasks/runners/newDeployer.ts index 14157d4f8..e0023e9b2 100644 --- a/contracts/tasks/runners/newDeployer.ts +++ b/contracts/tasks/runners/newDeployer.ts @@ -15,7 +15,8 @@ import { task, types } from 'hardhat/config' import { Subtask } from '../helpers/Subtask' -import { type ISubtaskParams } from '../helpers/types' +import { ContractStorage } from '../helpers/ContractStorage' +import { EContracts, type ISubtaskParams } from '../helpers/types' task('new-deployer', 'Deploy a new instance of ClrFund') .addFlag('incremental', 'Incremental deployment') @@ -26,6 +27,7 @@ task('new-deployer', 'Deploy a new instance of ClrFund') .setAction(async (params: ISubtaskParams, hre) => { const { verify, manageNonce } = params const subtask = Subtask.getInstance(hre) + const storage = ContractStorage.getInstance() subtask.setHre(hre) const deployer = await subtask.getDeployer() @@ -63,7 +65,10 @@ task('new-deployer', 'Deploy a new instance of ClrFund') await subtask.finish(success) if (verify) { - console.log('Verify all contracts') - await hre.run('verify-all') + const address = storage.mustGetAddress( + EContracts.ClrFundDeployer, + hre.network.name + ) + await hre.run('verify-deployer', { address }) } }) diff --git a/contracts/tasks/runners/setToken.ts b/contracts/tasks/runners/setToken.ts index f9fc9272a..348aac137 100644 --- a/contracts/tasks/runners/setToken.ts +++ b/contracts/tasks/runners/setToken.ts @@ -18,12 +18,11 @@ import { type ISubtaskParams } from '../helpers/types' task('set-token', 'Set the token in ClrFund') .addFlag('incremental', 'Incremental deployment') .addFlag('strict', 'Fail on warnings') - .addFlag('verify', 'Verify contracts at Etherscan') .addFlag('manageNonce', 'Manually increment nonce for each transaction') .addOptionalParam('clrfund', 'The ClrFund contract address') .addOptionalParam('skip', 'Skip steps with less or equal index', 0, types.int) .setAction(async (params: ISubtaskParams, hre) => { - const { verify, manageNonce } = params + const { manageNonce } = params const subtask = Subtask.getInstance(hre) subtask.setHre(hre) @@ -53,9 +52,4 @@ task('set-token', 'Set the token in ClrFund') } await subtask.finish(success) - - if (verify) { - console.log('Verify all contracts') - await hre.run('verify-all') - } }) diff --git a/contracts/tasks/runners/verifyAll.ts b/contracts/tasks/runners/verifyAll.ts index ab4647563..6425bf5eb 100644 --- a/contracts/tasks/runners/verifyAll.ts +++ b/contracts/tasks/runners/verifyAll.ts @@ -1,108 +1,334 @@ /* eslint-disable no-console */ import { task } from 'hardhat/config' -import type { IStorageInstanceEntry, IVerifyAllArgs } from '../helpers/types' +import { EContracts } from '../helpers/types' import { ContractStorage } from '../helpers/ContractStorage' import { ContractVerifier } from '../helpers/ContractVerifier' +import { + BrightIdUserRegistry, + ClrFund, + MerkleUserRegistry, + SemaphoreUserRegistry, + SnapshotUserRegistry, +} from '../../typechain-types' +import { BaseContract } from 'ethers' +import { HardhatEthersHelpers } from '@nomicfoundation/hardhat-ethers/types' +import { ZERO_ADDRESS } from '../../utils/constants' +import { ConstructorArguments } from '../helpers/ConstructorArguments' + +type ContractInfo = { + name: string + address: string +} + +type VerificationSummary = { + contract: string + ok: boolean + err?: string +} /** - * Main verification task which runs hardhat-etherscan task for all the deployed contract. + * Get the recipient registry contract name + * @param registryAddress The recipient registry contract address + * @param ethers The Hardhat Ethers helper + * @returns The recipient registry contract name */ -task('verify-all', 'Verify contracts listed in storage') - .addFlag('force', 'Ignore verified status') - .setAction(async ({ force = false }: IVerifyAllArgs, hre) => { - const storage = ContractStorage.getInstance() - const verifier = new ContractVerifier(hre) - const addressList: string[] = [] - const entryList: IStorageInstanceEntry[] = [] - let index = 0 +async function getRecipientRegistryName( + registryAddress: string, + ethers: HardhatEthersHelpers +): Promise { + try { + const contract = await ethers.getContractAt( + EContracts.KlerosGTCRAdapter, + registryAddress + ) + const tcr = await contract.tcr() + if (tcr === ZERO_ADDRESS) { + throw new Error( + 'Unexpected zero tcr from a Kleros recipient registry: ' + + registryAddress + ) + } + return EContracts.KlerosGTCRAdapter + } catch { + // not a kleros registry + } - const addEntry = (address: string, entry: IStorageInstanceEntry) => { - if (!entry.verify) { - return - } + // try optimistic + const contract = await ethers.getContractAt( + EContracts.OptimisticRecipientRegistry, + registryAddress + ) - addressList.push(address) - entryList.push(entry) - index += 1 - } + try { + await contract.challengePeriodDuration() + return EContracts.OptimisticRecipientRegistry + } catch { + // not optimistic, use simple registry + return EContracts.SimpleRecipientRegistry + } +} + +/** + * Get the user registry contract name + * @param registryAddress The user registry contract address + * @param ethers The Hardhat Ethers helper + * @returns The user registry contract name + */ +async function getUserRegistryName( + registryAddress: string, + ethers: HardhatEthersHelpers +): Promise { + try { + const contract = (await ethers.getContractAt( + EContracts.BrightIdUserRegistry, + registryAddress + )) as BaseContract as BrightIdUserRegistry + await contract.context() + return EContracts.BrightIdUserRegistry + } catch { + // not a BrightId user registry + } - const instances = storage.getInstances(hre.network.name) + // try semaphore user registry + try { + const contract = (await ethers.getContractAt( + EContracts.SemaphoreUserRegistry, + registryAddress + )) as BaseContract as SemaphoreUserRegistry + await contract.isVerifiedSemaphoreId(1) + return EContracts.SemaphoreUserRegistry + } catch { + // not a semaphore user registry + } - instances.forEach(([key, entry]) => { - if (entry.id.includes('Poseidon')) { - return - } + // try snapshot user regitry + try { + const contract = (await ethers.getContractAt( + EContracts.SnapshotUserRegistry, + registryAddress + )) as BaseContract as SnapshotUserRegistry + await contract.storageRoot() + } catch { + // not snapshot user registry + } + + // try merkle user regitry + try { + const contract = (await ethers.getContractAt( + EContracts.MerkleUserRegistry, + registryAddress + )) as BaseContract as MerkleUserRegistry + await contract.merkleRoot() + } catch { + // not merkle user registry + } - addEntry(key, entry) + return EContracts.SimpleUserRegistry +} + +/** + * Get the list of contracts to verify + * @param clrfund The ClrFund contract address + * @param ethers The Hardhat Ethers helper + * @param etherscanProvider The Etherscan provider + * @returns The list of contracts to verify + */ +async function getContractList( + clrfund: string, + ethers: HardhatEthersHelpers +): Promise { + const contractList: ContractInfo[] = [ + { + name: EContracts.ClrFund, + address: clrfund, + }, + ] + + const clrfundContract = (await ethers.getContractAt( + EContracts.ClrFund, + clrfund + )) as BaseContract as ClrFund + + const fundingRoundFactoryAddress = await clrfundContract.roundFactory() + if (fundingRoundFactoryAddress !== ZERO_ADDRESS) { + contractList.push({ + name: EContracts.FundingRoundFactory, + address: fundingRoundFactoryAddress, }) + } - console.log( - '======================================================================' - ) - console.log( - '======================================================================' - ) - console.log( - `Verification batch with ${addressList.length} entries of ${index} total.` + const maciFactoryAddress = await clrfundContract.maciFactory() + if (maciFactoryAddress !== ZERO_ADDRESS) { + contractList.push({ + name: EContracts.MACIFactory, + address: maciFactoryAddress, + }) + + const maciFactory = await ethers.getContractAt( + EContracts.MACIFactory, + maciFactoryAddress ) - console.log( - '======================================================================' + const vkRegistryAddress = await maciFactory.vkRegistry() + contractList.push({ + name: EContracts.VkRegistry, + address: vkRegistryAddress, + }) + + const factories = await maciFactory.factories() + contractList.push({ + name: EContracts.PollFactory, + address: factories.pollFactory, + }) + + contractList.push({ + name: EContracts.TallyFactory, + address: factories.tallyFactory, + }) + + contractList.push({ + name: EContracts.MessageProcessorFactory, + address: factories.messageProcessorFactory, + }) + } + + const fundingRoundAddress = await clrfundContract.getCurrentRound() + if (fundingRoundAddress !== ZERO_ADDRESS) { + contractList.push({ + name: EContracts.FundingRound, + address: fundingRoundAddress, + }) + + const fundingRound = await ethers.getContractAt( + EContracts.FundingRound, + fundingRoundAddress ) - const summary: string[] = [] - for (let i = 0; i < addressList.length; i += 1) { - const address = addressList[i] - const entry = entryList[i] + const maciAddress = await fundingRound.maci() + if (maciAddress !== ZERO_ADDRESS) { + contractList.push({ + name: EContracts.MACI, + address: maciAddress, + }) + } - const params = entry.verify + // Poll + const pollAddress = await fundingRound.poll() + if (pollAddress !== ZERO_ADDRESS) { + contractList.push({ + name: EContracts.Poll, + address: pollAddress, + }) + } - console.log( - '\n======================================================================' + // Tally + const tallyAddress = await fundingRound.tally() + if (tallyAddress !== ZERO_ADDRESS) { + contractList.push({ + name: EContracts.Tally, + address: tallyAddress, + }) + + // Verifier + const tallyContract = await ethers.getContractAt( + EContracts.Tally, + tallyAddress ) - console.log( - `[${i}/${addressList.length}] Verify contract: ${entry.id} ${address}` + const verifierAddress = await tallyContract.verifier() + if (verifierAddress !== ZERO_ADDRESS) { + contractList.push({ + name: EContracts.Verifier, + address: verifierAddress, + }) + } + + // MessageProcessor + const messageProcessorAddress = await tallyContract.messageProcessor() + if (messageProcessorAddress !== ZERO_ADDRESS) { + contractList.push({ + name: EContracts.MessageProcessor, + address: messageProcessorAddress, + }) + } + } + + // User Registry + const userRegistryAddress = await fundingRound.userRegistry() + if (userRegistryAddress !== ZERO_ADDRESS) { + const name = await getUserRegistryName(userRegistryAddress, ethers) + contractList.push({ + name, + address: userRegistryAddress, + }) + } + + // Recipient Registry + const recipientRegistryAddress = await fundingRound.recipientRegistry() + if (recipientRegistryAddress !== ZERO_ADDRESS) { + const name = await getRecipientRegistryName( + recipientRegistryAddress, + ethers ) - console.log('\tArgs:', params?.args) + contractList.push({ + name, + address: recipientRegistryAddress, + }) + } + } - const verifiedEntity = storage.getVerified(address, hre.network.name) + return contractList +} - if (!force && verifiedEntity) { - console.log('Already verified') - } else { +/** + * Main verification task which runs hardhat-etherscan task for all the deployed contract. + */ +task('verify-all', 'Verify contracts listed in storage') + .addOptionalParam('clrfund', 'The ClrFund contract address') + .addFlag('force', 'Ignore verified status') + .setAction(async ({ clrfund }, hre) => { + const { ethers, config, network } = hre + + const storage = ContractStorage.getInstance() + const clrfundContractAddress = + clrfund ?? storage.mustGetAddress(EContracts.ClrFund, network.name) + + const contractList = await getContractList(clrfundContractAddress, ethers) + const constructorArguments = new ConstructorArguments(hre) + const verifier = new ContractVerifier(hre) + const summary: VerificationSummary[] = [] + + for (let i = 0; i < contractList.length; i += 1) { + const { name, address } = contractList[i] + + try { + const args = await constructorArguments.get(name, address, ethers) let contract: string | undefined let libraries: string | undefined - if (entry.id === 'AnyOldERC20Token') { - contract = 'contracts/AnyOldERC20Token.sol:AnyOldERC20Token' - } - // eslint-disable-next-line no-await-in-loop const [ok, err] = await verifier.verify( address, - params?.args ?? '', + args, libraries, contract ) - if (ok) { - storage.setVerified(address, hre.network.name, true) - } else { - summary.push(`${address} ${entry.id}: ${err}`) - } + summary.push({ contract: `${address} ${name}`, ok, err }) + } catch (e) { + // error getting the constructors, skipping + summary.push({ + contract: `${address} ${name}`, + ok: false, + err: 'Failed to get constructor. ' + (e as Error).message, + }) } } - console.log( - '\n======================================================================' - ) - console.log( - `Verification batch has finished with ${summary.length} issue(s).` - ) - console.log( - '======================================================================' - ) - console.log(summary.join('\n')) - console.log( - '======================================================================' - ) + summary.forEach(({ contract, ok, err }, i) => { + const color = ok ? '32' : '31' + console.log( + `${i + 1} ${contract}: \x1b[%sm%s\x1b[0m`, + color, + ok ? 'ok' : err + ) + }) }) diff --git a/contracts/tasks/runners/verifyDeployer.ts b/contracts/tasks/runners/verifyDeployer.ts new file mode 100644 index 000000000..a2fad0cf6 --- /dev/null +++ b/contracts/tasks/runners/verifyDeployer.ts @@ -0,0 +1,34 @@ +import { task } from 'hardhat/config' +import { EContracts } from '../../utils/types' +import { EtherscanProvider } from '../../utils/providers/EtherscanProvider' +import { ContractVerifier } from '../helpers/ContractVerifier' +import { ConstructorArguments } from '../helpers/ConstructorArguments' + +/** + * Verifies the ClrFundDeployer contract + * - it constructs the constructor arguments by querying the ClrFundDeployer contract + * - it calls the etherscan hardhat plugin to verify the contract + */ +task('verify-deployer', 'Verify a ClrFundDeployer contract') + .addParam('address', 'ClrFundDeployer contract address') + .setAction(async ({ address }, hre) => { + const contractVerifier = new ContractVerifier(hre) + const getter = new ConstructorArguments(hre) + + const name = EContracts.ClrFundDeployer + const constructorArgument = await getter.get( + EContracts.ClrFundDeployer, + address, + hre.ethers + ) + const [ok, err] = await contractVerifier.verify( + address, + constructorArgument + ) + + console.log( + `${address} ${name}: \x1b[%sm%s\x1b[0m`, + ok ? 32 : 31, + ok ? 'ok' : err + ) + }) diff --git a/contracts/tests/maciFactory.ts b/contracts/tests/maciFactory.ts index 44296bbf9..3f23d58ad 100644 --- a/contracts/tests/maciFactory.ts +++ b/contracts/tests/maciFactory.ts @@ -1,4 +1,4 @@ -import { artifacts, ethers, config } from 'hardhat' +import { artifacts, ethers } from 'hardhat' import { Contract, TransactionResponse } from 'ethers' import { expect } from 'chai' import { deployMockContract, MockContract } from '@clrfund/waffle-mock-contract' diff --git a/contracts/utils/testutils.ts b/contracts/utils/testutils.ts index db63401ec..e5ace7da7 100644 --- a/contracts/utils/testutils.ts +++ b/contracts/utils/testutils.ts @@ -1,6 +1,6 @@ import { Signer, Contract } from 'ethers' import { MockContract, deployMockContract } from '@clrfund/waffle-mock-contract' -import { artifacts, ethers, config } from 'hardhat' +import { artifacts, ethers } from 'hardhat' import { MaciParameters } from './maciParameters' import { PubKey } from '@clrfund/common' import { deployContract, getEventArg, setVerifyingKeys } from './contracts' diff --git a/contracts/utils/types.ts b/contracts/utils/types.ts index ba8f753f4..a389bec65 100644 --- a/contracts/utils/types.ts +++ b/contracts/utils/types.ts @@ -27,6 +27,8 @@ export enum EContracts { IUserRegistry = 'IUserRegistry', SimpleUserRegistry = 'SimpleUserRegistry', SemaphoreUserRegistry = 'SemaphoreUserRegistry', + SnapshotUserRegistry = 'SnapshotUserRegistry', + MerkleUserRegistry = 'MerkleUserRegistry', BrightIdUserRegistry = 'BrightIdUserRegistry', AnyOldERC20Token = 'AnyOldERC20Token', BrightIdSponsor = 'BrightIdSponsor', From e7ded06adb82128bf59f694d6f76442baf20c324 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Tue, 16 Apr 2024 17:07:27 -0400 Subject: [PATCH 326/338] refactor etherscan provider to extract API key from custom config --- contracts/tasks/runners/exportRound.ts | 35 ++++-------- contracts/tasks/runners/verifyAll.ts | 1 - contracts/tasks/runners/verifyDeployer.ts | 1 - .../utils/RecipientRegistryLogProcessor.ts | 7 ++- contracts/utils/abi.ts | 11 ++++ .../utils/providers/EtherscanProvider.ts | 57 +++++++++++++++---- contracts/utils/providers/ProviderFactory.ts | 10 ++-- 7 files changed, 78 insertions(+), 44 deletions(-) diff --git a/contracts/tasks/runners/exportRound.ts b/contracts/tasks/runners/exportRound.ts index 4eadf9818..fa3e332b1 100644 --- a/contracts/tasks/runners/exportRound.ts +++ b/contracts/tasks/runners/exportRound.ts @@ -16,7 +16,7 @@ import { Contract, formatUnits, getNumber } from 'ethers' import { Ipfs } from '../../utils/ipfs' import { Project, Round, RoundFileContent } from '../../utils/types' import { RecipientRegistryLogProcessor } from '../../utils/RecipientRegistryLogProcessor' -import { getRecipientAddressAbi } from '../../utils/abi' +import { getRecipientAddressAbi, MaciV0Abi } from '../../utils/abi' import { JSONFile } from '../../utils/JSONFile' import path from 'path' import fs from 'fs' @@ -41,19 +41,6 @@ function roundListFileName(directory: string): string { return path.join(directory, 'rounds.json') } -function getEtherscanApiKey(config: any, network: string): string { - let etherscanApiKey = '' - if (config.etherscan?.apiKey) { - if (typeof config.etherscan.apiKey === 'string') { - etherscanApiKey = config.etherscan.apiKey - } else { - etherscanApiKey = config.etherscan.apiKey[network] - } - } - - return etherscanApiKey -} - function roundMapKey(round: RoundListEntry): string { return `${round.network}.${round.address}` } @@ -76,7 +63,10 @@ async function updateRoundList(filePath: string, round: RoundListEntry) { const rounds: RoundListEntry[] = Array.from(roundMap.values()) // sort in ascending start time order - rounds.sort((round1, round2) => round1.startTime - round2.startTime) + rounds.sort( + (round1, round2) => + getNumber(round1.startTime) - getNumber(round2.startTime) + ) JSONFile.write(filePath, rounds) console.log('Finished writing to', filePath) } @@ -137,7 +127,11 @@ async function mergeRecipientTally({ } const tallyResult = tally.results.tally[i] - const spentVoiceCredits = tally.perVOSpentVoiceCredits.tally[i] + + // In MACI V1, totalVoiceCreditsPerVoteOption is called perVOSpentVoiceCredits + const spentVoiceCredits = tally.perVOSpentVoiceCredits + ? tally.perVOSpentVoiceCredits.tally[i] + : tally.totalVoiceCreditsPerVoteOption.tally[i] const formattedDonationAmount = formatUnits( BigInt(spentVoiceCredits) * BigInt(voiceCreditFactor), nativeTokenDecimals @@ -237,7 +231,7 @@ async function getRoundInfo( maxMessages = maxValues.maxMessages maxRecipients = maxValues.maxVoteOptions } else { - const maci = await ethers.getContractAt('MACI', maciAddress) + const maci = await ethers.getContractAt(MaciV0Abi, maciAddress) startTime = await maci.signUpTimestamp().catch(toZero) signUpDuration = await maci.signUpDurationSeconds().catch(toZero) votingDuration = await maci.votingDurationSeconds().catch(toZero) @@ -352,11 +346,6 @@ task('export-round', 'Export round data for the leaderboard') console.log('Processing on ', network.name) console.log('Funding round address', roundAddress) - const etherscanApiKey = getEtherscanApiKey(config, network.name) - if (!etherscanApiKey) { - throw new Error('Etherscan API key not set') - } - const outputSubDir = path.join(outputDir, network.name) try { fs.statSync(outputSubDir) @@ -383,7 +372,7 @@ task('export-round', 'Export round data for the leaderboard') endBlock, blocksPerBatch, network: network.name, - etherscanApiKey, + config, }) console.log('Parsing logs...') diff --git a/contracts/tasks/runners/verifyAll.ts b/contracts/tasks/runners/verifyAll.ts index 6425bf5eb..c010df8ff 100644 --- a/contracts/tasks/runners/verifyAll.ts +++ b/contracts/tasks/runners/verifyAll.ts @@ -132,7 +132,6 @@ async function getUserRegistryName( * Get the list of contracts to verify * @param clrfund The ClrFund contract address * @param ethers The Hardhat Ethers helper - * @param etherscanProvider The Etherscan provider * @returns The list of contracts to verify */ async function getContractList( diff --git a/contracts/tasks/runners/verifyDeployer.ts b/contracts/tasks/runners/verifyDeployer.ts index a2fad0cf6..284689063 100644 --- a/contracts/tasks/runners/verifyDeployer.ts +++ b/contracts/tasks/runners/verifyDeployer.ts @@ -1,6 +1,5 @@ import { task } from 'hardhat/config' import { EContracts } from '../../utils/types' -import { EtherscanProvider } from '../../utils/providers/EtherscanProvider' import { ContractVerifier } from '../helpers/ContractVerifier' import { ConstructorArguments } from '../helpers/ConstructorArguments' diff --git a/contracts/utils/RecipientRegistryLogProcessor.ts b/contracts/utils/RecipientRegistryLogProcessor.ts index 615ab1cb0..6d74a4334 100644 --- a/contracts/utils/RecipientRegistryLogProcessor.ts +++ b/contracts/utils/RecipientRegistryLogProcessor.ts @@ -7,6 +7,7 @@ import { Log } from './providers/BaseProvider' import { toDate } from './date' import { EVENT_ABIS } from './abi' import { AbiInfo } from './types' +import { HardhatConfig } from 'hardhat/types' function getFilter(address: string, abiInfo: AbiInfo): EventFilter { const eventInterface = new Interface([abiInfo.abi]) @@ -41,14 +42,14 @@ export class RecipientRegistryLogProcessor { endBlock, startBlock, blocksPerBatch, - etherscanApiKey, + config, network, }: { recipientRegistry: Contract startBlock: number endBlock: number blocksPerBatch: number - etherscanApiKey: string + config: HardhatConfig network: string }): Promise { // fetch event logs containing project information @@ -64,7 +65,7 @@ export class RecipientRegistryLogProcessor { const logProvider = ProviderFactory.createProvider({ network, - etherscanApiKey, + config, }) let logs: Log[] = [] diff --git a/contracts/utils/abi.ts b/contracts/utils/abi.ts index 98101978a..dc3c0c004 100644 --- a/contracts/utils/abi.ts +++ b/contracts/utils/abi.ts @@ -6,6 +6,17 @@ type EventAbiEntry = { remove: AbiInfo } +/** + * MACI v0 ABI used in exportRound.ts + */ +export const MaciV0Abi = [ + 'function signUpTimestamp() view returns (uint256)', + 'function signUpDurationSeconds() view returns (uint256)', + 'function votingDurationSeconds() view returns (uint256)', + `function treeDepths() view returns ((uint8 stateTreeDepth, uint8 messageTreeDepth, uint8 voteOptionTreeDepth))`, + 'function numMessages() view returns (uint256)', +] + export const getRecipientAddressAbi = [ `function getRecipientAddress(uint256 _index, uint256 _startTime, uint256 _endTime)` + ` external view returns (address)`, diff --git a/contracts/utils/providers/EtherscanProvider.ts b/contracts/utils/providers/EtherscanProvider.ts index 5a35ac557..8534156ae 100644 --- a/contracts/utils/providers/EtherscanProvider.ts +++ b/contracts/utils/providers/EtherscanProvider.ts @@ -1,5 +1,6 @@ import { BaseProvider, FetchLogArgs, Log } from './BaseProvider' import { FetchRequest } from 'ethers' +import { HardhatConfig } from 'hardhat/types' const EtherscanApiUrl: Record = { xdai: 'https://api.gnosisscan.io', @@ -10,14 +11,57 @@ const EtherscanApiUrl: Record = { 'optimism-sepolia': 'https://api-sepolia-optimistic.etherscan.io', } +/** + * Mapping of the hardhat network name to the Etherscan network name in the hardhat.config + */ +const EtherscanNetworks: Record = { + arbitrum: 'arbitrumOne', + optimism: 'optimisticEthereum', +} + +/** + * The the Etherscan API key from the hardhat.config file + * @param config The Hardhat config object + * @param network The Hardhat network name + * @returns The Etherscan API key + */ +function getEtherscanApiKey(config: HardhatConfig, network: string): string { + let etherscanApiKey = '' + if (config.etherscan?.apiKey) { + if (typeof config.etherscan.apiKey === 'string') { + etherscanApiKey = config.etherscan.apiKey + } else { + const etherscanNetwork = EtherscanNetworks[network] ?? network + etherscanApiKey = config.etherscan.apiKey[etherscanNetwork] + } + } + + return etherscanApiKey +} + export class EtherscanProvider extends BaseProvider { apiKey: string network: string + baseUrl: string - constructor(apiKey: string, network: string) { + constructor(config: HardhatConfig, network: string) { super() - this.apiKey = apiKey + + const etherscanApiKey = getEtherscanApiKey(config, network) + if (!etherscanApiKey) { + throw new Error(`Etherscan API key is not found for ${network}`) + } + + const etherscanBaseUrl = EtherscanApiUrl[network] + if (!etherscanBaseUrl) { + throw new Error( + `Network ${network} is not supported in etherscan fetch log api` + ) + } + this.network = network + this.apiKey = etherscanApiKey + this.baseUrl = etherscanBaseUrl } async fetchLogs({ @@ -25,17 +69,10 @@ export class EtherscanProvider extends BaseProvider { startBlock, lastBlock, }: FetchLogArgs): Promise { - const baseUrl = EtherscanApiUrl[this.network] - if (!baseUrl) { - throw new Error( - `Network ${this.network} is not supported in etherscan fetch log api` - ) - } - const topic0 = filter.topics?.[0] || '' const toBlockQuery = lastBlock ? `&toBlock=${lastBlock}` : '' const url = - `${baseUrl}/api?module=logs&action=getLogs&address=${filter.address}` + + `${this.baseUrl}/api?module=logs&action=getLogs&address=${filter.address}` + `&topic0=${topic0}&fromBlock=${startBlock}${toBlockQuery}&apikey=${this.apiKey}` const req = new FetchRequest(url) diff --git a/contracts/utils/providers/ProviderFactory.ts b/contracts/utils/providers/ProviderFactory.ts index 6a79ad0ec..b7c5474d2 100644 --- a/contracts/utils/providers/ProviderFactory.ts +++ b/contracts/utils/providers/ProviderFactory.ts @@ -1,17 +1,15 @@ +import { HardhatConfig } from 'hardhat/types' import { BaseProvider } from './BaseProvider' import { EtherscanProvider } from './EtherscanProvider' export type CreateProviderArgs = { network: string - etherscanApiKey: string + config: HardhatConfig } export class ProviderFactory { - static createProvider({ - network, - etherscanApiKey, - }: CreateProviderArgs): BaseProvider { + static createProvider({ network, config }: CreateProviderArgs): BaseProvider { // use etherscan provider only as JsonRpcProvider is not reliable - return new EtherscanProvider(etherscanApiKey, network) + return new EtherscanProvider(config, network) } } From 6dfaeb476b51cca488f42945a86be0b4f0b2aa13 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Wed, 17 Apr 2024 11:55:00 -0400 Subject: [PATCH 327/338] Refactor modal and not allow close on click or esc. --- vue-app/src/App.vue | 1 + vue-app/src/components.d.ts | 1 + vue-app/src/components/BaseModal.vue | 9 +++++++++ vue-app/src/components/Cart.vue | 2 +- vue-app/src/components/ClaimModal.vue | 6 ++---- vue-app/src/components/ContributionModal.vue | 6 ++---- vue-app/src/components/ErrorModal.vue | 6 ++---- vue-app/src/components/MatchingFundsModal.vue | 5 ++--- vue-app/src/components/ReallocationModal.vue | 6 ++---- vue-app/src/components/SignatureModal.vue | 6 ++---- vue-app/src/components/TransactionModal.vue | 6 ++---- vue-app/src/components/WalletModal.vue | 5 ++--- vue-app/src/components/WithdrawalModal.vue | 6 ++---- 13 files changed, 30 insertions(+), 35 deletions(-) create mode 100644 vue-app/src/components/BaseModal.vue diff --git a/vue-app/src/App.vue b/vue-app/src/App.vue index 019d15523..923ff52d0 100644 --- a/vue-app/src/App.vue +++ b/vue-app/src/App.vue @@ -486,6 +486,7 @@ summary:focus { padding: $modal-space; text-align: center; box-shadow: var(--box-shadow); + border: 2px solid rgba(115, 117, 166, 0.3); width: 400px; .loader { margin: $modal-space auto; diff --git a/vue-app/src/components.d.ts b/vue-app/src/components.d.ts index 1cef45f0e..d4d8a573b 100644 --- a/vue-app/src/components.d.ts +++ b/vue-app/src/components.d.ts @@ -11,6 +11,7 @@ declare module '@vue/runtime-core' { AddToCartButton: typeof import('./components/AddToCartButton.vue')['default'] BackLink: typeof import('./components/BackLink.vue')['default'] BalanceItem: typeof import('./components/BalanceItem.vue')['default'] + BaseModal: typeof import('./components/BaseModal.vue')['default'] Breadcrumbs: typeof import('./components/Breadcrumbs.vue')['default'] BrightIdWidget: typeof import('./components/BrightIdWidget.vue')['default'] CallToActionCard: typeof import('./components/CallToActionCard.vue')['default'] diff --git a/vue-app/src/components/BaseModal.vue b/vue-app/src/components/BaseModal.vue new file mode 100644 index 000000000..fef021f8b --- /dev/null +++ b/vue-app/src/components/BaseModal.vue @@ -0,0 +1,9 @@ + + + diff --git a/vue-app/src/components/Cart.vue b/vue-app/src/components/Cart.vue index 0169f6fc3..cb10c454a 100644 --- a/vue-app/src/components/Cart.vue +++ b/vue-app/src/components/Cart.vue @@ -605,7 +605,7 @@ function submitCart(event: any) { } const canWithdrawContribution = computed( - () => currentRound.value?.status === RoundStatus.Cancelled && !contribution.value, + () => currentRound.value?.status === RoundStatus.Cancelled && contribution.value > 0n, ) const showCollapseCart = computed(() => route.name !== 'cart') diff --git a/vue-app/src/components/ClaimModal.vue b/vue-app/src/components/ClaimModal.vue index d6c2cd29c..9f0b3f2e3 100644 --- a/vue-app/src/components/ClaimModal.vue +++ b/vue-app/src/components/ClaimModal.vue @@ -1,5 +1,5 @@ diff --git a/vue-app/src/locales/cn.json b/vue-app/src/locales/cn.json index dbc945f34..2a15e8262 100644 --- a/vue-app/src/locales/cn.json +++ b/vue-app/src/locales/cn.json @@ -719,6 +719,7 @@ "tooltip2": "{chain} 链上钱包余额", "h2_3": "项目", "div1": "正在审核", + "withdraw_button": "取回 {contribution} {tokenSymbol}", "btn2_1": "预览", "btn2_2": "查看", "div2": "您尚未提交任何项目" @@ -891,7 +892,6 @@ "div8": "匹配池", "div9": "剩余的将会加入匹配池", "div10": "平均分配 {contribution} {tokenSymbol}", - "button1": "取回 {contribution} {tokenSymbol}", "div11": "不可以", "div11_if2": "重新分配", "div11_if3": "捐赠", diff --git a/vue-app/src/locales/en.json b/vue-app/src/locales/en.json index 3811acfbc..891ec0dd0 100644 --- a/vue-app/src/locales/en.json +++ b/vue-app/src/locales/en.json @@ -719,6 +719,7 @@ "tooltip2": "Balance of wallet on {chain} chain", "h2_3": "Projects", "div1": "Under review", + "withdraw_button": "Withdraw {contribution} {tokenSymbol}", "btn2_1": "Preview", "btn2_2": "View", "div2": "You haven't submitted any projects" @@ -891,7 +892,6 @@ "div8": "Matching pool", "div9": "Remaining funds go to matching pool", "div10": "Split {contribution} {tokenSymbol} evenly", - "button1": "Withdraw {contribution} {tokenSymbol}", "div11": "Can't", "div11_if2": "reallocate", "div11_if3": "contribute", diff --git a/vue-app/src/locales/es.json b/vue-app/src/locales/es.json index ae103f13e..c0226917f 100644 --- a/vue-app/src/locales/es.json +++ b/vue-app/src/locales/es.json @@ -719,6 +719,7 @@ "tooltip2": "Saldo de la billetera en la cadena {chain}", "h2_3": "Proyectos", "div1": "En revisión", + "withdraw_button": "Retirar {contribution} {tokenSymbol}", "btn2_1": "Vista previa", "btn2_2": "Ver", "div2": "No has enviado ningún proyecto" @@ -891,7 +892,6 @@ "div8": "Matching pool", "div9": "Los fondos restantes se destinarán al matching pool", "div10": "Distribuir {contribution} {tokenSymbol} de manera uniforme", - "button1": "Retirar {contribution} {tokenSymbol}", "div11": "No puedes", "div11_if2": "reasignar", "div11_if3": "contribuir", diff --git a/vue-app/src/router/index.ts b/vue-app/src/router/index.ts index e6e415a07..86a75d5b9 100644 --- a/vue-app/src/router/index.ts +++ b/vue-app/src/router/index.ts @@ -1,6 +1,6 @@ import { createRouter, createWebHashHistory } from 'vue-router' import type { RouteRecordRaw } from 'vue-router' -import { isUserRegistrationRequired, isOptimisticRecipientRegistry } from '@/api/core' +import { isUserRegistrationRequired, isOptimisticRecipientRegistry, isActiveApp } from '@/api/core' const Landing = () => import('@/views/Landing.vue') const JoinLanding = () => import('@/views/JoinLanding.vue') @@ -262,7 +262,7 @@ if (isUserRegistrationRequired) { ) } -if (isOptimisticRecipientRegistry) { +if (isOptimisticRecipientRegistry && isActiveApp) { routes.push({ path: '/recipients', name: 'recipients', diff --git a/vue-app/src/stores/app.ts b/vue-app/src/stores/app.ts index 39e39948c..d977e04b7 100644 --- a/vue-app/src/stores/app.ts +++ b/vue-app/src/stores/app.ts @@ -497,6 +497,9 @@ export const useAppStore = defineStore('app', { maxRecipients = currentRoundInfo.maxRecipients } } + if (!this.clrFund) { + this.clrFund = await getClrFundInfo() + } await this.loadMACIFactoryInfo(maxRecipients) }, async loadClrFundInfo() { diff --git a/vue-app/src/views/Profile.vue b/vue-app/src/views/Profile.vue index 768352a67..6dd20f285 100644 --- a/vue-app/src/views/Profile.vue +++ b/vue-app/src/views/Profile.vue @@ -56,6 +56,16 @@ +
+ +

{{ $t('profile.h2_3') }}

@@ -93,13 +103,19 @@ import CopyButton from '@/components/CopyButton.vue' import Loader from '@/components/Loader.vue' import FundsNeededWarning from '@/components/FundsNeededWarning.vue' -import { userRegistryType, UserRegistryType, chain } from '@/api/core' -import { type Project, getProjects } from '@/api/projects' +import { userRegistryType, UserRegistryType, chain, isActiveApp } from '@/api/core' +import { type Project, getProjects, staticDataToProjectInterface } from '@/api/projects' import { isSameAddress } from '@/utils/accounts' import { getTokenLogo } from '@/utils/tokens' import { useAppStore, useUserStore, useRecipientStore, useWalletStore } from '@/stores' import { storeToRefs } from 'pinia' import { useRouter } from 'vue-router' +import { getLeaderboardData } from '@/api/leaderboard' +import { formatAmount } from '@/utils/amounts' + +import WithdrawalModal from '@/components/WithdrawalModal.vue' +import { useModal } from 'vue-final-modal' +import { RoundStatus } from '@/api/round' interface Props { balance: string @@ -111,7 +127,14 @@ const emit = defineEmits(['close']) const router = useRouter() const appStore = useAppStore() -const { hasContributionPhaseEnded, nativeTokenSymbol, currentRound } = storeToRefs(appStore) +const { + hasContributionPhaseEnded, + nativeTokenSymbol, + nativeTokenDecimals, + currentRound, + hasUserContributed, + contribution, +} = storeToRefs(appStore) const userStore = useUserStore() const { currentUser } = storeToRefs(userStore) const recipientStore = useRecipientStore() @@ -139,17 +162,41 @@ const displayAddress = computed(() => { return currentUser.value.ensName ?? currentUser.value.walletAddress }) +const canWithdrawContribution = computed( + () => currentRound.value?.status === RoundStatus.Cancelled && hasUserContributed, +) + +const { open: openWithdrawalModal, close: closeWithdrawalModal } = useModal({ + component: WithdrawalModal, + attrs: { + onClose() { + closeWithdrawalModal() + }, + }, +}) + watch(recipientRegistryAddress, () => loadProjects()) async function loadProjects(): Promise { - if (!recipientRegistryAddress.value) return - isLoading.value = true - const _projects: Project[] = await getProjects( - recipientRegistryAddress.value, - currentRound.value?.startTime.toSeconds(), - currentRound.value?.votingDeadline.toSeconds(), - ) + let _projects: Project[] = [] + + if (isActiveApp) { + if (!recipientRegistryAddress.value) return + _projects = await getProjects( + recipientRegistryAddress.value, + currentRound.value?.startTime.toSeconds(), + currentRound.value?.votingDeadline.toSeconds(), + ) + } else { + const currentRoundAddress = currentRound.value?.fundingRoundAddress || '' + const network = currentRound.value?.network || '' + const data = await getLeaderboardData(currentRoundAddress, network) + if (data) { + _projects = data.projects.map(p => staticDataToProjectInterface(p)) + } + } + const userProjects: Project[] = _projects.filter( ({ address, requester }) => isSameAddress(address, currentUser.value?.walletAddress as string) || From 65629e1f3651b5a4e508c487e8083938be01e068 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Mon, 22 Apr 2024 16:39:14 -0400 Subject: [PATCH 333/338] fix MACI references --- vue-app/src/views/AboutMaci.vue | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/vue-app/src/views/AboutMaci.vue b/vue-app/src/views/AboutMaci.vue index af12e822b..6e4b4b773 100644 --- a/vue-app/src/views/AboutMaci.vue +++ b/vue-app/src/views/AboutMaci.vue @@ -82,7 +82,7 @@

{{ $t('maci.helps.how.p3_t1') }} - {{ + {{ $t('maci.helps.how.p3_link') }}

@@ -108,7 +108,7 @@

- {{ $t('maci.helps.how.link') }} + {{ $t('maci.helps.how.link') }}

{{ $t('maci.constraints.h3') }}

@@ -127,15 +127,13 @@

{{ $t('maci.more.h3_1') }}

  • - {{ $t('maci.more.l1') }} + {{ $t('maci.more.l1') }}
  • - {{ $t('maci.more.l2') }} + {{ $t('maci.more.l2') }}
  • - {{ - $t('maci.more.l3') - }} + {{ $t('maci.more.l3') }}

{{ $t('maci.more.h3_2') }}

From 5f6e2a5ec6b618a1e13fba0e4f7de0742fb7b82f Mon Sep 17 00:00:00 2001 From: yuetloo Date: Mon, 22 Apr 2024 19:28:11 -0400 Subject: [PATCH 334/338] catch error querying round contributors information --- vue-app/src/api/user.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/vue-app/src/api/user.ts b/vue-app/src/api/user.ts index f65069a26..f2ed80189 100644 --- a/vue-app/src/api/user.ts +++ b/vue-app/src/api/user.ts @@ -54,8 +54,12 @@ export async function isVerifiedUser(userRegistryAddress: string, walletAddress: export async function isRegisteredUser(fundingRoundAddress: string, walletAddress: string): Promise { const round = new Contract(fundingRoundAddress, FundingRound, provider) - const contributor = await round.contributors(walletAddress) - return contributor.isRegistered + try { + const contributor = await round.contributors(walletAddress) + return contributor.isRegistered + } catch { + return false + } } export async function getTokenBalance(tokenAddress: string, walletAddress: string): Promise { From 51ddc9971e3df4107ab33d8a96b95c5a45feca8b Mon Sep 17 00:00:00 2001 From: yuetloo Date: Mon, 22 Apr 2024 20:23:12 -0400 Subject: [PATCH 335/338] remove console log --- vue-app/src/components/ClaimButton.vue | 1 - 1 file changed, 1 deletion(-) diff --git a/vue-app/src/components/ClaimButton.vue b/vue-app/src/components/ClaimButton.vue index bdff5ae11..5db5eba51 100644 --- a/vue-app/src/components/ClaimButton.vue +++ b/vue-app/src/components/ClaimButton.vue @@ -81,7 +81,6 @@ async function checkAllocation() { } if (tally.value) { - console.log('tally.value', tally.value) allocatedAmount.value = await getAllocatedAmount( currentRound.value.fundingRoundAddress, currentRound.value.nativeTokenDecimals, From 2454097009aff2062f544536db2e378ba5b85abc Mon Sep 17 00:00:00 2001 From: yuetloo Date: Mon, 22 Apr 2024 20:25:49 -0400 Subject: [PATCH 336/338] fix error displaying project profile page --- vue-app/src/api/projects.ts | 16 +++++++++++++++ vue-app/src/api/rounds.ts | 3 ++- vue-app/src/components/ProjectListItem.vue | 24 +++++++++++++++------- vue-app/src/views/Profile.vue | 7 ++----- vue-app/src/views/ProjectList.vue | 15 +++++++++++--- vue-app/src/views/RoundList.vue | 3 +-- 6 files changed, 50 insertions(+), 18 deletions(-) diff --git a/vue-app/src/api/projects.ts b/vue-app/src/api/projects.ts index edc75abf4..2795ad82e 100644 --- a/vue-app/src/api/projects.ts +++ b/vue-app/src/api/projects.ts @@ -291,3 +291,19 @@ export function staticDataToProjectInterface(project: any): Project { isLocked: false, } } + +/** + * Get the list of projects for a static round + * @param roundAddress The funding round contract address + * @param network The network + * @returns Array of projects + */ +export async function getProjectsForStaticRound(roundAddress: string, network: string): Promise { + const data = await getLeaderboardData(roundAddress, network) + if (!data) { + return [] + } + + const projects = data.projects.map(staticDataToProjectInterface) + return projects +} diff --git a/vue-app/src/api/rounds.ts b/vue-app/src/api/rounds.ts index e83661d47..952523d0c 100644 --- a/vue-app/src/api/rounds.ts +++ b/vue-app/src/api/rounds.ts @@ -1,5 +1,6 @@ import sdk from '@/graphql/sdk' import extraRounds from '@/rounds/rounds.json' +import { getNumber } from 'ethers' import { chain, voidedRounds, isActiveApp, clrfundContractAddress } from './core' export interface Round { @@ -36,7 +37,7 @@ export async function getRounds(): Promise { } const rounds: Round[] = extraRounds.map(({ address, network, startTime, votingDeadline }, index): Round => { - return { index, address, network, hasLeaderboard: true, startTime, votingDeadline } + return { index, address, network, hasLeaderboard: true, startTime: getNumber(startTime), votingDeadline } }) const leaderboardRounds = new Set(rounds.map(r => toRoundId({ network: r.network || '', address: r.address }))) diff --git a/vue-app/src/components/ProjectListItem.vue b/vue-app/src/components/ProjectListItem.vue index 6b7435811..009502493 100644 --- a/vue-app/src/components/ProjectListItem.vue +++ b/vue-app/src/components/ProjectListItem.vue @@ -36,10 +36,12 @@ import { markdown } from '@/utils/markdown' import { useRoute, type RouteLocationRaw } from 'vue-router' import { useAppStore } from '@/stores' import { storeToRefs } from 'pinia' +import { isActiveApp } from '@/api/core' const route = useRoute() const appStore = useAppStore() -const { isRoundContributionPhase, canUserReallocate, currentRoundAddress, categoryLocaleKey } = storeToRefs(appStore) +const { isRoundContributionPhase, canUserReallocate, currentRoundAddress, categoryLocaleKey, currentRound } = + storeToRefs(appStore) interface Props { project: Project roundAddress: string @@ -81,12 +83,20 @@ const shouldShowCartInput = computed(() => { }) const projectRoute = computed(() => { - return route.name === 'round' - ? { - name: 'round-project', - params: { address: props.roundAddress, id: props.project.id }, - } - : { name: 'project', params: { id: props.project.id } } + if (isActiveApp) { + return route.name === 'round' + ? { + name: 'round-project', + params: { address: props.roundAddress, id: props.project.id }, + } + : { name: 'project', params: { id: props.project.id } } + } else { + const network = currentRound.value?.network || '' + return { + name: 'leaderboard-project', + params: { address: props.roundAddress, network, id: props.project.id }, + } + } }) diff --git a/vue-app/src/views/Profile.vue b/vue-app/src/views/Profile.vue index 6dd20f285..b4c6612e9 100644 --- a/vue-app/src/views/Profile.vue +++ b/vue-app/src/views/Profile.vue @@ -104,7 +104,7 @@ import Loader from '@/components/Loader.vue' import FundsNeededWarning from '@/components/FundsNeededWarning.vue' import { userRegistryType, UserRegistryType, chain, isActiveApp } from '@/api/core' -import { type Project, getProjects, staticDataToProjectInterface } from '@/api/projects' +import { type Project, getProjects, getProjectsForStaticRound } from '@/api/projects' import { isSameAddress } from '@/utils/accounts' import { getTokenLogo } from '@/utils/tokens' import { useAppStore, useUserStore, useRecipientStore, useWalletStore } from '@/stores' @@ -191,10 +191,7 @@ async function loadProjects(): Promise { } else { const currentRoundAddress = currentRound.value?.fundingRoundAddress || '' const network = currentRound.value?.network || '' - const data = await getLeaderboardData(currentRoundAddress, network) - if (data) { - _projects = data.projects.map(p => staticDataToProjectInterface(p)) - } + _projects = await getProjectsForStaticRound(currentRoundAddress, network) } const userProjects: Project[] = _projects.filter( diff --git a/vue-app/src/views/ProjectList.vue b/vue-app/src/views/ProjectList.vue index d6345fb3b..2bf0fc69f 100644 --- a/vue-app/src/views/ProjectList.vue +++ b/vue-app/src/views/ProjectList.vue @@ -60,7 +60,7 @@ import { ref, computed, onMounted } from 'vue' import { getCurrentRound, getRoundInfo } from '@/api/round' -import { type Project, getProjects, getRecipientRegistryAddress } from '@/api/projects' +import { type Project, getProjects, getRecipientRegistryAddress, getProjectsForStaticRound } from '@/api/projects' import CallToActionCard from '@/components/CallToActionCard.vue' import ProjectListItem from '@/components/ProjectListItem.vue' @@ -70,6 +70,7 @@ import { useRoute } from 'vue-router' import { useAppStore, useUserStore } from '@/stores' import { storeToRefs } from 'pinia' import { DateTime } from 'luxon' +import { isActiveApp } from '@/api/core' type ProjectRoundInfo = { recipientRegistryAddress: string @@ -119,8 +120,16 @@ onMounted(async () => { try { roundAddress.value = (route.params.address as string) || currentRoundAddress.value || (await getCurrentRound()) || '' - const round = await loadProjectRoundInfo(roundAddress.value) - await loadProjects(round) + if (isActiveApp) { + const round = await loadProjectRoundInfo(roundAddress.value) + await loadProjects(round) + } else { + await appStore.loadStaticClrFundInfo() + const network = currentRound.value?.network || '' + const visibleProjects = await getProjectsForStaticRound(roundAddress.value, network) + shuffleArray(visibleProjects) + projects.value = visibleProjects + } } catch (err) { /* eslint-disable-next-line no-console */ console.error('Error loading projects', err) diff --git a/vue-app/src/views/RoundList.vue b/vue-app/src/views/RoundList.vue index 774fb753a..eb1ac6273 100644 --- a/vue-app/src/views/RoundList.vue +++ b/vue-app/src/views/RoundList.vue @@ -41,12 +41,11 @@ import { onMounted, ref } from 'vue' import { type Round, getRounds } from '@/api/rounds' import Links from '@/components/Links.vue' import { DateTime } from 'luxon' -import { clrfundContractAddress } from '@/api/core' const rounds = ref([]) onMounted(async () => { - rounds.value = await getRounds(clrfundContractAddress) + rounds.value = await getRounds() }) From 55c95bced1caf072f4ceae1d6e99ad796a76f557 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Mon, 22 Apr 2024 21:07:03 -0400 Subject: [PATCH 337/338] code refactoring --- vue-app/src/views/ProjectList.vue | 38 +++++++++++++++++++++---------- 1 file changed, 26 insertions(+), 12 deletions(-) diff --git a/vue-app/src/views/ProjectList.vue b/vue-app/src/views/ProjectList.vue index 2bf0fc69f..8bc21b7c5 100644 --- a/vue-app/src/views/ProjectList.vue +++ b/vue-app/src/views/ProjectList.vue @@ -71,11 +71,14 @@ import { useAppStore, useUserStore } from '@/stores' import { storeToRefs } from 'pinia' import { DateTime } from 'luxon' import { isActiveApp } from '@/api/core' +import { getSecondsFromNow } from '@/utils/dates' type ProjectRoundInfo = { + fundingRoundAddress: string recipientRegistryAddress: string startTime: number votingDeadline: number + network: string } const SHUFFLE_RANDOM_SEED = Math.random() @@ -120,16 +123,11 @@ onMounted(async () => { try { roundAddress.value = (route.params.address as string) || currentRoundAddress.value || (await getCurrentRound()) || '' - if (isActiveApp) { - const round = await loadProjectRoundInfo(roundAddress.value) - await loadProjects(round) - } else { - await appStore.loadStaticClrFundInfo() - const network = currentRound.value?.network || '' - const visibleProjects = await getProjectsForStaticRound(roundAddress.value, network) - shuffleArray(visibleProjects) - projects.value = visibleProjects - } + + const round = isActiveApp + ? await loadProjectRoundInfo(roundAddress.value) + : await loadStaticRoundInfo(roundAddress.value) + await loadProjects(round) } catch (err) { /* eslint-disable-next-line no-console */ console.error('Error loading projects', err) @@ -157,11 +155,27 @@ async function loadProjectRoundInfo(roundAddress: string): Promise { + await appStore.loadClrFundInfo() + const network = currentRound.value?.network || '' + const recipientRegistryAddress = currentRound.value?.recipientRegistryAddress || '' + const startTime = getSecondsFromNow(currentRound.value?.startTime || DateTime.now()) + const votingDeadline = getSecondsFromNow(currentRound.value?.votingDeadline || DateTime.now()) + return { recipientRegistryAddress, startTime, votingDeadline, fundingRoundAddress: roundAddress, network } } async function loadProjects(round: ProjectRoundInfo) { - const _projects = await getProjects(round.recipientRegistryAddress, round.startTime, round.votingDeadline) + const _projects = isActiveApp + ? await getProjects(round.recipientRegistryAddress, round.startTime, round.votingDeadline) + : await getProjectsForStaticRound(roundAddress.value, round.network) const visibleProjects = _projects.filter(project => { return !project.isHidden && !project.isLocked }) From 8489b006c08cad675e7b128ff2a1db26dc392a38 Mon Sep 17 00:00:00 2001 From: yuetloo Date: Mon, 22 Apr 2024 23:14:20 -0400 Subject: [PATCH 338/338] fix filename case issue --- vue-app/src/api/leaderboard.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vue-app/src/api/leaderboard.ts b/vue-app/src/api/leaderboard.ts index cc10e5615..a09b0d0d6 100644 --- a/vue-app/src/api/leaderboard.ts +++ b/vue-app/src/api/leaderboard.ts @@ -14,5 +14,5 @@ export async function getLeaderboardData(roundAddress: string, network: string) return r.address.toLowerCase() === lowercaseRoundAddress && r.network.toLowerCase() === lowercaseNetwork }) - return found ? import(`../rounds/${lowercaseNetwork}/${lowercaseRoundAddress}.json`) : null + return found ? import(`../rounds/${found.network}/${found.address}.json`) : null }